前言
最近wordpress容器发布到公网,所以需要关注一下性能等情况
实施
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
如图示
设置容器自动发现规则
设置完成后,等待几分钟
效果如图示
原创文章,作者:admin,如若转载,请注明出处:https://www.starz.top/2020/12/08/zabbix%e7%9b%91%e6%8e%a7docker%e5%ae%b9%e5%99%a8/