docker容器运行状态监控
此脚本用于监控容器运行状态,并将异常容器通过钉钉端报警!!!1、编写监控脚本[root@localhost ~]#vim containerState-monitor.sh!/bin/bash###########################################################监控容器运行状态,异常通过钉钉端报警脚本!!!######################
·
此脚本用于监控容器运行状态,并将异常容器通过钉钉端报警!!!
1、编写监控脚本
[root@localhost ~]# vim containerState-monitor.sh
!/bin/bash
##########################################################
# 监控容器运行状态,异常通过钉钉端报警脚本!!! #
##########################################################
#取出容器的名字
containerName=`docker ps -a --format "table {{.Names}}" | grep -v "NAMES"`
#钉钉报警Token
dingtalk_openapi="https://oapi.dingtalk.com"
dingtalk_openapi_token="根据自己的token填"
#循环判断容器运行状态情况
for containerState in ${containerName[*]}
do
#查看容器的运行状态
exist=`docker inspect --format '{{.State.Running}}' ${containerState}`
#判断容器运行状态,运行正常在屏幕输出即可,异常则发送报警到钉钉
if [ "${exist}" = "true" ]; then
echo "容器$containerState运行正常"
else
curl ''$dingtalk_openapi'/robot/send?access_token='$dingtalk_openapi_token'' \
-H 'Content-Type: application/json' \
-d '{"msgtype": "text",
"text": {
"content": "警告:'$containerState'服务运行异常,所在服务器为'xxx.xxx.xxx.xx'"
}
}'
fi
done
2、测试时脚本时可能会报错如下
[root@localhost ~]# ./containerState-monitor.sh
flag provided but not defined: --format
See 'docker ps --help'.
上面的报错是因为docker版本低于1.8.0,导致-- format参数无法使用
3、将脚本中提取容器名字的命令改为如下即可
[root@localhost ~]# vim containerState-monitor.sh
containerName=`docker ps -a | awk 'NR == 1 {next} {print $NF}'`
4、如果需要指定容器监控,可以参考如下(监控所有容器不需要更改脚本!!!)
[root@localhost ~]# docker ps --format "table {{.Names}}" | grep -v "NAMES" > containerState.txt
[root@localhost ~]# vim containerState-monitor.sh
#取出容器的名字
#containerName=`docker ps -a --format "table {{.Names}}" | grep -v "NAMES"`
#将上面取出容器名字的变量更改为如下,路径根据实际情况
#通过文件所记录的容器赋值给变量
containerName=`cat /root/containerState.txt`
5、设置计划任务
[root@localhost ~]# crontab -e
*/1 * * * * /root/containerState-monitor.sh
更多推荐
已为社区贡献1条内容
所有评论(0)