使用dockbix监控docker


以前使用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、测试

[ ~]# zabbix_get -s 10.0.1.76 -k docker.up[/yunzhihui_grafana]
1

然后坐下来喝杯茶等着,大概需要8分钟才会有数据。