nrpe插件传递命令参数

问题

使用nagios监控主机资源情况,告警阀值目前只能通过到被监控主机端,修改/usr/local/nagios/nrpe/etc/nrpe.cfg 文件中命令来设置,无法在服务端传递阀值参数。
查看了nrpe -h,发现有-a选项可以传递命令参数,遂实验解决过程。

基本概念

在nagios为核心的监控系统中,nagios 为监控轮询器,负责将nagios配置监控主机、服务、模板等。nagios配置文件一般有前端web界面生成,也可以自己在后台查看/usr/local/nagios/,包括命令配置文件、服务配置文件、主机配置文件、服务模板配置文件等。

被监控端资源状况数据需要nagios的插件提供,nagios不做具体的信息收集,比如cpu、内存、硬盘使用情况这类。nagios插件使用最广泛的是nrpe插件。nrpe插件分为nrpe服务端和check_nrpe客户端两部分。nagios服务上安装check_nrpe,用于连接nrpe服务端并控制nrpe服务端在被监控主机上执行资源检测命令。

nrpe服务一般使用xinetd管理,需要在/etc/services中定义nrpe服务名称和默认端口.。xinetd中关于nrpe服务的配置文件中设置nrpe的开启状态,允许访问的主机。

nrpe配置文件/usr/local/nagios/etc/nrpe.cfg中定义日志记录情况、是否允许命令传递参数、带参数命令的定义等。

测试过程

nrpe安装

nagios服务器ip 192.168.123.136,安装centreon web,centreon-engine(nagios的一个分支),拷贝check_nrpe命令并配置权限,确保nagios服务器可以正常执行/usr/lib64/nagios/plugins/check_nrpe -H 192.168.123.132 -c check_load命令。

被监控服务器ip 192.168.123.132,安装openssl-devel、xinetd、nrpe服务端,插件包。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
yum install openssl-devel #不安装configure阶段会报错找不到ssl header
yum install xinetd
tar -xzvf nrpe-3.2.1.tar.gz
cd nrpe-3.2.1
./configure --enable-command-args #编译nrpe deamon,允许命令参数传递
make all
make install-groups-users #自动根据编译文件定义创建用户和组
make install
make install-config
make install-inetd
#安装可执行的命令,之后可以在/usr/local/nagios/libexec看见可执行脚本
tar -zxvf nagios-plugins-2.2.1.tar.gz
./configure
make
make install

nrpe配置

1 /etc/services 中末尾加上‘nrpe 5666/tcp’
echo "nrpe 5666/tcp >>/etc/services"
2 修改xinetd中nrpe配置/etc/xinetd.d/nrpe
disable = no,only_from 中添加允许连接的ip
3 修改nrpe配置文件vi /usr/local/nagios/etc/nrpe.cfg

1
2
3
4
log_file=/usr/local/nagios/var/nrpe.log #log file 文件配置
debug=1 #开启debug
dont_blame_nrpe=1 #允许命令参数
command[check_users]=/usr/local/nagios/libexec/check_users $ARG1$ #命令中添加参数

4 重启xinetdservice xinetd restart

参数传递测试

在nagios服务器执行带参数命令,返回成功

1
2
[root@central centreon-engine]# /usr/lib64/nagios/plugins/check_nrpe -H 192.168.123.132  -c check_users -a "-w 4 -c 10"
USERS OK - 2 users currently logged in |users=2;4;10;0

在被监控端查看日志tail -f /usr/local/nagios/var/nrpe.log,能发现正确的返回记录

在web端配置命令参数
1 配置命令 $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$,参考参数!check_user!”-w 4 -c 10”
2 配置服务模板使用此命令 命令选择check_nrpe,参数内容为check_users -a “-w 4 -c 10”
3 配置主机模板,应用此服务
4 主机应用主机模板,生成服务。可在serviceTemples 中看到服务中命令的详细参数类似check_nrpe!check_users -a "-w 4 -c 10"
5 导出配置文件,重启nagios轮询器,web界面查看返回结果。

在用nrpe主机配置切换方案

1 nrpe需要重新编译安装,添加允许传递命令参数功能
2 nrpe.cfg配置文件修改,开启dont_blame_nrpe=1,启用带参数的命令
3 web前端配置新命令和模板

参考链接

http://www.cnblogs.com/yjf512/p/3666070.html
http://m.blog.csdn.net/newjueqi/article/details/22867881?from=singlemessage&isappinstalled=0
http://support.nagios.com/knowledgebase/faqs/index.php?option=com_content&view=article&id=52&catid=35&faq_id=439&expand=false&showdesc=true
http://mp.weixin.qq.com/s/ElSJS9OCJNZX7HOGqIk3lA