Nagios远程监控:NRPE与。SSH协议


8

我们使用Nagios监视大量(〜130)服务器。我们监视每台服务器上的CPU,磁盘,RAM和其他一些东西。我一直使用SSH来运行远程命令,纯粹是因为它几乎不需要远程服务器上的其他配置,只需安装nagios-plugins,创建nagios用户并添加SSH密钥,所有这些我都已自动完成。一个shell脚本。我从未真正考虑过在NRPE上使用SSH的性能影响。

我对Nagios服务器上的负载没有太大的担心(它的功能可能过高,它从未超过10%的CPU),但是我们每30秒运行一次远程检查,每台服务器有5个不同的检查执行。我认为SSH每次检查都需要更多资源,但是有很大的不同吗?(IE的差异足以保证切换到NRPE)。

如果有帮助,我们将监视物理服务器(通常具有8、12或16个物理核心)和Amazon EC2中型/大型实例的混合。

Answers:


6

我一直认为SSH(我使用push_check)的管理优势胜过任何其他负载。现代CPU是如此之快,以至于加密少量字节的成本非常低,因此归结为运行两个进程(SSH和检查脚本)对一个进程(NRPE触发的检查脚本)的运行。

对于用解释语言编写的检查脚本,我希望启动解释器(Perl,Python,Bash)的开销会超过启动SSH会话的CPU成本。使用现代CPU,您的计算机更有可能受到磁盘或内存的限制,而不是受CPU限制。

如果您的Nagios机器能够应对-它必须每秒建立20个SSH连接-我会在方便方面犯错。

并不是对您问题的真正回答,更多是关于生命太短而不必担心的争论:)


6

NRPE是nagios插件,易于安装,并且可以在探针配置文件中管理检查要求。关于nrpe的一件坏事,您需要在要监视的每台服务器上安装它,在linux os上这非常简单,只需yum / apt-get install nrpe,但是在Windows服务器上,您需要通过.exe安装它,有时您需要重新启动服务器。

我认为SSH并不是使用nagios的最优化方法。NRPE可能更有效。

在nagios文档中,这句话是这样的:

“使用SSH比NRPE插件更安全,但它还会在监视和远程计算机上增加较大的(CPU)开销。当您开始监视数百或数千台计算机时,这可能会成为一个问题。许多Nagios管理员都选择使用使用NRPE插件,因为它施加的负载较低。”

有文档。我不是.pdf

对于我来说,我使用snmp协议,该协议易于使用,并且不需要在服务器上安装任何第三方。


我确实研究过SNMP,但我们监视的数据库/应用程序统计信息之类的东西我认为无法设置为使用SNMP。我不太担心监视的安全性,纯粹是为了避免额外配置而选择了SSH。就像我们要使用SSH添加/更改命令时,我们只是更改NAGIOS配置,而使用NRPE,我们也需要将其添加到远程服务器上的nrpe.conf中。
涂抹

是的,nrpe有点麻烦,因为您需要将.conf添加到远程服务器。至于SNMP,您可以做任何您想做的事情(如果我没错的话),您可以使用perl创建自己的问题,并通过snmp使用您的探针,它比nrpe更容易,因为您不需要更改.conf。在远程服务器上,并且不如SSH贪婪。好吧,这只是一种观点,以及您将使用nagios的目的。至少对我而言,Nrpe是ssh和snmp之间的良好折衷。祝你有美好的一天。
Anarko_Bizounours 2011年

3

除了其他答案中给出的建议之外,您是否考虑过ControlMaster在nagios的.ssh / config文件中启用该功能以充分利用ssh复用功能

换句话说,您的SSH连接会“保持打开”状态,因此建立连接的开销很小,因为它只会发生一次。这样仍然可以保证加密的私密性,并保护您避免在服务器上保留开放的TCP端口(尽管已防火墙)。另外,您可以通过限制用户可以执行的命令限制用户通过ssh 执行的操作


0

除了尝试在各种操作系统上编译NRPE之外,我什么都没有。SSH运行平稳高效,并且更容易编写脚本。


4
与NRPE相比,您正在使用的系统似乎更像是一个问题-我不是Nagios的粉丝,但是NRPE是非常简单的代码,我从来没有遇到过编译问题...
voretaq7
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.