系统监控

作者: 太阳上的雨天 分类: Docker 发布时间: 2022-07-25 11:56

Docker安装zabbix5

背景

  • Zabbix 知名的监控系统。应用广泛

  • 没有运维团队,开发需要开发业务需求的同时,照顾环境。

  • 微服务/分布式、多项目 机器多

  • 出现过磁盘空间不足的情况,无奈之下加硬盘重新挂载

  • 使用zabbix监控磁盘和内容,提前清理不必要的磁盘空间

环境

  • centos7
  • docker-compose

docker-compose的安装 自行百度不在赘述

机器规划

单机

名字 Ip 配置
Zabbix5 192.169.0.199 2CPU 2GMemory 50G

系统配置

1. 联网
 vim /etc/sysconfig/network-scripts/ifcfg-ens192
 ONBOOT=yes
 service network restart

Zabbix.yml

version: '3.5'
services:
  zabbix-server:
    image: zabbix/zabbix-server-mysql:centos-5.0-latest
    ports:
      - "10051:10051"
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - ./zbx_env/usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts:ro
      - ./zbx_env/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts:ro
      - ./zbx_env/var/lib/zabbix/modules:/var/lib/zabbix/modules:ro
      - ./zbx_env/var/lib/zabbix/enc:/var/lib/zabbix/enc:ro
      - ./zbx_env/var/lib/zabbix/ssh_keys:/var/lib/zabbix/ssh_keys:ro
      - ./zbx_env/var/lib/zabbix/mibs:/var/lib/zabbix/mibs:ro
      - ./zbx_env/var/lib/zabbix/snmptraps:/var/lib/zabbix/snmptraps:ro
    links:
      - mysql-server:mysql-server
    ulimits:
      nproc: 65535
      nofile:
        soft: 20000
        hard: 40000
    deploy:
      resources:
        limits:
          cpus: '0.70'
          memory: 1G
        reservations:
          cpus: '0.5'
          memory: 512M
    env_file:
      - .env_db_mysql
      - .env_srv
    depends_on:
      - mysql-server
    networks:
      zbx_net_backend:
        aliases:
          - zabbix-server
          - zabbix-server-mysql
          - zabbix-server-centos-mysql
          - zabbix-server-mysql-centos
      zbx_net_frontend:
    stop_grace_period: 30s
    sysctls:
      - net.ipv4.ip_local_port_range=1024 65000
      - net.ipv4.conf.all.accept_redirects=0
      - net.ipv4.conf.all.secure_redirects=0
      - net.ipv4.conf.all.send_redirects=0
    labels:
      com.zabbix.description: "Zabbix server with MySQL database support"
      com.zabbix.company: "Zabbix LLC"
      com.zabbix.component: "zabbix-server"
      com.zabbix.dbtype: "mysql"
      com.zabbix.os: "centos"

  zabbix-web-nginx-mysql:
    image: zabbix/zabbix-web-nginx-mysql:centos-5.0-latest
    ports:
      - "8081:8080"
      - "8443:8443"
    links:
      - mysql-server:mysql-server
      - zabbix-server:zabbix-server
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - ./zbx_env/etc/ssl/nginx:/etc/ssl/nginx:ro
      - ./zbx_env/usr/share/zabbix/modules/:/usr/share/zabbix/modules/:ro
    deploy:
      resources:
        limits:
          cpus: '0.70'
          memory: 512M
        reservations:
          cpus: '0.5'
          memory: 256M
    env_file:
      - .env_db_mysql
      - .env_web
    depends_on:
      - mysql-server
      - zabbix-server
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/"]
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 30s
    networks:
      zbx_net_backend:
        aliases:
          - zabbix-web-nginx-mysql
          - zabbix-web-nginx-centos-mysql
          - zabbix-web-nginx-mysql-centos
      zbx_net_frontend:
    stop_grace_period: 10s
    sysctls:
      - net.core.somaxconn=65535
    labels:
      com.zabbix.description: "Zabbix frontend on Nginx web-server with MySQL database support"
      com.zabbix.company: "Zabbix LLC"
      com.zabbix.component: "zabbix-frontend"
      com.zabbix.webserver: "nginx"
      com.zabbix.dbtype: "mysql"
      com.zabbix.os: "centos"

  zabbix-agent:
    image: zabbix/zabbix-agent:centos-5.0-latest
    ports:
      - "10050:10050"
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - ./zbx_env/var/lib/zabbix/modules:/var/lib/zabbix/modules:ro
      - ./zbx_env/var/lib/zabbix/enc:/var/lib/zabbix/enc:ro
      - ./zbx_env/var/lib/zabbix/ssh_keys:/var/lib/zabbix/ssh_keys:ro
    links:
      - zabbix-server:zabbix-server
    deploy:
      resources:
        limits:
          cpus: '0.2'
          memory: 128M
        reservations:
          cpus: '0.1'
          memory: 64M
      mode: global
    env_file:
      - .env_agent
    privileged: true
    pid: "host"
    networks:
      zbx_net_backend:
        aliases:
          - zabbix-agent
          - zabbix-agent-passive
          - zabbix-agent-centos
    stop_grace_period: 5s
    labels:
      com.zabbix.description: "Zabbix agent"
      com.zabbix.company: "Zabbix LLC"
      com.zabbix.component: "zabbix-agentd"
      com.zabbix.os: "centos"

  zabbix-java-gateway:
    image: zabbix/zabbix-java-gateway:centos-5.0-latest
    ports:
      - "10052:10052"
    deploy:
      resources:
        limits:
          cpus: '0.5'
          memory: 512M
        reservations:
          cpus: '0.25'
          memory: 256M
    env_file:
      - .env_java
    networks:
      zbx_net_backend:
        aliases:
          - zabbix-java-gateway
          - zabbix-java-gateway-centos
    stop_grace_period: 5s
    labels:
      com.zabbix.description: "Zabbix Java Gateway"
      com.zabbix.company: "Zabbix LLC"
      com.zabbix.component: "java-gateway"
      com.zabbix.os: "centos"

  zabbix-snmptraps:
    image: zabbix/zabbix-snmptraps:centos-5.0-latest
    ports:
      - "162:1162/udp"
    volumes:
      - ./zbx_env/var/lib/zabbix/snmptraps:/var/lib/zabbix/snmptraps:rw
    deploy:
      resources:
        limits:
          cpus: '0.5'
          memory: 256M
        reservations:
          cpus: '0.25'
          memory: 128M
    networks:
      zbx_net_frontend:
        aliases:
          - zabbix-snmptraps
      zbx_net_backend:
    stop_grace_period: 5s
    labels:
      com.zabbix.description: "Zabbix snmptraps"
      com.zabbix.company: "Zabbix LLC"
      com.zabbix.component: "snmptraps"
      com.zabbix.os: "centos"

  mysql-server:
    image: mysql:5.7
    command: [mysqld, --character-set-server=utf8, --collation-server=utf8_bin]
    volumes:
      - ./zbx_env/var/lib/mysql:/var/lib/mysql:rw
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env_db_mysql
    user: root
    stop_grace_period: 1m
    networks:
      zbx_net_backend:
        aliases:
          - mysql-server
          - zabbix-database
          - mysql-database

networks:
  zbx_net_frontend:
    driver: bridge
    driver_opts:
      com.docker.network.enable_ipv6: "false"
    ipam:
      driver: default
      config:
        - subnet: 172.16.238.0/24
  zbx_net_backend:
    driver: bridge
    driver_opts:
      com.docker.network.enable_ipv6: "false"
    internal: true
    ipam:
      driver: default
      config:
        - subnet: 172.16.239.0/24

成功之后通过ip+8088即可访问

Admin/zxbbix

http://192.168.0.199:8088/

设置中文

User settings -> Profile -> Language

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注