docker-compose 部署Zabbix全家桶
docker-compose.yml 文件,包含 PostgreSQL 17、Zabbix Server、Zabbix Web 和 Zabbix Agent 四个服务
version: '3.8'
services:
postgres:
image: postgres:17-alpine
container_name: zabbix-postgres
restart: unless-stopped
environment:
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: zabbix
POSTGRES_DB: zabbix
volumes:
- postgres-data:/var/lib/postgresql/data
networks:
- zabbix-net
healthcheck:
test: ["CMD-SHELL", "pg_isready -U zabbix"]
interval: 10s
timeout: 5s
retries: 5
zabbix-server:
image: zabbix/zabbix-server-pgsql:alpine-7.4-latest
container_name: zabbix-server
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
environment:
DB_SERVER_HOST: postgres
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: zabbix
POSTGRES_DB: zabbix
ZBX_HISTORYSTORAGEURL: "" # 可选,若使用 TimescaleDB 可配置
ZBX_CACHESIZE: "256M"
ports:
- "10051:10051" # 用于接收 agent 主动检查数据
volumes:
- zabbix-server-export:/var/lib/zabbix/export # 导出文件
networks:
- zabbix-net
zabbix-web:
image: zabbix/zabbix-web-nginx-pgsql:alpine-7.4-latest
container_name: zabbix-web
restart: unless-stopped
depends_on:
- postgres
- zabbix-server
environment:
ZBX_SERVER_HOST: zabbix-server
DB_SERVER_HOST: postgres
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: zabbix
POSTGRES_DB: zabbix
PHP_TZ: "Asia/Shanghai" # 设置时区
ports:
- "8080:8080" # 将 Web 服务映射到主机 8080 端口
volumes:
- zabbix-web-fonts:/usr/share/zabbix/assets/fonts # 字体(可解决中文乱码)
networks:
- zabbix-net
zabbix-agent:
image: zabbix/zabbix-agent:alpine-7.4-latest
container_name: zabbix-agent
restart: unless-stopped
depends_on:
- zabbix-server
environment:
ZBX_SERVER_HOST: zabbix-server
ZBX_ACTIVE_ALLOW: "true" # 允许主动检查
ZBX_PASSIVE_ALLOW: "true" # 允许被动检查
ports:
- "10050:10050" # 暴露 agent 端口(被动模式)
networks:
- zabbix-net
volumes:
postgres-data:
zabbix-server-export:
zabbix-web-fonts:
networks:
zabbix-net:
driver: bridge
使用说明
-
启动服务
在包含该docker-compose.yml的目录下执行:docker-compose up -d -
访问 Zabbix Web
浏览器打开http://localhost:8080,默认管理员账户:-
用户名:
Admin -
密码:
zabbix
-
-
自定义配置
-
数据库密码:建议修改环境变量中的
POSTGRES_PASSWORD(同时需同步修改zabbix-server和zabbix-web中的对应变量)。 -
时区:根据需要调整
PHP_TZ值(如Europe/London)。 -
端口:若主机端口冲突,可修改
ports映射(如"80:8080"将 Web 改为主机 80 端口)。
-
-
数据持久化
PostgreSQL 数据保存在 volume postgres-data 中。
-
Zabbix 导出文件和 Web 字体也使用了独立 volume,便于备份和迁移。
问题:
Get value from agent failed: Cannot establish TCP connection to [[127.0.0.1]:10050]: [111] Connection refused
修改主机接口配置
在 Zabbix Web 界面中:
-
进入 “配置 → 主机”,点击您的 Agent 主机。
-
在 “Agent 代理程序接口” 区域:
-
将 “连接到” 选项由 “IP” 改为 “DNS”(下拉菜单选择)。
-
在 “DNS名称” 字段中填写
zabbix-agent。 -
“IP地址” 字段可以留空(或填写
0.0.0.0,但留空更干净)。
-
-
保存配置。
本文来自博客园,作者:木子欢儿,转载请注明原文链接:https://www.cnblogs.com/HGNET/p/22118407

浙公网安备 33010602011771号