Nagios监控远程的Linux服务器


Nagios监控的方式:

可以把 Nagios 的服务器监控分为两个部分:

第一部分是主机外监控,比如:主机是否存活,WEB 服务是否正常,MySQL 服务是否正常等内容,再主机外通过访问其端口即可得知。这些监控命令再安装 nagios-plugins-1.4.14.tar.gz时已经生成了,在/usr/local/nagios/libexec 目录下。

第二部分是主机内监控,比如:要监控服务器的进程、磁盘使用等功能。这些功能的实现要依靠 nrpe了,nrpe的工作模式是 C/S 模式,在被监控主机中,开启nrpe 监听,当听到监控服务器上所发出的命令,让它检查该服务器上的硬盘使用信息时,它就会执行,并把信息传回,监控服务器,用一个不太恰当的比喻,就是木马的工作模式。

NRPE 是一个可在远程 Linux/Unix 主机上执行的插件的外部构件包。如果你需要监控远程的主机上的本地资源或属性,如磁盘利用率、CPU负荷、内存利用率等时是很有用的。 



1.1 Nagios服务器的部署



1.1.1安装NRPE

[root@Nagios-Server ~]# cd/usr/local/src/
 [root@Nagios-Server src]#tar zxvf nrpe-2.12.tar.gz
 [root@Nagios-Server src]#cd nrpe-2.12
 [root@Nagios-Server nrpe-2.12]#./configure && make all
 [root@Nagios-Server nrpe-2.12]#make install-plugin
 [root@Nagios-Server nrpe-2.12]#make install-daemon
 [root@Nagios-Server nrpe-2.12]#make install-daemon-config
 [root@Nagios-Server nrpe-2.12]#make install-xinetd

1.1.2配置NRPE

[root@Nagios-Server nrpe-2.12]#vi /etc/xinetd.d/nrpe
 #default: on
 #description: NRPE (Nagios Remote Plugin Executor)
 service nrpe
 
   
Unknown macro: { 
 
   
              flags = REUSE 
 
   
              socket_type = stream 
 
   
              port = 5666 
 
   
              wait = no 
 
   
              user = nagios 
 
   
              group = nagios 
 
   
              server = /usr/local/nagios/bin/nrpe 
 
   
              server_args = -c /usr/local/nagios/etc/nrpe.cfg --inetd 
 
   
              log_on_failure += USERID 
 
   
              disable = no 
 
   
              only_from = 127.0.0.1 192.168.140.129 #注意:在 添加要监控的主机的地址,中间以空格隔开。 
   
 
   

                                                                                               #这个也可在/usr/local/nagios/etc/nrpe.cfg里的allowed_host设,等效  
   
 
   

                   }


1.1.3添加服务端口

[root@Nagios-Server nrpe-2.12]#vi /etc/services
 #在文件末尾添加
 nrpe 5666/tcp #nrpe


1.1.4重启服务并验证安装

[root@Nagios-Server ~]# /etc/init.d/xinetdrestart
 [root@Nagios-Server ~]# netstat -na | grep 5666
 tcp 0 0 0.0.0.0:5666 0.0.0.0:*

1.1.5修改命令定义文件

[root@Nagios-Server ~]# vim /usr/local/nagios/etc/objects/commands.cfg
 #nrpeset 在文件末尾添加下面命令定义
 define command
 
    
Unknown macro: { 
 
    
              command_name check_nrpe 
 
    
              command_line /usr/local/nagios/libexec/check_nrpe-H $HOSTADDRESS$ -c $ARG1$ 
 
    
              }


1.1.6 NRPE配置文件

[root@Nagios-Server ~]# vi /usr/local/nagios/etc/nrpe.cfg

默认情况下,有五个定义好的检测命令。

command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
 command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5-c 30,25,20
 command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c10% -p /dev/hda1
 command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5-c 10 -s Z
 command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150-c 200

1.2受监控Linux服务器部署

1.2.1添加用户名

[root@Nagios-Client ~]# useradd-s /sbin/nologin nagios

1.2.2安装Nagios的插件nagios-plugin

同服务端的安装



1.2.3安装NRPE代理检测程序

同服务器端的安装,不同的是修改xinetd配置文件的时候。

1>安装nrpe,同上。

2>配置NRPE

[root@Nagios-Client nrpe-2.12]# vi /etc/xinetd.d/nrpe
 #default: on
 #description: NRPE (Nagios Remote Plugin Executor)
 service nrpe
 
     
Unknown macro: {
 
     
              flags = REUSE 
 
     
              socket_type = stream 
 
     
              port = 5666 
 
     
              wait = no 
 
     
              user = nagios 
 
     
              group = nagios 
 
     
              server = /usr/local/nagios/bin/nrpe 
 
     
              server_args = -c /usr/local/nagios/etc/nrpe.cfg --inetd 
 
     
              log_on_failure += USERID 
 
     
              disable = no 
 
     
              only_from = 127.0.0.1 192.168.140.128 #注意:在 only_from 添加Nagios 监控服务器的 IP 地址。
 
     
                                                                        #这个也可在/usr/local/nagios/etc/nrpe.cfg里的allowed_host设,等效
 
     
              }

3>添加服务端口

[root@Nagios-Client nrpe-2.12]# vi /etc/services
 #在文件末尾添加
 nrpe 5666/tcp #nrpe

4> 重启服务并验证安装

[root@Nagios-Client ~]# /etc/init.d/xinetd restart
 [root@Nagios-Client ~]# netstat -na | grep 5666
 tcp 0 0 0.0.0.0:5666 0.0.0.0:*

1.2.4修改权限

[root@Nagios-Client ~]# chown-R nagios:nagios /usr/local/nagios/

1.3修改受控端的NRPE配置文件

修改受控端的 NRPE 配置文件时确定监控的内容和命令,然后再 Nagios 服务器上的服务定义文件中引用来实现对客户端的监控。

command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
 command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
 command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20 -c 10 -p /dev/hda1
 command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
 command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
 command[check_disk/]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /
 command[check_disk/var]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /var
 command[check_disk/usr]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /usr
 command[check_disk/tmp]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /tmp
 command[check_disk/data0]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /data0
 command[check_disk/data1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /data1
 command[check_disk/data2]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /data2
 command[check_disk/data3]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /data3
 command[check_disk/data4]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /data4
 command[check_disk/data5]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /data5
 command[check_disk/data6]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /data6
 command[check_disk/data7]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /data7
 command[check_disk/data8]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /data8
 command[check_disk/data9]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /data9

1.4修改Nagios服务器服务定义文件

[root@Nagios-Server ~]# vi /usr/local/nagios/etc/objects/services.cfg

添加以下内容:


define service
 
      
Unknown macro: {
 
      
              host_name Nagios-Client 
 
      
              service_description check-users 
 
      
              check_period 24x7 
 
      
              max_check_attempts 4 
 
      
              normal_check_interval 3 
 
      
              retry_check_interval 2 
 
      
              contact_groups 
 
      
              sagroup notification_interval 10 
 
      
              notification_period 24x7 
 
      
              notification_options w,u,c,r 
 
      
              check_command check_nrpe!check_users!20!50 
 
      
              }


1.5登陆验证配置

1.5.1查看配置文件是否正确

[root@Nagios-Server ~]#
 /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

1.5.2重新加载配置文件

[root@Nagios-Server ~]# /etc/init.d/nagios reload

1.5.3用IE浏览器登陆验证