1.主动监控模式

监控客户端LNMP 网站服务

服务器端:

[root@nagios]#cd /usr/local/nagios/etc/objects

[root@nagios objects]# vi commands.cfg

#在最下面增加:


# 'check_weburl' command definition

define command{

command_name check_weburl

command_line $USER1$/check_http $ARG1$ -w 10 -c 30

}

保存退出


[root@nagios objects]#cd /usr/local/nagios/etc/services

创建主动模式监控配置文件webzd.cfg

[root@nagios objects]#vi webzd.cfg

define service {

use generic-service

host_name 1.34-web

service_description blog_ip

check_command check_weburl! -I 10.89.1.34

max_check_attempts 3

normal_check_interval 2

retry_check_interval 1

check_period 24x7

notification_interval 30

notification_period 24x7

notification_options w,u,c,r

contact_groups admins

process_perf_data 1

}


define service {

use generic-service

host_name 1.34-web

service_description blog_url

check_command check_http! -H bolg.etiantian.org

max_check_attempts 3

normal_check_interval 2

retry_check_interval 1

check_period 24x7

notification_interval 30

notification_period 24x7

notification_options w,u,c,r

contact_groups admins


}



define service {

use generic-service

host_name 1.34-web

service_description blog_port_80

check_command check_tcp!80

max_check_attempts 3

normal_check_interval 2

retry_check_interval 1

check_period 24x7

notification_interval 30

notification_period 24x7

notification_options w,u,c,r

contact_groups admins


}



define service {

use generic-service

host_name 1.34-web

service_description ssh_port

check_command check_tcp! 22

max_check_attempts 3

normal_check_interval 2

retry_check_interval 1

check_period 24x7

notification_interval 30

notification_period 24x7

notification_options w,u,c,r

contact_groups admins


}

define service {

use generic-service

host_name 1.34-web

service_description mysql_port

check_command check_tcp!3306

max_check_attempts 3

normal_check_interval 2

retry_check_interval 1

check_period 24x7

notification_interval 30

notification_period 24x7

notification_options w,u,c,r

contact_groups admins


}


define service {

use generic-service

host_name 1.34-web

service_description rsync

check_command check_tcp!873

max_check_attempts 3

normal_check_interval 2

retry_check_interval 1

check_period 24x7

notification_interval 30

notification_period 24x7

notification_options w,u,c,r

contact_groups admins


}

保存并退出


检查语法

[root@@nagios objects]# /etc/init.d/nagios checkconfig


没有错误的情况下:


[root@@nagios objects]# /etc/init.d/nagios reload

------------------------------------------------------------------


自定义插件:监控密码文件是否改变



客户端测试:

将/etc/passwd生成md5值

[root@weblnmp ~]# md5sum /etc/passwd

5e2ebd59c3ebb7bd3c4b09b0674ca746 /etc/passwd

保存到/etc/alvin.md5 (文件名随便取,存放的位置任意)

[root@weblnmp ~]# md5sum /etc/passwd >/etc/alvin.md5

分析md5值是否变化,没有变化显示"OK"

[root@weblnmp ~]# md5sum -c /etc/alvin.md5

/etc/passwd: OK


实战:

1.在客户端添加自定义脚本

cd /usr/local/nagios/libexec

cat check_passwd

#!/bin/bash

char=`md5sum -c /etc/alvin.md5 2>/dev/null|grep "OK"|wc -l`

if [ $char -eq 1 ];

then

echo "passwd is ok"

exit 0

else

echo "passwd is changed"

exit 2

fi


#添加执行的权限

[root@weblnmp libexec~]# chmod +x check_passwd

[root@weblnmplibexec~]# ll check_passwd

-rwxr-xr-x 1 root root 166 Jul 22 21:33 check_passwd

2.在客户端增加命令,并重启nrpe服务使之生效

[root@weblnmplibexec~]#vim /usr/local/nagios/etc/nrpe.cfg

添加check_passwd定义命令

command[check_passwd]=/usr/local/nagios/libexec/check_passwd


[root@weblnmplibexec~]#pkill nrpe

#重新启动nrpe

[root@weblnmplibexec~]#/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

#查看是否启动了

[root@weblnmplibexec~]ps -ef|grep nrpe

nagios 64672 1 0 Dec22 ? 00:00:21 /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

root 72255 72099 0 11:48 pts/0 00:00:00 grep nrpe

3.在服务端测试

[root@nagios services]# /usr/local/nagios/libexec/check_nrpe -H 10.89.1.34 -c check_passwd

passwd is ok


添加服务脚本

[root@nagios ~]#cd /usr/local/nagios/etc/objects/

[root@nagios objects]# vi services.cfg

#在后面添加

define service{

use generic-service

host_name 1.34-web-lnmp

service_description check_passwd

check_command check_nrpe!check_passwd

}


检测语法并重新加载/etc/init.d/nagios checkconfig

没有错误的情况下:

[root@nagios objects]# /etc/init.d/nagios reload


4.改变性测试在客户端执行添加用户命令

[root@weblnmp ~]#useradd jack

服务端执行

[root@nagios services]# /usr/local/nagios/libexec/check_nrpe -H 10.89.1.34 -c check_passwd

passwd is changed