zabbix 自定义监控docker容器

1、线上环境docker已经运行起来了,有时候容器挂掉之后没有第一时间通知,之前已经搭建好zabbix并配置好了微信告警

2、使用zabbix来监控容器,并发送告警

3、首先创建一个自定义监控脚本,来获取监控的值

#!/bin/bash
#监控容器的运行状态
#容器名称  传入参数
containerName=$1
#当前时间
now=`date +"%Y-%m-%d %H:%M:%S"`

# 查看进程是否存在
exist=`docker inspect --format '{{.State.Status}}' ${containerName}`

if [ "${exist}" != "running" ]; then
    #记录日志
    echo "${now} docker容器异常, 容器名称:${containerName}" 请检查 >> /home/work/monitor/docker_monitor.log
    echo 0
else
    echo 1
fi

脚本说明:通过docker inspect检查容器状态是否为runing,如果是则脚本反馈1,如果不是则返回0

4、修改zabbix_agentd.conf配置文件
vim /etc/zabbix/zabbix_agentd.conf
找到 UnsafeUserParameters=0 ,默认是0,修改为1,
然后,为我们自定义监控项,格式为:UserParameter=<键值>,<命令>
UserParameter=janus_monitor,bash /home/work/monitor/docker_monitor.sh titan_janus_1
自定义键值为:janus_monitor 要执行的命令为执行docker_monitor.sh这个脚本 ,加上参数titan_janus_1(这个是需要监控的容器名称)

image.png

添加完成以后,重启zabbix_agentd生效

5、在zabbix服务端检查一下能不能获取到监控的指标
zabbix_get -s 192.168.0.220 -p 10050 -k "janus_monitor"
结果是1,说明OK了,否则报错的话就要排查错误,直到输出结果是我们要的那个
其中

-s 客户端的IP
-p 客户端端口,默认10050
-k 监控项的key

6、zabbix面板创建监控项


image.png

填好之后,保存

再为这个监控项创建一个触发器来发送告警

image.png

点击添加

image.png

点击插入,保存退出

检查一下状态


image.png

再创建一个图形

image.png
image.png

过一段时间之后发现就有数据显示了

image.png

7、测试一下告警有没有生效,把这个容器stop

大约10s就触发了告警

image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容