• zabbix+docker


    由于公司线上服务器数量太少,又要用于生产,领导让上zabbix,但熟知zabbix搭建需要LAMP或者LNMP,如果和生产服务器混搭的话,不方便管理,也怕出问题,所以就先使用docker方式搭建管理。

    zabbix组件:web、zabbix-server、zabbix-agent、如果服务器过多还需要用到zabbix-proce,这里未使用。

    环境: 服务器A:172.18.237.14

    服务器B:172.18.237.13 

    这里使用的zabbix官方镜像地址:https://hub.docker.com/r/zabbix/

    下面yml中用到的镜像都在此处,以及官方提供的变量,也可以到对应镜像说明查看。

    A服务器将作为server端(当然也要安装agent,监控自身),B服务器作为client端。 A服务器创建docker-compose.yml,内容如下:

    version: '3'
    services:
      zabbix-mysql:
        image: mysql:5.7
        container_name: zabbix-mysql
        ports:
          - '13306:3306'
        environment:
          MYSQL_ROOT_PASSWORD: 123456
          MYSQL_DATABASE: zabbix
          MYSQL_USER: zabbix
          MYSQL_PASSWORD: 123456
        volumes:
          - ./zabbix_mysql_data:/var/lib/mysql
    
      zabbix-web-apache-mysql:
        image: zabbix/zabbix-web-apache-mysql
        container_name: zabbix-web-apache-mysql
        environment:
          DB_SERVER_HOST: zabbix-mysql
          DB_SERVER_PORT: 3306
          MYSQL_DATABASE: zabbix
          MYSQL_USER: zabbix
          MYSQL_PASSWORD: 123456
          MYSQL_ROOT_PASSWORD: 123456
          ZBX_SERVER_HOST: zabbix-server-mysql
          PHP_TZ: Asia/Shanghai
        ports:
          - '80:80'
          - '443:443'
        links:
          - zabbix-mysql
          - zabbix-server-mysql
        depends_on:
          - zabbix-mysql
          - zabbix-server-mysql
    
      zabbix-server-mysql:
        image: zabbix/zabbix-server-mysql
        container_name: zabbix-server-mysql
        network_mode: host
        environment:
          DB_SERVER_HOST: 127.0.0.1
          DB_SERVER_PORT: 13306
          MYSQL_DATABASE: zabbix
          MYSQL_USER: zabbix
          MYSQL_PASSWORD: 123456
          MYSQL_ROOT_PASSWORD: 123456
        ports:
          - '10051:10051'
    #    links:
    #      - zabbix-mysql
        depends_on:
          - zabbix-mysql
    
      zabbix-agent:
        image: zabbix/zabbix-agent
        container_name: zabbix-agent
        network_mode: host
        environment:
          ZBX_HOSTNAME: zabbix-server-agent #这里的名字可以随意填写,不影响连接
          ZBX_SERVER_HOST: 127.0.0.1
        ports:
          - '10050:10050'

    之前用别人的yml,zabbix是搭建起来了,客户端的agent也能与server建立通信,但server端自身始终无法与监听到server端的agent,zabbix-server容器网络为bridge,通过端口映射方式将10051端口对外访问,zabbix-agent用的host模式,最终效果就是:

    后将yml修改为当前所示,问题解决。将zabbix-server容器也改为host模式,所以当前网络情况为:

    web容器和mysql容器使用bridge网络,并将端口映射至本机对外提供访问,并通过link连接,它们之间通过bridge网络实现互访(如3306端口);

    zabbix-server和zabbix-agent都使用host网络,zabbix-server与web、mysql通过host:(映射端口)进行互联(如13306端口)。

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------

    其他client上agent的docker-compose.yml配置如下:

    version: '3'
    services:
    
      zabbix-agent:
        image: zabbix/zabbix-agent
        container_name: zabbix-agent
        network_mode: host
        environment:
          ZBX_HOSTNAME: one  #这里的名字可以随意填写
          ZBX_SERVER_HOST: 172.18.237.14 #这里填写server的地址
        ports:
          - '10050:10050'
    未至精疲力尽,不要怨天尤人。昨日因,今日果。今日为,明日果也!
  • 相关阅读:
    npm发包流程
    K8S 多集群管理命令行工具: KubeCM
    为什么打印出来的单词少一横,如H、A、e等等
    Redission锁的设计原理和应用
    ELK学习笔记
    题解 noip2018模拟测试赛(三十五)
    题解 noip2018模拟测试赛(三十三)
    题解 noip2018模拟测试赛(三十二)
    题解 noip2018模拟测试赛(三十一)
    题解 【BZOJ3309】DZY Loves Math
  • 原文地址:https://www.cnblogs.com/ccit/p/9988901.html
Copyright © 2020-2023  润新知