nagios配置监控的一些思路和工作流程

nagios的监控原理:实际上很简单。我们在服务器端已经安装了nrpe服务,那么所有的客户端数据都是通过这个nrpe来收集,并且传到nagios服务器,在由nagios去调用生成。

 

工作过程:

(1)客户端在nrpe.cfg文件下已经定义了,调用模块的方式或者nagios识别的命令:

比如:command[check_ips]=/usr/local/nrpe/libexec/ip_conn.sh 8000 10000 (自己编写的脚本)

(2)服务器端通过check_nrpe -H 192.168.1.1 -c chekc_ips 。这个命令句可以手机到客户端这个脚本的数据。

(3)然互我们在服务端定义一个server.cfg就可以收集到关机这台主机的这个服务了。

服务器端:nagios的解析过程:

(1)nagios服务启动时,就回去加载nagios.cfg这个文件里面的数据。里面是我们定义的监控的类型:(cfg_file=/usr/local/nagios/etc/objects/192.168.10.1.cfg  #这一句我地宫一的这台主机文件存放的位置)

(2)到上面的目录下创建192.168.10.1.cfg这个文件。里面定义了监控的类型。

(3)还有contacts.cfg 你可以自己创建一个联系人,发邮邮件到你的邮箱.

#当然还有一些文件:如监控本机时候用到的command.cfg。假如启动报错。说没有这个命令。那么你就可以去command.cfg下面添加就可以了。

 

举例一个自己编写脚本监控服务报警的例子:

在客户端操作:

1、在/usr/local/nagios/libexec/目录下新建check_nginx文件:内容如下

#!/bin/bash
nginx=`/usr/bin/pgrep nginx`
if [ "$nginx" != "" ]
then
echo "nginx is run"
exit 0
fi
if [ "$nginx" = "" ]
then
exit 1
fi

#exit0表示正常。#exit1表示报警

2、编辑nrpe.cfg文件添加命令#给可执行权限和用户:

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

3、服务器端,查看是否连接成功nrpe客户端,不成功的话看防火墙,和nrpe.cfg的allow添加服务器IP地址:

[root@monitor objects]# /usr/local/nagios/libexec/check_nrpe -H 192.168.10.9
NRPE v2.12

4、测试模块是否收集到数据(下面是已经收到的):

[root@monitor objects]# /usr/local/nagios/libexec/check_nrpe -H 192.168.10.9 -c check_nginx
nginx is run

5、编辑192.168.10.9.cfg文件添加这个服务:

define service{
                use                             generic-service
                host_name                       192.168.10.9
                service_description             check_nginx
                check_command                   check_nrpe!check_nginx
                         notifications_enabled           1
                check_period 24x7
                max_check_attempts 3
                 normal_check_interval 10
                retry_check_interval 1
                contact_groups admins
                notification_options w,u,c,r
                notification_interval 120
                notification_period 24x7

}

6、然后重启就可以监控到了。

 

下面举例几个监控脚本:监控并发量:

#!/bin/sh
#xiaoluo
#2014.11.4

ip_conns=`netstat -an | grep tcp | grep EST | wc -l`

if [ $ip_conns -lt $1 ]
then
echo "OK -connect is $ip_conns"
exit 0
fi
if [ $ip_conns -gt $1 -a $ip_conns -lt $2 ]
then
echo "Warning -connect is $ip_conns"
exit 1
fi
if [ $ip_conns -gt $2 ]
then
echo "Critical -connect is $ip_conns"
exit2
fi

2、nrpe添加命令:command[check_ips]=/usr/local/nagios/libexec/check_ips 4000   8000 (4000报警。8000严重)

#编写脚本注意事项:

都用if判断,然后看返回值:

然后exit 0 表示正常

exit1 表示报警

exit2 表示严重        #这3个人跟我们写的脚本没有直接关系只是给nrpe的一个信号

 

到这,觉得改手工了,遇到问题的朋友可以交流一下。像监控mysql主从的,可以写一个监控两个状态是否都为yes然后在if判断。给exit的那几个值。

 

本文出自 “小罗” 博客,请务必保留此出处http://xiaoluoge.blog.51cto.com/9141967/1587997

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。