我有一个没有互联网访问权限的系统,我想安装一些Nagios监控服务/插件 . 我安装了NRPE(Nagios Remote Plugin Executor),我可以看到其中定义的命令,如 check_users
, check_load
, check_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 回答
check_users
,check_load
或check_zombie_procs
在nrpe.cfg
文件的客户端定义 . 默认位置是/usr/local/nagios/etc/nrpe.cfg
或/etc/nagios/nrpe.cfg
. 在我阅读时,您已经找到了该文件,因此您可以转到下一步 .把这样的东西放到你的
nrpe.cfg
:然后,您需要在客户端上重新启动NRPE deamon服务 . 像
service nrpe restart
之类的东西 . 只为您提供信息,这些自定义脚本不一定是二进制文件,您甚至可以使用简单的bash脚本 .最后,您可以从Nagios服务器或通过本地NRPE deamon调用
check_hadoop_namenode
命令: