美文网首页IT运维
nagios插件nrpe自定义脚本使用root权限执行

nagios插件nrpe自定义脚本使用root权限执行

作者: c38480262d38 | 来源:发表于2018-01-08 13:46 被阅读0次

    环境:公司刚小批量使用docker容器,没有使用k8s之类的统一管理docker容器。初期要监控docker每个container的运行状态,并结合nagios报警通知。

    由于没有多余时间去搭建docker专门的监控管理工具,就用最简单的古老的方法,用shell脚本获取 docker ps -a 里面的status,状态为非UP就报警;

    脚本内容如下:

    #!/bin/bash

    STATUS=`sudo docker ps -a |grep jenkins|awk '{print $9}'`

    if [  "$STATUS" == "Up" ]; then

        echo docker container jenkins status is "$STATUS"

        exit 0

    else

        echo "docker container jenkins is not running!"

        exit 2

    fi

    内容很丑也简单粗暴。

    然后惯例在nrpe.cfg里面添加

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

    服务端也配置好之后监控一直报 docker container jenkins is not running

    原因:

    docker用root账户起的,而且非docker运行账户使用docker ps 根本看不到里面跑的容器。

    解决办法:(操作系统为centos7.2)

    1 :修改/etc/sudoers

    修改Defaults    requiretty   为  Defaults:nagios  !requiretty (表示仅 nagios 用户不需要控制终端)

    添加nagios ALL=NOPASSWD:ALL  (表示nagios用户使用sudo直接不输入密码)

    2 在nrpe.cfg里面修改(sudo的路径先which一下)

    command[check_docker_jenkins]=/bin/sudo /usr/local/nagios/libexec/check_docker_jenkins

    3然后重启nrpe

    这样就能正常监控了,特此记录一下,举一反三。

    相关文章

      网友评论

        本文标题:nagios插件nrpe自定义脚本使用root权限执行

        本文链接:https://www.haomeiwen.com/subject/ldcbnxtx.html