How do I get a custom Nagios plugin to work with NRPE?

老子叫甜甜 提交于 2019-12-24 21:17:35

问题


I have a system with no internet access where I want to install some Nagios monitoring services/plugins. I installed NRPE (Nagios Remote Plugin Executor), and I can see commands defined in it, like check_users, check_load, check_zombie_procs, etc.

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
...

I am able to run the commands like so:

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

This produces an output like:

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;

or

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;

Now, I want to define/configure/install some more services to monitor. I found a collection of services here. So, say, I want to use the service defined here called check_hadoop_namenode.pl. How do I get it to work with NRPE?

I tried copying the file check_hadoop_namenode.pl into the same directory where other NRPE services are stored, i.e., /usr/lib/nagios/plugins. But it doesn't work:

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

I figured this might be obvious because all other services in that directory are binaries, so I need a binary for check_hadoop_namenode.pl file as well. How do I make the binary for it?

I tried installing the plugins according to the description in the link. But it just tries to install some package dependencies, and throws error as it cannot access the internet (my system has no internet access, like I stated before). This error persists even when I install these dependencies manually in another system and copy them to the target system.

$ <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/'

This downloaded 43 dependencies (and dependencies of dependencies, and so on) required to install the plugins.

How do I get it to work?


回答1:


check_users, check_load or check_zombie_procs are defined on the client side in nrpe.cfg file. Default location are /usr/local/nagios/etc/nrpe.cfg or /etc/nagios/nrpe.cfg. As I read, you already found that file, so you can move to next step.

Put something like this to your nrpe.cfg:

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

Then you need restart NRPE deamon service on client. Something like service nrpe restart. Just for you information, these custom script doesn't must to be binaries, you can even use simple bash script.

And finally after that, you can call the check_hadoop_namenode command from Nagios server or via local NRPE deamon:

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


来源:https://stackoverflow.com/questions/48070470/how-do-i-get-a-custom-nagios-plugin-to-work-with-nrpe

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!