首页 > 其他 > 详细

Nagios脚本编写事例

时间:2014-02-05 21:50:16      阅读:416      评论:0      收藏:0      [点我收藏+]

声明

本文是原创内容,欢迎转载,但请注明出处!

http://www.cnblogs.com/cjyfff/

 

目标:编写一个简单的nagios脚本,实现监控client上的nginx进程是否启动,假如没启动的话发出报警。

首先在master上对nagios的配置文件进行设置,修改services.cfg文件,在最末尾添加上以下内容:

1
2
3
4
5
6
7
8
define service{
use    local-service,services-pnp
host_name    centos1
service_description    CheckNginxState  #监控服务的名称
check_period    24x7
notification_options    c          #表明critical的情况时发出报警
check_command    check_nrpe!check_nginx #定义执行命令的名称,需与客户机上的nrpe.cfg上的定义一致
}

 

补充一点是对客户机添加脚本与master的commands.cfg无关,commands.cfg只定义面对master的本地服务的。本次我们是对客户机增加服务,因此就无需在master的commands.cfg上定义我们新增的命令了。这个问题当时困扰了我很长时间才发现。

转到客户机上,修改nagios上的nrpe.cfg文件,添加上以下内容:

1
command[check_nginx]=/usr/local/nagios/libexec/check_nginx.sh -c 1

解析一下这行文本的含义:

check_nginx,命令的名称,正如上面所说,需要与master上的servers.cfg中的check_command所引用的名称一致。

/usr/local/nagios/libexec/check_nginx.sh,这是脚本在客户机上的实际位置。

-c 1,定义当脚本返回值为1时,为critical状态。返回值为0时为OK状态,这是默认的,因此无需定义。关于warning和critical的值可以自行定义,例如想当脚本返回3时为warning,返回5时为critical的话,只需要加上-w 3 -c 5即可。

接下来编写check_nginx.sh这个脚本,这个脚本需放在/usr/local/nagios/libexec/下。脚本内容如下:

1
2
3
4
5
6
7
8
9
#!/bin/bash
a=`ps -e|grep nginx|wc -l`
if [ -n $a ];then
    echo "nginx is running."
    exit 0
else
    echo "nginx is NOT running."
    exit 1
fi

  把脚本保存并加上执行权限,重启一下masternagios服务,即可生效

bubuko.com,布布扣
 

Nagios脚本编写事例

原文:http://www.cnblogs.com/cjyfff/p/3538328.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!