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浏览器登陆验证