docker部署zabbix_agent的方法步骤

 更新时间:2020年10月23日 15:02:42   作者:时光茶居  
这篇文章主要介绍了docker部署zabbix_agent的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

zabbix_agent部署:

建议:zabbix_agent使用docker-compose方式单独部署

启动方式:

1、run方式启动

docker run --rm --network zabbix --name zabbix_agent--link zabbix_server:zabbix-server -e ZBX_HOSTNAME="mythird" -e ZBX_SERVER_PORT="10051" -e ZBX_SERVER_HOST="172.22.0.3" -p 3998:10050 -d zabbix/zabbix-agent:alpine-3.0-latest

2、docker-compose.yml

目录结构:

[root@container1 zabbix_agent]# cat etc/env_agent 
ZBX_SERVER_HOST=172.22.0.3
ZBX_SERVER_PORT=10051
ZBX_HOSTNAME=kgtest
ZBX_LISTENPORT=3050
ZBX_LOGTYPE=file
ZBX_LOGFILE=/tmp/zabbix_agentd.log

a、与zabbix_server/zabbix_proxy部署在同一个docker-compose.yml时,唯一的区别是:links的设置,其格式:servicename: name of zabbix

  zabbix_agent:
    image: zabbix/zabbix-agent:alpine-3.0-latest
    container_name: zabbix_agent
    ports:
     - "10050:10050"
    environment:
     ZBX_HOSTNAME: kg
    volumes:
     - /etc/localtime:/etc/localtime:ro
    links:
     - zabbix_server:zabbix-server
    user: root
    privileged: true
    restart: always
    networks:
     - zabbix

b、单独部署:

A、docker的bridge模式:如果是在同一个机器上,需要使用和zabbix_server/zabbix_proxy相同的网络

[root@container1 zabbix_agent]# cat docker-compose.yml 
version: "3"
services:
  zabbix_agent:
    image: zabbix/zabbix-agent:alpine-3.0-latest
    container_name: zabbix_agent3
    ports:
     - "3999:3050"
    env_file:
     - ./etc/env_agent
    volumes:
     - /etc/localtime:/etc/localtime:ro
     - ./etc/docker-entrypoint.sh:/usr/bin/docker-entrypoint.sh:ro   
     - ./etc/zabbix_agentd.d:/etc/zabbix/zabbix_agentd.d  
     - ./scripts:/data/zabbix/scripts
     - ./logs:/tmp
    user: root
    privileged: true
    restart: always
    networks:
     - zabbix
networks:
  zabbix:
    external: true

B、使用docker的host模式:为了监控tcp连接数

注意:使用host模式时,一定要需在防火墙中开放zabbix_agent映射在本机的端口

[root@kg zabbix_agent]# cat docker-compose.yml 
version: "3"
services:
  zabbix_agent:
    image: zabbix/zabbix-agent:alpine-3.0-latest
    container_name: zabbix_agent
    ports:
     - "3050:3050"
    env_file:
     - ./etc/env_agent
    volumes:
     - /etc/localtime:/etc/localtime:ro
     - ./etc/docker-entrypoint.sh:/usr/bin/docker-entrypoint.sh:ro
     - ./etc/zabbix_agentd.d:/etc/zabbix/zabbix_agentd.d
     - ./scripts:/data/zabbix/scripts
     - ./logs:/tmp
    user: root
    privileged: true
    restart: always
    #为了实现tcp连接监控,需要使用host网络模式
    network_mode: host

检查zabbix_agent是否正常工作:

首先启动zabbix_agent后,在server/proxy容器中先测试一下该agent是否可到达:

web界面设置:

a、如果未设置为自动发现agent方式时,需要手动添加agent主机

agent和server/proxy在同一台机器时,这时候的IP一定是docker分配的内网ip,端口为容器中端口,而不是映射到本机的端口

b、设置为自动发现agent机器

注意:如果设置为添加到某个主机群组时,需要先创建该主机群组

可能出现问题:

1、报错:temporarily disabling Zabbix agent checks on host "kgtest": host unavailable

解决方案:

a、如果是bridge模式,请检查一下agent的ZBX_HOSTNAME是否和主机配置中的主机名相同

