关于docker部署zabbix agent客户端碰到的几个问题

docker部署zabbix agent客户端的一些问题探讨。

前面写了篇关于docker部署zabbix监控系统的文章,在其中发现docker部署agent时的一些问题,然后去查找相关资料,现在将一些情况总结一下。

1.   Docker部署agent的优缺点

1.1.       优点

Docker部署agent,不会受服务器系统的影响,只要agent镜像构建好,并且服务器能运行docker,那么就可以进行agent的安装部署。比直接部署要轻便,并且灵活。

1.2.       缺点

Docker部署agent,如果不对宿主机进行/proc目录的挂载,其监控的是容器的状态,无法真实的反映宿主机的资源使用情况。虽然可以通过挂载形式进行宿主机资源监控,但是效果比不上直接部署的效果好。同时若是要进行自定义监控项的拓展,若是容器内缺少相关的环境依赖,也无法添加,操作比较繁琐,不够简便。

1.3.       总结

不建议使用docker来部署zabbix agent客户端。推荐直接将agent部署在服务器上,直接监控服务器。

 

2.   部署情形

但是如果有时候确实需要使用agent部署客户端时,那要注意什么?现在我就将我部署时碰到的问题总结一下。

2.1.       Agent单独部署在一台机器

这个时候使用docker部署agent客户端,agent配置的zabbix server地址按照正常部署时配置即可,即zabbix server服务器所在IP+端口。

然后在zabbix server上面添加对应的监控对象即可。

如:

在单独一台服务器启动一个agent容器,配置如图

1Lejed8p635f6e88e636f.png

添加监控主机

CKbsjfxt635f6eae04fbb.png

完成监控

aoWwe5XO635f6eb5d20f1.png

2.2.       Agentserver同时部署在一台机器

若是agent客户端跟zabbix server服务端部署在同一台机器上,且都是使用docker进行部署的,这个时候agent要和server配置连接就有点变化。

2.2.1.           docker使用bridge网络模式

docker部署的zabbix agent客户端使用bridge网络模式时,那么docker部署zabbix server也要使用bridge网络模式。

这个时候启动zabbix agent客户端的docker命令就必须配置

docker run --name zabbix-agent --link zabbix-server -e ZBX_HOSTNAME=192.168.75.31 -e ZBX_SERVER_HOST=172.17.0.1 -e ZBX_SERVER_PORT=10051 -p 10050:10050 --privileged -d zabbix/zabbix-agent:latest

重点在于agent配置zabbix server的连接地址。这个时候要配置成zabbix server的容器网关IP或直接配置成zabbix server的容器IP。这样agent客户端和zabbix server才能建立通信连接。

若是使用docker-compose启动,那么docker-compose.yaml配置文件需这样编写

version: '3.8'
services:
  zabbix-agent:
    container_name: zabbix_agent
    image: zabbix/zabbix-agent:latest
    restart: always
    environment:
      ZBX_HOSTNAME: 192.168.164.50
      ZBX_SERVER_HOST: 172.17.0.1
      ZBX_SERVER_PORT: 11051
    ports:
      - "11050:10050"

如何查看zabbix server的容器IP

Docker inspect [zabbix server容器名] | grep "IPAddiress"

如:

Gq8wA0to635f6f369d871.png

若是不这样配置,那么agent客户则会报错:

llD6pUbM635f6f495b667.png

同时zabbix web界面进行监控项测试,也会失败

fHAoJdiK635f6f5246362.png

2.2.2.           docker使用host网络模式

docker部署的zabbix agent客户端使用host网络模式时,那么docker部署zabbix server也要使用host网络模式。

这时候启动zabbix serverzabbix agent都需要配置参数:--net=host

同时agent配置的zabbix server地址按照正常部署时配置即可,即zabbix server服务器所在IP+端口。

如:启动一个agent

docker run --name zabbix-agent --link zabbix-server -e ZBX_HOSTNAME=192.168.1.9 -e ZBX_SERVER_HOST=192.168.1.9 -e ZBX_SERVER_PORT=10051 --net=host --privileged -d zabbix/zabbix-agent:latest

若是使用docker-compose启动,那么docker-compose.yaml配置文件需这样编写

version: '3.8'
services:
  zabbix-agent:
    container_name: zabbix_agent
    image: zabbix/zabbix-agent:latest
    restart: always
    environment:
      ZBX_HOSTNAME: 192.168.164.50
      ZBX_SERVER_HOST: 192.168.164.50
      ZBX_SERVER_PORT: 11051
    

3.   建议

因此,在使用docker进行zabbix监控系统部署时,可以使用docker来部署zabbix serverzabbix web以及zabbix连接的数据库。

但是zabbix agent客户端还是采用直接部署的方式进行部署,而且官方提供的zabbix agent客户端部署包是一个二进制式的安装包,部署简单快速。还可以编写部署脚本制作成快速部署包,至于如何编写脚本制作agent客户端快速部署包,可以看小菜鸡前面发的一遍文章就有写过:如何快速部署zabbix-agent客户端

若是大家对本文有何疑问和建议,请大家评论留言,小菜鸡会随时关注,谢谢!

0 条评论

请先 登录 后评论
我是一只小菜鸡
我是一只小菜鸡

小菜鸡

12 篇文章

作家榜 »

  1. 乐维君 397 文章
  2. YOHOHO 14 文章
  3. 机灵小和尚 13 文章
  4. 我是一只小菜鸡 12 文章
  5. 细雨闲花 11 文章
  6. 。。。 9 文章
  7. 御前侍卫张五哥 9 文章
  8. 小黄人 8 文章