使用zabbix去监控docker容器

前言

现在容器技术越来越普遍,那么搭建了容器肯定要监控起来,监控方法有两种,一种是做一个zabbix-agent容器去监控容器,还有一个是升级原有的zabbix-agent,这里说第一种。

这里先交代一下环境:zabbix-server的ip是10.244.48.42,要监控的机器ip是10.244.34.79,这个机器里面装了一个容器在运行gitlab,如图:
paradin

事前检查两台服务器是否互通,而且10050和10051端口是否standby。还要在zabbix-server端做好auto-discovery,等等等等准备工作。

使用Zabbix Agent Docker进行监控

在10.244.34.79这个机器上先安装zabbix-agent容器:

1
2
3
4
5
6
7
8
9
10
docker run \		
--name=dockbix \ #这个是容器的名称
--net=host \ #容器可以直接访问主机上所有的网络信息
--privileged \ #容器内的root拥有真正的root权限
-v /:/rootfs \ #这个是对应宿主机的映射盘
-v /var/run:/var/run \
--restart unless-stopped \ #不管退出状态码是什么始终重启容器,不过当daemon启动时,如果容器之前已经为停止状态,不要尝试启动它。
-e "ZA_Server=10.244.48.42" \ #这里就填写zabbix-server的ip地址
-e "ZA_ServerActive=10.244.48.42" \
-d hub.c.163.com/canghai809/dockbix-agent-xxl-limited:latest #这里使用了网易蜂巢镜像

但是反馈给我docker: invalid restart policy unless-stopped.这样的错误信息,原来这个gitlab这台服务器的docker版本较老,而unless-stopped这个是在1.9.0版本才加入的,所以对于旧版的docker环境需要改成always

更改docker run的命令之后重新执行效果如下:
paradin

可见容器启动成功,docker logs -f 容器ID号看一下日志是否正常。如果正常的话,应该在zabbix-server端是可以看到这个10.244.34.79已经被添加到控制台里了,如图:
paradin

导入监控docker的模版

在zabbix server上导入监控docker的模版,一共2个模版,下载后解压。模版下载地址: https://dl.cactifans.com/zabbix/Zabbix-Template-App-Docker.tar.gz

我使用主动模式,因此导入Zabbix-Template-App-Docker-active.xml这个模版,如图:
paradin

paradin

此时可以去zabbix-server这个机器上验证一下是否监控成功,在zabbix-server上执行zabbix_get -s 10.244.34.79 -k docker.discovery,效果如下:
paradin

可见已经成功获取到了那两个容器的名称,这就代表zabbix-server已经监控到位了。

验证数据

首先现在10.244.34.79里执行docker stats 容器1的ID 容器2的ID...,看一下当前运行的所有容器的状态,如下:
paradin

与zabbix-server的latest data做一下对比,由于被监控机的docker版本较老,docker stats结果不是那么的精准,不过用来监控参考还是OK的…如果docker是最新版的,那么监控值是很准的。
paradin

剩下的就是慢慢添加triggers了…

补充一句,zabbix-agent 3.2的rpm安装方法:

1
2
3
4
rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm 
yum -y install zabbix-agent zabbix-sender
service zabbix-agent start
chkconfig zabbix-agent on

参考资料

https://github.com/monitoringartist/zabbix-docker-monitoring (墙裂推荐!)
https://blog.codeship.com/ensuring-containers-are-always-running-with-dockers-restart-policy/

感谢您请我喝咖啡~O(∩_∩)O,如果要联系请直接发我邮箱chenx1242@163.com,我会回复你的
-------------本文结束感谢您的阅读-------------