假设我有一个私人界面和一个公共界面的服务器。 公共可能有像HTTP(S)服务器,私人可能有MySQL和SSH的东西。
显然,Nagios对于检查服务是否在各自的接口上运行很有用。 但是,build立明确testingMySQL和SSH端口未在公共接口上打开的检查是否是一个好主意? 这个想法是捕捉无意中的错误configuration,这些错误configuration已经打开了应该是私密的服务,并适当地提醒。
我的一部分想法是,这不会很好地扩展 – 想象一下iptables的DROP规则,例如,检查将不得不等待超过检查超时,然后才能完成并继续。 但是,这种超时时间必须足够高才能区分被封锁的服务和真正陷入困境的开放服务。
这是一个实际的想法? Nagios是正确的工具吗? 我甚至没有考虑否定TCP检查插件的结果的可行性,但我相信这是可行的…
当然是。 监控系统的任务是确保IT基础架构目前满足业务需求,无论这些需求如何。
我的直觉是,对监控的端口数量没有简单的限制(好,65535),以确保它们不会突然变得开放,而实现这种控制的最好方法是严格的源控制加上强大的,积极的文件系统监视(例如tripwire)在服务器上。
但是,如果有某些端口是绝对关键的,那么绝对不会暴露出来,那么是的,通过一切手段来安排特定的检查。 您可能需要查看大多数主要发行版附带的NAGIOS negate插件,并且完全按照您的build议进行操作。
您可以将任何检查与negate插件结合来反转检查逻辑。 例如,您可以将CRIT,WARN,UNKNOWN和OK重新定义为其他状态。 有关更多信息,请参阅–help输出 。
如果您担心DROP策略增加检查时间,则可以缩短超时时间。 对于这样的检查,你可能不需要每5分钟检查一次。 我们有一些类似的小时运行检查。