前面写了篇关于docker部署zabbix监控系统的文章,在其中发现docker部署agent时的一些问题,然后去查找相关资料,现在将一些情况总结一下。
Docker部署agent,不会受服务器系统的影响,只要agent镜像构建好,并且服务器能运行docker,那么就可以进行agent的安装部署。比直接部署要轻便,并且灵活。
Docker部署agent,如果不对宿主机进行/proc目录的挂载,其监控的是容器的状态,无法真实的反映宿主机的资源使用情况。虽然可以通过挂载形式进行宿主机资源监控,但是效果比不上直接部署的效果好。同时若是要进行自定义监控项的拓展,若是容器内缺少相关的环境依赖,也无法添加,操作比较繁琐,不够简便。
不建议使用docker来部署zabbix agent客户端。推荐直接将agent部署在服务器上,直接监控服务器。
但是如果有时候确实需要使用agent部署客户端时,那要注意什么?现在我就将我部署时碰到的问题总结一下。
这个时候使用docker部署agent客户端,agent配置的zabbix server地址按照正常部署时配置即可,即zabbix server服务器所在IP+端口。
然后在zabbix server上面添加对应的监控对象即可。
如:
在单独一台服务器启动一个agent容器,配置如图
添加监控主机
完成监控
若是agent客户端跟zabbix server服务端部署在同一台机器上,且都是使用docker进行部署的,这个时候agent要和server配置连接就有点变化。
当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"
如:
若是不这样配置,那么agent客户则会报错:
同时zabbix web界面进行监控项测试,也会失败
当docker部署的zabbix agent客户端使用host网络模式时,那么docker部署zabbix server也要使用host网络模式。
这时候启动zabbix server跟zabbix 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
因此,在使用docker进行zabbix监控系统部署时,可以使用docker来部署zabbix server,zabbix web以及zabbix连接的数据库。
但是zabbix agent客户端还是采用直接部署的方式进行部署,而且官方提供的zabbix agent客户端部署包是一个二进制式的安装包,部署简单快速。还可以编写部署脚本制作成快速部署包,至于如何编写脚本制作agent客户端快速部署包,可以看小菜鸡前面发的一遍文章就有写过:如何快速部署zabbix-agent客户端
若是大家对本文有何疑问和建议,请大家评论留言,小菜鸡会随时关注,谢谢!
错误信息