b、如果是host模式,请检查一下防火墙是否已开放agent映射到本机端口。测试: telnet 本机IP port

2、报错:Received empty response from Zabbix Agent at [192.168.5.114]. Assuming that agent dropped connection because of access permissions.

其中,192.168.5.114为agent的外网/内网IP

原因:

a、使用zabbix_proxy代理:agent的ZBX_SERVER_HOST设置为zabbix_proxy的IP(172.22.0.6),但是web界面中的主机配置中却选择无agent代理程序。

解决方案:

选择使用指定的agent代理程序即可

b、直连zabbix_server:

A、agent的ZBX_SERVER_HOST设置为127.0.0.1而不是zabbix_server的IP(172.22.0.3)

解决方案:

将agent的ZBX_SERVER_HOST设置为zabbix_server的IP

B、zabbix_agent中日志报错:Message from 172.20.0.6 is missing header. Message ignored.

原因:这是因为zabbix_agent和zabbix_server版本不同不兼容造成的,zabbix_agent使用了新版本,但是zabbix_server使用旧版本造成的。

解决方案:检查一下zabbix_agent和zabbix_server版本

3、发现在中文界面进行自动发现时,出现以下报错:

切换为英文版界面后在操作就没有任何问题

需要更改zabbix_server中mysql中的character_set_server的编码格式。发现在线操作mysql方式无法解决,需要更改一下zabbix_server中的mysql服务启动脚本,解决方案,可以查看一下我的另外一篇文章《docker部署zabbix_server》

到此这篇关于docker部署zabbix_agent的方法步骤的文章就介绍到这了,更多相关docker部署zabbix_agent内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker到底是什么?Docker为什么它这么火!

    Docker到底是什么?Docker为什么它这么火!

    Docker这种新的容器技术可谓热得发烫,因为有了它,人们就有可能让数量多得多的应用程序在同样的旧服务器上运行;有了它,人们也很容易封装和交付程序。本文旨在帮助你进一步了解Docker
    2015-12-12
  • Docker容器之间数据传输的实现

    Docker容器之间数据传输的实现

    本文主要介绍了Docker容器之间数据传输的实现,文中根据实例编码详细介绍的十分详尽,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Docker中容器数据卷(Data Volume)和数据管理详解

    Docker中容器数据卷(Data Volume)和数据管理详解

    本文主要给大家介绍了关于Docker中容器数据卷(Data Volume)和数据管理的相关资料,文中介绍的很详细,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-02-02
  • Docker中Mysql容器无法停止无法删除问题

    Docker中Mysql容器无法停止无法删除问题

    这篇文章主要介绍了Docker中Mysql容器无法停止无法删除问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • 修改已有docker容器中的内容方法

    修改已有docker容器中的内容方法

    这篇文章主要介绍了修改已有docker容器中的内容方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 如何使用docker搭建ELK分布式日志同步方案

    如何使用docker搭建ELK分布式日志同步方案

    ELK作为业界最常用日志同步方案,我们今天尝试一下使用docker快速搭建一套ELK方案,ELK使用国内加速源拉取的镜像比较旧,有条件的朋友可以拉取官网的源,感兴趣的朋友跟随小编一起看看吧
    2024-07-07
  • 搭建docker内网私服的方法(docker-registry with nginx&ssl on centos)

    搭建docker内网私服的方法(docker-registry with nginx&ssl on centos)

    这篇文章主要介绍了搭建docker内网私服的方法(docker-registry with nginx&ssl on centos),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • docker启动nginx无法访问的问题解决

    docker启动nginx无法访问的问题解决

    本文主要介绍了docker启动nginx无法访问的问题解决,主要遇到404错误,问题原因是配置文件路径错误和权限问题,下面就来具体介绍一下问题解决,感兴趣的可以了解一下
    2025-02-02
  • Docker内网穿透frp部署实现过程解析

    Docker内网穿透frp部署实现过程解析

    这篇文章主要介绍了Docker内网穿透frp部署实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • docker容器无法访问宿主机端口的解决

    docker容器无法访问宿主机端口的解决

    这篇文章主要介绍了docker容器无法访问宿主机端口的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11

最新评论