nagios插件nrpe自定義腳本使用root權(quán)限執(zhí)行

環(huán)境:公司剛小批量使用docker容器,沒有使用k8s之類的統(tǒng)一管理docker容器。初期要監(jiān)控docker每個container的運行狀態(tài),并結(jié)合nagios報警通知。

由于沒有多余時間去搭建docker專門的監(jiān)控管理工具,就用最簡單的古老的方法,用shell腳本獲取 docker ps -a 里面的status,狀態(tài)為非UP就報警;

腳本內(nèi)容如下:

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

內(nèi)容很丑也簡單粗暴。

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

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

服務(wù)端也配置好之后監(jiān)控一直報 docker container jenkins is not running

原因:

docker用root賬戶起的,而且非docker運行賬戶使用docker ps 根本看不到里面跑的容器。

解決辦法:(操作系統(tǒng)為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

這樣就能正常監(jiān)控了,特此記錄一下,舉一反三。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容