如何通过Docker安装Zabbix 7.4版本?

摘要:一、概述 随着Zabbix 7.0 LTS的正式发布,它将为企业提供提供比以往任何版本都更容易使用的具有各种开箱即用的企业级功能的一体化监控解决方案。 zabbix7.0新功能如下: 1.通过定义灵活的基于场景的多步骤监控网站和Web应用程
一、概述 随着Zabbix 7.0 LTS的正式发布,它将为企业提供提供比以往任何版本都更容易使用的具有各种开箱即用的企业级功能的一体化监控解决方案。 zabbix7.0新功能如下: 1.通过定义灵活的基于场景的多步骤监控网站和Web应用程序。 2.通过自动proxy负载均衡和高可用性功能, 按需扩展Zabbix环境并确保100%的可用性。 3.Zabbix proxy现在支持将所有采集的指标存储在内存中。 4.为了大幅提升指标轮询的速度和扩展性, 同步式poller进程已被异步式poller取代。 5.集中控制数据采集超时可以更好地处理较长数据采集时间间隔的指标和自定义检查。 6.引入了多种新的仪表板小部件,使您能够更全面地了解您监控的指标和基础架构。 7.网络自动发现支持并行检查,将主机和服务发现的速度提高了10到100倍。 8.开箱即用的多因子认证(MFA)支持提供了企业级安全性, 并为配置用户认证方法提供了更大的灵活性。 9.更灵活的资源发现和管理 10.Zabbix 7.0 LTS预装了许多最受欢迎的供应商和云提供商的新模板 详细内容请参阅官方文档: https://www.zabbix.com/rn/rn7.0.0 二、安装 使用一台Linux服务器,提前安装了docker,docker-compose即可,注意:docker版本不要太老了,最好使用新版。 这里服务器ip为:192.168.52.130 创建持久化目录 mkdir -p /opt/zabbix/{mysql,alertscripts,externalscripts,export,modules,enc,ssh_keys,ssl/certs,ssl/keys,ssl/ssl_ca,snmptraps} chmod -R 755 /opt/zabbix 修改docker-compose.yml,为Agent分配固定IP,避免重启后变化: cat > /opt/zabbix/docker-compose.yml <<'EOF' version: '3.8' services: mysql-server: image: mysql:8.0 container_name: zabbix-mysql restart: always command: - --character-set-server=utf8mb4 - --collation-server=utf8mb4_bin - --default-authentication-plugin=mysql_native_password - --log-bin-trust-function-creators=1 environment: MYSQL_ROOT_PASSWORD: zabbix_root_pwd MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: zabbix_pwd volumes: - /opt/zabbix/mysql:/var/lib/mysql networks: zabbix-net: ipv4_address: 172.20.0.2 zabbix-server: image: zabbix/zabbix-server-mysql:alpine-7.4-latest container_name: zabbix-server restart: always ports: - "10051:10051" environment: DB_SERVER_HOST: 172.20.0.2 MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: zabbix_pwd MYSQL_ROOT_PASSWORD: zabbix_root_pwd ZBX_CACHESIZE: 512M ZBX_HISTORYCACHESIZE: 256M ZBX_TRENDCACHESIZE: 128M ZBX_VALUECACHESIZE: 256M # Zabbix 7.4新增进程配置 ZBX_STARTCONNECTORS: 1 ZBX_STARTJAVAPOLLERS: 5 ZBX_JAVAGATEWAY_ENABLE: "true" ZBX_JAVAGATEWAY: 172.20.0.6 ZBX_STARTREPORTWRITERS: 1 ZBX_STARTIPMIPOLLERS: 1 ZBX_STARTSNMPTRAPPER: 1 ZBX_STARTVMWARECOLLECTORS: 1 ZBX_VMWAREPERFREQUENCY: 60 ZBX_VMWARETIMEOUT: 10 ZBX_STARTPOLLERS: 15 ZBX_STARTPREPROCESSORS: 15 ZBX_STARTTRAPPERS: 15 ZBX_STARTDISCOVERERS: 5 ZBX_STARTHTTPPOLLERS: 5 ZBX_STARTTIMERS: 5 ZBX_STARTESCALATORS: 5 ZBX_STARTALERTERS: 5 ZBX_TIMEOUT: 30 ZBX_TRAPPERIMEOUT: 30 volumes: - /opt/zabbix/alertscripts:/usr/lib/zabbix/alertscripts - /opt/zabbix/externalscripts:/usr/lib/zabbix/externalscripts - /opt/zabbix/export:/var/lib/zabbix/export - /opt/zabbix/modules:/var/lib/zabbix/modules - /opt/zabbix/enc:/var/lib/zabbix/enc - /opt/zabbix/ssh_keys:/var/lib/zabbix/ssh_keys - /opt/zabbix/ssl/certs:/var/lib/zabbix/ssl/certs - /opt/zabbix/ssl/keys:/var/lib/zabbix/ssl/keys - /opt/zabbix/ssl/ssl_ca:/var/lib/zabbix/ssl/ssl_ca - /opt/zabbix/snmptraps:/var/lib/zabbix/snmptraps networks: zabbix-net: ipv4_address: 172.20.0.3 zabbix-web: image: zabbix/zabbix-web-nginx-mysql:alpine-7.4-latest container_name: zabbix-web restart: always ports: - "8080:8080" - "8443:8443" environment: ZBX_SERVER_HOST: 172.20.0.3 ZBX_SERVER_PORT: 10051 DB_SERVER_HOST: 172.20.0.2 MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: zabbix_pwd MYSQL_ROOT_PASSWORD: zabbix_root_pwd PHP_TZ: Asia/Shanghai ZBX_SERVER_NAME: Zabbix-K8s-Monitor-7.4 networks: zabbix-net: ipv4_address: 172.20.0.4 zabbix-java-gateway: image: zabbix/zabbix-java-gateway:alpine-7.4-latest container_name: zabbix-java-gateway restart: always ports: - "10052:10052" networks: zabbix-net: ipv4_address: 172.20.0.6 zabbix-agent: image: zabbix/zabbix-agent2:alpine-7.4-latest container_name: zabbix-agent restart: always privileged: true pid: host environment: ZBX_HOSTNAME: "Zabbix server" ZBX_SERVER_HOST: "172.20.0.3" ZBX_SERVER_PORT: 10051 ZBX_ACTIVE_ALLOW: "true" ZBX_PASSIVE_ALLOW: "true" volumes: - /:/rootfs:ro - /var/run:/var/run:ro - /sys:/sys:ro networks: zabbix-net: ipv4_address: 172.20.0.5 networks: zabbix-net: driver: bridge ipam: config: - subnet: 172..20.0.0/24 EOF 启动服务 docker-compose up -d 等等几分钟,查看服务状态是否正常 # docker-compose ps WARN[0000] /opt/zabbix/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS zabbix-agent zabbix/zabbix-agent2:alpine-6.0-latest "/sbin/tini -- /usr/…" zabbix-agent About a minute ago Up About a minute 10050/tcp, 31999/tcp zabbix-java-gateway zabbix/zabbix-java-gateway:alpine-6.0-latest "docker-entrypoint.s…" zabbix-java-gateway About a minute ago Up About a minute 0.0.0.0:10052->10052/tcp zabbix-mysql mysql:8.0 "docker-entrypoint.s…" mysql-server About a minute ago Up About a minute 3306/tcp, 33060/tcp zabbix-server zabbix/zabbix-server-mysql:alpine-6.0-latest "/sbin/tini -- /usr/…" zabbix-server About a minute ago Up About a minute 0.0.0.0:10051->10051/tcp zabbix-web zabbix/zabbix-web-nginx-mysql:alpine-6.0-latest "docker-entrypoint.sh" zabbix-web About a minute ago Up About a minute (healthy) 0.0.0.0:8080->8080/tcp, 8443/tcp 获取Agent容器IP docker-compose exec zabbix-agent hostname -i 输出:172.20.0.5 登录web页面 http://192.168.52.130:8080/ 默认用户名:Admin,密码:zabbix 登录之后,修改语言为中文 效果如下: 点击数据采集-->主机-->Zabbix server,将agent ip 127.0.0.1修改为172.20.0.5,最后点击更新 注意:这里必须使用ip地址,不能使用别名或者域名。 如果需要安装zabbix 6.0版本,可以使用以下yaml cat > /opt/zabbix/docker-compose.yml <<'EOF' version: '3.8' services: mysql-server: image: mysql:8.0 container_name: zabbix-mysql restart: always command: - --character-set-server=utf8mb4 - --collation-server=utf8mb4_bin - --default-authentication-plugin=mysql_native_password environment: MYSQL_ROOT_PASSWORD: zabbix_root_pwd MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: zabbix_pwd volumes: - /opt/zabbix/mysql:/var/lib/mysql networks: zabbix-net: ipv4_address: 172.20.0.2 zabbix-server: image: zabbix/zabbix-server-mysql:alpine-6.0-latest container_name: zabbix-server restart: always ports: - "10051:10051" environment: DB_SERVER_HOST: 172.20.0.2 MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: zabbix_pwd MYSQL_ROOT_PASSWORD: zabbix_root_pwd ZBX_CACHESIZE: 256M ZBX_HISTORYCACHESIZE: 128M ZBX_JAVAGATEWAY_ENABLE: "true" ZBX_JAVAGATEWAY: 172.20.0.6 networks: zabbix-net: ipv4_address: 172.20.0.3 zabbix-web: image: zabbix/zabbix-web-nginx-mysql:alpine-6.0-latest container_name: zabbix-web restart: always ports: - "8080:8080" environment: ZBX_SERVER_HOST: 172.20.0.3 DB_SERVER_HOST: 172.20.0.2 MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: zabbix_pwd MYSQL_ROOT_PASSWORD: zabbix_root_pwd PHP_TZ: Asia/Shanghai networks: zabbix-net: ipv4_address: 172.20.0.4 zabbix-java-gateway: image: zabbix/zabbix-java-gateway:alpine-6.0-latest container_name: zabbix-java-gateway restart: always ports: - "10052:10052" networks: zabbix-net: ipv4_address: 172.20.0.6 zabbix-agent: image: zabbix/zabbix-agent2:alpine-6.0-latest container_name: zabbix-agent restart: always privileged: true environment: ZBX_HOSTNAME: "zabbix-server" ZBX_SERVER_HOST: "172.20.0.3,127.0.0.1" ZBX_SERVER_PORT: 10051 volumes: - /:/rootfs:ro networks: zabbix-net: ipv4_address: 172.20.0.5 networks: zabbix-net: driver: bridge ipam: config: - subnet: 172.20.0.0/24 EOF