您的位置:首页 > 服务器 > > 正文

zabbix启动教程(docker部署zabbix_agent的方法步骤)

更多 时间:2022-03-28 16:57:18 类别:服务器 浏览量:2536

zabbix启动教程

docker部署zabbix_agent的方法步骤

zabbix_agent部署:

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

zabbix启动教程(docker部署zabbix_agent的方法步骤)

启动方式:

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

    目录结构:

    zabbix启动教程(docker部署zabbix_agent的方法步骤)

  • [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启动教程(docker部署zabbix_agent的方法步骤)

    检查zabbix_agent是否正常工作:

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

    zabbix启动教程(docker部署zabbix_agent的方法步骤)

    web界面设置:

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

    zabbix启动教程(docker部署zabbix_agent的方法步骤)

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

    zabbix启动教程(docker部署zabbix_agent的方法步骤)

    zabbix启动教程(docker部署zabbix_agent的方法步骤)

    zabbix启动教程(docker部署zabbix_agent的方法步骤)

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

    zabbix启动教程(docker部署zabbix_agent的方法步骤)

    zabbix启动教程(docker部署zabbix_agent的方法步骤)

    zabbix启动教程(docker部署zabbix_agent的方法步骤)

    zabbix启动教程(docker部署zabbix_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.

    zabbix启动教程(docker部署zabbix_agent的方法步骤)

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

    原因:

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

    zabbix启动教程(docker部署zabbix_agent的方法步骤)

    zabbix启动教程(docker部署zabbix_agent的方法步骤)

    zabbix启动教程(docker部署zabbix_agent的方法步骤)

    解决方案:

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

    zabbix启动教程(docker部署zabbix_agent的方法步骤)

    zabbix启动教程(docker部署zabbix_agent的方法步骤)

    b、直连zabbix_server:

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

    zabbix启动教程(docker部署zabbix_agent的方法步骤)

    解决方案:

    将agent的ZBX_SERVER_HOST设置为zabbix_server的IP

    zabbix启动教程(docker部署zabbix_agent的方法步骤)

    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启动教程(docker部署zabbix_agent的方法步骤)

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

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

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

    您可能感兴趣