以前使用cadvisor监控Docker容器状态,最近看到可以使用Zabbix Module的方式,通过部署一个zabbix agent的docker容器来监控宿主机器和宿主机器上docker的状态。原文可在https://github.com/monitoringartist/zabbix-docker-monitoring查看,我只是搬运工。
1、在需要监控的宿主机器上运行运行Agent容器。
直接在终端运行即可,不用写在dockerfile中。
docker run --name=dockbix-agent-xxl --net=host --privileged -v /:/rootfs -v /var/run:/var/run --restart unless-stopped -e "ZA_Server=zabbix-server的ip" -e "ZA_ServerActive=zabbix-server的ip>" -d monitoringartist/dockbix-agent-xxl-limited:latest
> 也可以使用国内镜像。
Agent 镜像(latest版本为Zabbix Agent 3.4版本+Dockbix V3版本,推荐使用) docker pull hub.c.163.com/canghai809/dockbix-agent-xxl-limited:latest docker pull hub.c.163.com/canghai809/dockbix-agent-xxl-limited:3.2-2 docker pull hub.c.163.com/canghai809/dockbix-agent-xxl-limited:3.2-1
2、运行后用docker logs -f docker容器名,看一下日志。
此步骤踩得坑:
14:20200304:092209.768 Starting Zabbix Agent [oracle11g]. Zabbix 3.4.2 Dockbix Agent XXL (2017-09-26) (revision 72885). 14:20200304:092209.768 **** Enabled features **** 14:20200304:092209.768 IPv6 support: YES 14:20200304:092209.768 TLS support: YES 14:20200304:092209.768 ************************** 14:20200304:092209.768 using configuration file: /etc/zabbix/zabbix_agentd.conf 14:20200304:092209.775 loaded modules: zabbix_module_docker.so, zabbix_module_stress.so, zabbix_module_systemd.so, zabbix_module_sockets.so 14:20200304:092209.776 listener failed: zbx_tcp_listen() fatal error: unable to serve on any address [[-]:10050]
需要把本地的zabbix-agent的停掉,dockbix没有使用独立的网络空间,使用的宿主机的。
3、zabbix-server配置。
在zabbix server上导入监控docker的模版,一共2个模版,下载后解压
模版下载地址:
https://dl.cactifans.com/zabbix/Zabbix-Template-App-Docker.tar.gz
使用一个即可:
在zabbix server里添加主机挂在模板即可。
注意:要使用宿主机上hostname命令获得的主机名。
4、测试
[root@zabbix-server ~]# zabbix_get -s 10.0.1.76 -k docker.up[/yunzhihui_grafana] 1
然后坐下来喝杯茶等着,大概需要8分钟才会有数据。