环境需求:

由于公司使用docker程序在线上环境中,防止容器以但挂掉我们这边可以随时监控到容器的情况,以及容器的资源占用情况;

公司领导决定使用zabbix监控docker



可参考资料https://www.cnblogs.com/feigerlan/p/8193600.html

 

1、首先在安装zabbixserver端;这里不做介绍

2、安装zabbix客户端,然后安装模块  pip install docker-py后面使用 client方法

3、完成之后在zabbix客户端安装docker服务,创建一个放脚本的文件夹

4、mkdir /etc/zabbix/script/

图片1.png 

5、接下来创建三个脚本,两个是python写的,一个是shell写的

 图片2.png

完成之后将zabbix的客户端配置文件修改一下

图片3.pngUserParameter=docker_discovery[*], python /etc/zabbix/script/docker_discovery.py $1

 

UserParameter=docker_stats[*],  sudo /usr/bin/python  /etc/zabbix/script/docker_monitor.py  $1 $2

 

UserParameter=docker_process[*], /bin/bash  /etc/zabbix/script/docker_processmonitor.sh   $1  $2  $3

图片4.png

重启zabbix客户端

6、server端测试一下啊看看脚本是否能够用

zabbix_get -s 172.16.2.115 -k docker_discovery[docker]

 图片5.png

查看其中一个容器的使用资源情况:

zabbix_get -s 172.16.2.115 -k docker_stats[tomcat,mem_usage]

zabbix_get -s 172.16.2.115 -k docker_stats[tomcat,cpu_total_usage]

zabbix_get -s 172.16.2.115 -k docker_stats[tomcat,cpu_percent]

zabbix_get -s 172.16.2.115 -k docker_stats[tomcat,mem_limit]

zabbix_get -s 172.16.2.115 -k docker_stats[tomcat,mem_percent]

zabbix_get -s 172.16.2.115 -k docker_stats[tomcat,network_rx_bytes]

zabbix_get -s 172.16.2.115 -k docker_stats[tomcat,network_tx_bytes]

图片6.png 

7、给权限,在客户端上操作:

图片7.png 

chown zabbix.zabbix /etc/zabbix/script/*

chmod 777 /etc/zabbix/script/docker_*

echo "zabbix ALL=(root) NOPASSWD:/bin/docker,/usr/bin/python,/etc/zabbix/script/docker_monitor.py,/etc/zabbix/script/docker_discovery.py,/etc/zabbix/script/docker_processmonitor.sh">>/etc/sudoers

 

 

 

8、接下来在zabbixweb上面配置模板板

 图片8.png图片9.png

图片10.png图片11.png

图片12.png



备注:下面的都要添加

  图片13.png

图片14.png

图片15.png


图片16.png

先创建了cpu、内存、和进出流量监控

 图片17.png

指定图形

 图片18.png

图片19.png图片20.png图片21.png

在定义下cpu的使用情况

和上面的一样

就改改名称就行:

 图片22.png

查看下效果

  

 图片23.png

图片24.png