Zabbix监控docker容器

前言

最近wordpress容器发布到公网,所以需要关注一下性能等情况

Zabbix监控docker容器

实施

1.编辑客户端的agent配置

[root@docker dockersh]# cat /etc/zabbix/zabbix_agentd.conf |grep UserParameter=docker
UserParameter=docker.discovery,/dockersh/docker.py
UserParameter=docker.[*],/dockersh/docker.py $1 $2

2.新建一个docker.py的脚本
[root@docker dockersh]# cat docker.py
#!/usr/bin/python
import sys
import os
import json

def discover():
d = {}
d[‘data’] = []
with os.popen(“docker ps -a –format {{.Names}}”) as pipe:
for line in pipe:
info = {}
info[‘{#CONTAINERNAME}’] = line.replace(“\n”,””)
d[‘data’].append(info)

print json.dumps(d)

def status(name,action):
if action == “ping”:
cmd = ‘docker inspect –format=”{{.State.Running}}” %s’ %name
result = os.popen(cmd).read().replace(“\n”,””)
if result == “true”:
print 1
else:
print 0
else:
cmd = ‘docker stats %s –no-stream –format “{{.%s}}”‘ % (name,action)
result = os.popen(cmd).read().replace(“\n”,””)
if “%” in result:
print float(result.replace(“%”,””))
else:
print result

if __name__ == ‘__main__’:
try:
name, action = sys.argv[1], sys.argv[2]
status(name,action)
except IndexError:
discover()

 

3.将zabbix用户加入到docker的用户组并设置docker.py的权限
[root@docker dockersh]# gpasswd -a zabbix docker
[root@docker dockersh]# chmod -R 777 docker.py

4.重启客户端的agent
[root@docker dockersh]# systemctl start zabbix-agent

5.在zabbix服务器执行

安装zabbix-get
[root@zabbix alertscripts]# yum install zabbix-get.x86_64

6.获取docker的特定容器的数据
[root@zabbix alertscripts]# zabbix_get -s 100.0.0.11 -k ‘docker.[wordpress,CPUPerc]’
此处100.0.0.11是docker宿主机的IP
wordpress是容器的名称

7.数据返回成功无报错
[root@zabbix alertscripts]# zabbix_get -s 100.0.0.11 -k ‘docker.[wordpress,CPUPerc]’
0.0

8.导入模板
docker.xml
如图示

Zabbix监控docker容器

设置容器自动发现规则

Zabbix监控docker容器

设置完成后,等待几分钟

       效果如图示

Zabbix监控docker容器 Zabbix监控docker容器Zabbix监控docker容器

原创文章,作者:admin,如若转载,请注明出处:https://www.starz.top/2020/12/08/zabbix%e7%9b%91%e6%8e%a7docker%e5%ae%b9%e5%99%a8/

发表评论

邮箱地址不会被公开。 必填项已用*标注