如何获得自定义Nagios插件以使用NRPE?

时间:2018-01-03 02:39:07

标签: hadoop hdfs monitoring nagios

我有一个没有互联网访问权限的系统,我想安装一些Nagios监控服务/插件。我安装了NRPE(Nagios Remote Plugin Executor),我可以看到其中定义的命令,如check_userscheck_loadcheck_zombie_procs等。

command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10
command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
...

我可以像这样运行命令:

/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_load

这会产生如下输出:

OK - load average: 0.01, 0.13, 0.12|load1=0.010;15.000;30.000;0; load5=0.130;10.000;25.000;0; load15=0.120;5.000;20.000;0;

WARNING – load average per CPU: 0.06, 0.07, 0.07|load1=0.059;0.150;0.300;0; load5=0.069;0.100;0.250;0; load15=0.073;0.050;0.200;0;

现在,我想定义/配置/安装更多要监控的服务。我找到了一系列服务here。所以,比方说,我想使用这里定义的名为check_hadoop_namenode.pl的服务。如何让它与NRPE一起使用?

我尝试将文件check_hadoop_namenode.pl复制到存储其他NRPE服务的同一目录中,即/usr/lib/nagios/plugins。但它不起作用:

$ /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_hadoop_namenode.pl

我认为这可能是显而易见的,因为该目录中的所有其他服务都是二进制文件,所以我也需要一个check_hadoop_namenode.pl文件的二进制文件。我如何为它制作二进制文件?

我尝试根据链接中的说明安装插件。但它只是试图安装一些包依赖,并因为它无法访问互联网而抛出错误(我的系统没有互联网访问权限,就像我之前说过的那样)。即使我在另一个系统中手动安装这些依赖项并将它们复制到目标系统,此错误仍然存​​在。

$ <In another system with internet access>
mkdir ~/repos
git clone https://github.com/harisekhon/nagios-plugins 
cd nagios-plugins 
sudo nano Makefile

# replace 'yum install' with 'yumdownloader --resolv --destdir ~/repos/'
# replace 'pip install' with 'pip download -d ~/repos/'

这下载了安装插件所需的43个依赖项(以及依赖项的依赖项等)。

如何让它发挥作用?

1 个答案:

答案 0 :(得分:1)

check_userscheck_loadcheck_zombie_procsnrpe.cfg文件的客户端定义。默认位置为/usr/local/nagios/etc/nrpe.cfg/etc/nagios/nrpe.cfg。在我阅读时,您已经找到了该文件,因此您可以转到下一步。

将这样的内容添加到nrpe.cfg

command[check_hadoop_namenode]=/path/to/your/custom/script/check_hadoop_namenode.pl -optional -arguments

然后您需要在客户端重新启动NRPE deamon服务。像service nrpe restart这样的东西。 只是为了您的信息,这些自定义脚本不一定是二进制文件,您甚至可以使用简单的bash脚本。

最后,您可以从Nagios服务器或通过本地NRPE deamon调用check_hadoop_namenode命令:

/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_hadoop_namenode