Nagios远程监控:NRPE VS. SSH

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

我对Nagios服务器的负载没有太大的打扰(这可能是过度的,从来没有超过10%的CPU),但我们每30秒运行一次远程检查,每台服务器有5个不同的检查执行。 我认为SSH需要更多的资源为每个检查,但有一个巨大的差异? (IE足够的差异,保证切换到NRPE)。

如果有任何帮助,我们会监控混合使用物理服务器(通常包含8,12或16个物理内核)和Amazon EC2中/大型实例。

我一直认为SSH的pipe理优势(我使用push_check )超过了额外的负载。 现代的CPU速度如此之快,encryptionless量字节的代价是非常小的,所以它涉及到运行两个进程(SSH和检查脚本)和一个进程(NRPE触发的检查脚本)。

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

如果你的Nagios机器正在应付 – 它必须每秒build立20个SSH连接 – 我会在方便的方面犯错。

不是真的回答你的问题,更多的是生活太短而不必担心的一个论点:)

NRPE是一个nagios插件,它很容易安装,它将pipe理探针configuration文件中的检查问题。 关于nrpe只有一件坏事,你需要把它安装在你想要监视的每一台服务器上,在linux上它非常简单,只需要yum / apt-get install nrpe,但是在windows服务器上你需要通过.exe来安装它,有时候你需要重新启动你的服务器。

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

在这里的nagios文档有这样一句话:

“使用SSH比NRPE插件更安全,但是它也会给监视和远程机器带来更大的(CPU)开销,当你开始监视数百或数千台机器时,这可能会成为一个问题,许多Nagiospipe理员select使用使用NRPE插件,因为它所施加的负载较低。“

有文件。 我是一个.pdf

至于我,我使用snmp协议,使用简单,不需要在服务器上安装任何第三方。

除了其他答案中给出的build议之外,你有没有考虑在nagios的.ssh / config文件中启用ControlMaster来充分利用ssh复用 ?

换句话说,你的SSH连接将“保持”,所以build立它的开销很小,因为这只会发生一次。 这将仍然保证encryption的隐私,并保护您离开服务器上的开放TCP端口(尽pipe防火墙)。 另外,通过限制可执行的命令,可以限制用户通过ssh 执行的操作

我什么都没有,但试图在各种操作系统上编译NRPE的问题。 SSH工作顺利高效,脚本编写起来也更容易。