使用Nagios检查服务不可用是否合理?


9

假设我有一台带有专用接口和公用接口的服务器。公用可能具有HTTP(S)服务器之类的东西,私人可能具有MySQL和SSH。

显然,Nagios对于检查服务是否在各自的接口上运行很有用。但是,建立检查以明确测试MySQL和SSH端口是否在公共接口上打开是个好主意吗?这样做的目的是发现因疏忽而引起的错误配置,这些错误配置打开了应该是私有的服务,并发出了适当的警报。

我的一部分想法是,这无法很好地扩展-假设有一个iptables DROP规则,例如,检查必须等到超过检查超时后才能完成并继续。但是该超时必须足够高,才能将阻塞的服务与真正陷入困境的开放服务区分开。

这是一个实际的想法吗?Nagios是正确的工具吗?我什至没有研究过否定TCP检查插件的结果的可行性,但是我敢肯定它是可行的...


2
长期以来,我一直坚信这DROP不是实现此目的的适当目标,使用它-j REJECT --reject-with tcp-reset可以解决该特定问题。对我来说,您的问题听起来只是使用REJECT而不是的另一个原因DROP
kasperd 2014年

4
check_nmap FTW。
dmourati 2014年

Answers:


11

当然是。监视系统的任务是确保IT基础结构当前能够满足业务需求,无论这些需求是什么。

我的直觉是,要监视的端口数量没有容易的限制(65535),以确保它们不会突然打开,并且实现此控制的最佳方法是严格的源代码控制加上强大的功能,服务器上的主动文件系统监视(例如,tripwire)。

但是,如果从未公开过绝对对业务至关重要的某些端口,那么可以,一定要对此进行特定检查。您可能需要研究一下NAGIOS negate插件,该插件随大多数主要发行版本一起提供,并且可以完全按照您的建议进行操作。


3

您可以将任何检查与negate插件结合起来以反转检查逻辑。例如,您可以将CRIT,WARN,UNKNOWN和OK重新定义为其他状态。有关更多信息,请参见--help输出

如果您担心DROP策略会增加检查时间,则可以缩短超时时间。对于这样的检查,您可能也不需要每5分钟检查一次。我们有一些每小时运行一次的类似检查。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.