再来介绍两个有用的插件。俺装nagios首先就是为了监控服务器的网络流量,查了一下,nagios官方有个perl写的插件check_traffic。资料很少,装上之后nagios可以看到网络流量数据,但是pnp无法显示图形,没有继续定位问题。再找了一个国人写的check_traffic.sh脚本,pnp能正常显示,很好很强大。 另一个是nagios扩展:NRPE,远程监控客户端的服务状态,有了这个之后,只需在网络中安装一个nagios平台,在被监控主机上安装NRPE,就能远程完成所有的监控功能。
一、check_traffic.sh脚本安装
- 拷贝check_traffic.sh到目录nagios/libexec
2.执行命令获取需监控的网卡id <pre class=php name=code># nagios/libexec/check_traffic.sh -V 2c -C public -H localhost -L List Interface for host localhost. Interface index 1 orresponding to lo Interface index 2 orresponding to eth0</pre> 我们监控的是eth0,其id为2
- 增加网卡监控配置
<pre class=php name=code># vi nagios/etc/object/localhost.cfg
define host{
use linux-server
host_name localhost
alias localhost
process_perf_data 1
address 127.0.0.1
}
define service{
use local-service
host_name localhost //host需要定义
service_description Traffic_eth0
check_command check_traffic_sh!2!12,30!15,35 //第一个参数2为eth0的id
notifications_enabled 0
normal_check_interval 6
}
vi nagios/etc/object/commands.cfg
define command{ command_name check_traffic_sh command_line $USER1$/check_traffic.sh -V 2c -C public -H $HOSTADDRESS$ -I $ARG1$ -w $ARG2$ -c $ARG3$ -K -B }</pre>
- 重启nagios进程
二、安装NRPE 平台部分安装
- 编译安装
<pre class=php name=code># ./configure –prefix=/usr/local/nm/nagios –with-nagios-user=nm –with-nagios-group=nm –with-nrpe-user=nm –with-nrpe-group=nm
make all
make install-plugin
make install-daemon
make install-daemon-config</pre>
- 增加配置, 监控192.168.194.110上的load情况
<pre class=php name=code># vi nagios/etc/object/localhost.cfg define service{ use local-service host_name 192.168.194.110 service_description 110 Current Load check_command check_nrpe!check_load }
vi nagios/etc/object/commands.cfg
define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }</pre>
被监控主机部分安装
-
被监控主机只需要安装nagios-plugin和nrpe,我们只需要把平台上的nagios整个目录打包拷贝过来即可。
-
修改nrpe配置,允许nagios平台访问
<pre class=php name=code># vi nagios/etc/nrpe.cfg allowed_hosts=192.168.194.111 //192.168.194.111为平台ip</pre>
- 启动nrpe服务进程
<pre class=php name=code># nagios/bin/nrpe -c nagios/etc/nrpe.cfg -d</pre>
- 回到平台上,检测nrpe服务是否可以访问
<pre class=php name=code># nagios/libexec/check_nrpe -H 192.168.194.110 NRPE v2.12 //正确结果</pre>
- 如果返回“CHECK_NRPE: Error - Could not complete SSL handshake”,可能有以下几种情况:
- a. 平台与主机之间nrpe版本不匹配
- b. 确认nrpe的服务和检测程序的SSL是否开启
- c. 确认nrpe.cfg可以被nrpe的服务进程所读取,权限是否正确
- d. 伪随机设备文件是否可读(这个问题可能特定平台才有,如sun上面)
- e. 如果nrpe由xinetd启动,要看看xinetd的配置only_from 是否配置为平台的ip
- 重启平台的nagios,访问页面就能看到远程主机的监控结果了。