• Nagios脚本编写事例


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

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

    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文件,添加上以下内容:

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

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

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

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

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

    #!/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 2
    fi
    

      

    在这个脚本中,当检测到nginx进程正在运行时,脚本会返回0给nagios,代表nginx正常运行;当检测到nginx进程不存在时,会返回2给nagios,触发critical告警。

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


     

  • 相关阅读:
    JEECG与帆软报表集成
    各种数据库的锁表和解锁操作
    sql server数据库查询超时报错
    java项目部署后的文件路径获取
    js解决跨站点脚本编制问题
    java递归算法实现拼装树形JSON数据
    FreeMarker中的list集合前后台代码
    去除list集合中重复项的几种方法
    Java中Properties类的操作
    mysql 容灾 灾备 备份
  • 原文地址:https://www.cnblogs.com/cjyfff/p/3538328.html
Copyright © 2020-2023  润新知