容器的应用越来越普遍了,但是大量的容器我们怎么进行管理呢?当然是监控起来!

今天这篇文章讲的就是使用zabbix监控docker容器!

关于zabbix监控的docker的原理:

  • agent2监控docker就是通过调用docker的API来获取数据
  • 插件目录存放于zabbix-agent2/src/go/plugins/docker
  • client.go文件定义了 使用Unix套接字地址进行docker客户端与服务端的通信
  • 默认套接字位置为/var/run/docker.sock

通过zabbix监控docekr的部署大概分为五个部分:

1.下载zabbix-agent2

  • 在被监控主机安装zabbix-agent2,注意:是agent2,而不是agent。
  • zabbix-agent2版本要与服务端版本一致
wget https://repo.zabbix.com/zabbix/5.2/rhel/7/x86_64/zabbix-agent2-5.2.7-1.el7.x86_64.rpm
rpm -ivh zabbix-agent2-5.2.7-1.el7.x86_64.rpm

2.修改配置文件,基本配置即可。

vim /etc/zabbix/zabbix_agent2.conf
Server=192.168.1.4
ServerActive=192.168.1.4    #启动主动推送数据模式
Hostname=192.168.1.5

3.将zabbix用户加入到docker组,这点很重要,一定不能忽略。

  • 因为安装完zabbix-agent2会默认创建一个用户zabbix
id zabbix
uid=997(zabbix) gid=995(zabbix)=995(zabbix)
  • 要获取docker数据,我们需要拥有访问/var/run/docker.sock套接字的权限。
ll /var/run/docker.sock 
srw-rw---- 1 root docker 0 7月   7 09:09 /var/run/docker.sock
  • 我们可以看到,除了root用户,docker组也是有读写权限的,所以我们将zabbix用户加入到docker组。
usermod -aG docker zabbix
id zabbix
uid=997(zabbix) gid=995(zabbix)=995(zabbix),994(docker)

4.运行zabbix-agent2服务

systemctl start zabbix-agent2
systemctl enable zabbix-agent2

5 .在web页面进行配置

  • 本次实验我们的客户端依然使用192.168.1.5的主机

  • 步骤:点击配置——主机——点击192.168.1.5主机——模板——选择链接新模板——主机群组——模板——选择docker——点击更新
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 更新后我们就可以在配置——主机中看到监控项中有了docker
    在这里插入图片描述

  • 稍等片刻我们即可在监测——最新数据查看到监控到的docker信息
    在这里插入图片描述

  • 此时我们运行一个web01的docker容器

docker run -d -p 80:80 --name web01 nginx:1.16.1
docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                               NAMES
17095d63ed44   nginx:1.16.1   "nginx -g 'daemon of…"   20 minutes ago   Up 20 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp   web01
  • 片刻后我们即可看到zabbix检测docker容器关于web01容器的内容
    在这里插入图片描述
    本文使用的模板为自带模板
    到此,我们关于zabbix监控docker的内容完成!
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