Article

-- All Article

Docker 构建Zabbix监控

运维

       之前的文章我有提过到我自己组了一台黑群辉,开始用着还不错,我还给网卡刷了mac地址,用着还不错;由于开始的时候资料并不是很多,所以研究了一下远程唤醒,这时候发现了一个问题,我的群辉在唤醒的时候偶尔会有无法启动的情况,然后我一咬牙一跺脚,入手了一台白群辉,为了让这些硬件继续发挥余热,我给他装了ESXi 虚拟化系统。

        由于虚拟机运行的越来越多,很快磁盘内存就开始告警,告警最频繁的还是磁盘的读写延迟(我这里现在挂的是两块5400转的2.5寸机械硬盘),偶尔会有虚拟机直接挂掉的情况,正好了解到了zabbix,搭建了docker版的zabbix来帮忙监听整个服务。

        

    先上最终效果图

    

z.s.itzcy.com_zabbix.php_action=dashboard.view.png

下面是我docker版的构建脚本

version: '2'
services:
  zabbix-mysql:
    image: mysql:5.7
    container_name: zabbix-mysql
    restart: always
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    environment:
      MYSQL_ROOT_PASSWORD: zabbix
      MYSQL_DATABASE: zabbix
    ports:
      - 3306:3306
    volumes:
      - zabbix-mysql-data:/var/lib/mysql
    networks:
        zabbix-network:

  zabbix-server:
    image: zabbix/zabbix-server-mysql:latest
    container_name: zabbix-server
    restart: always
    environment:
      DB_SERVER_HOST: zabbix-mysql
      MYSQL_DATABASE: zabbix
      MYSQL_USER: root
      MYSQL_PASSWORD: zabbix
      ZBX_JAVAGATEWAY: zabbix-java-gateway
      ZBX_STARTDISCOVERERS: 3
    depends_on:
      - zabbix-mysql
    ports:
      - 10051:10051 
    volumes:
      - zabbix-server-data:/var/lib/zabbix/
    networks:
        zabbix-network:

  zabbix-web-nginx:
    image: zabbix/zabbix-web-nginx-mysql:latest
    container_name: zabbix-web-nginx
    restart: always
    environment:
      DB_SERVER_HOST: zabbix-mysql
      MYSQL_DATABASE: zabbix
      MYSQL_USER: root
      MYSQL_PASSWORD: zabbix
      ZBX_SERVER_HOST: zabbix-server
      PHP_TZ: Asia/Shanghai   
    depends_on:
      - zabbix-mysql
      - zabbix-server
    ports:
      - 4000:80
    volumes:
      - zabbix-web-data:/usr/share/zabbix
    networks:
        zabbix-network:

  zabbix-server-agent:
      image: zabbix/zabbix-agent:latest
      container_name: zabbix-server-agent
      environment:
        ZBX_HOSTNAME: "Zabbix server"
        ZBX_SERVER_HOST: 172.19.0.1
        ZBX_SERVER_PORT: 10051
      depends_on:
        - zabbix-server
      ports:
        - 10050:10050
      networks:
        zabbix-network:

volumes: 
  zabbix-server-data:
  zabbix-mysql-data:
  zabbix-web-data:

networks:
   zabbix-network:
      ipam:
         config:
         - subnet: 172.19.0.0/16
           gateway: 172.19.0.1


docker 版的需要以下镜像配合

  • mysql:5.7 (存数据,没什么解释的)

  • zabbix/zabbix-server-mysql  (负责 zabbix 服务)

  • zabbix/zabbix-agent (负责 zabbix 监控)

  • zabbix/zabbix-web-nginx-mysql (负责 zabbix Web 展示)







文章中如果有什么不对的地方,欢迎指出。