1、环境
1.1、部署平台
宿主机
Centos 7.9 X 4台
容器部署
docker Run
2、硬件配置
3、官方文件
3、安装和配置
3.1、安装数据库
//zabbix postgresql安装
docker run --name postgres-server \
-t \
-e POSTGRES_USER="zabbix" \
-e POSTGRES_PASSWORD="zabbix" \ # 数据库密码,请注意改成自己的环境。
-e POSTGRES_DB="zabbix" \
-e POSTGRES_WORK_MEM=128M \
-e POSTGRESQL_MAX_CONNECTIONS=500 \
-e POSTGRES_SHARED_BUFFERS=4G \
-e POSTGRES_EFFECTIVE_CACHE_SIZE=12G \
-e POSTGRES_CHECKPOINT_TIMEOUT=15min \
-e TZ=Asia/Shanghai \
-e PGTZ=Asia/Shanghai \
-v /data/docker_storage/postgres/postgres_data:/var/lib/postgresql/data \
-p 5432:5432 \
--restart unless-stopped \
-d \
postgres:17.5
3.2、安装Zabbix服务器、前端、SNMP Traps
# zabbix snmp陷阱 安装
docker run --name zabbix-snmptraps -t \
-v /data/docker_storage/zabbix/snmpstraps/zbx_instance/snmptraps:/var/lib/zabbix/snmptraps:rw \
-v /data/docker_storage/zabbix/snmpstraps/mibs:/usr/share/snmp/mibs:ro \
-v /data/docker_storage/zabbix/snmpstraps/snmptrapd_config:/var/lib/zabbix/snmptrapd_config \
-e TZ=Asia/Shanghai \
--network=zabbix-net \
-p 162:1162/udp \
--restart unless-stopped \
-d zabbix/zabbix-snmptraps:alpine-7.2.7
# zabbix server postgresql安装
docker run --name zabbix-server-pgsql -t \
-e DB_SERVER_HOST="192.168.10.10" \ # 数据库主机IP地址
-e POSTGRES_USER="zabbix" \ # 数据库用户名
-e POSTGRES_PASSWORD="zabbix" \ # 数据库密码
-e POSTGRES_DB="zabbix" \ # 数据库表名
-e ZBX_ENABLE_SNMP_TRAPS="true" \ # 开启snmp陷进
-e TZ=Asia/Shanghai \ # 设置容器内时区亚洲上海
-e ZBX_CACHESIZE=2G \
-e ZBX_CACHEUPDATEFREQUENCY=30 \
-e ZBX_HISTORYCACHESIZE=2G \
-e ZBX_HISTORYINDEXCACHESIZE=1G \
-e ZBX_TRENDCACHESIZE=1G \
-e ZBX_TRENDFUNCTIONCACHESIZE=1G \
-e ZBX_VALUECACHESIZE=10G \
-e ZBX_HOUSEKEEPINGFREQUENCY=12 \
-e ZBX_MAXHOUSEKEEPERDELETE=5000 \
-e ZBX_STARTPOLLERS=100 \
-e ZBX_STARTPOLLERSUNREACHABLE=50 \
-e ZBX_STARTTRAPPERS=32 \
-e ZBX_STARTPINGERS=12 \
-e ZBX_STARTALERTERS=50 \
-e ZBX_STARTIPMIPOLLERS=10 \
-e ZBX_STARTPREPROCESSORS=10 \
-e ZBX_TIMEOUT=15 \
-e ZBX_STARTDBSYNCERS=15 \
-e ZBX_STATSALLOWEDIP=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com \ # 逗号分隔的 IP 地址列表,可选地采用 CIDR 表示法,或外部 Zabbix 实例的 DNS 名称,并且“::/0”将允许任何 IPv4 或 IPv6 地址。“0.0.0.0/0”可用于允许任何 IPv4 地址。
-e ZBX_LOGSLOWQUERIES=3000 \
-e ZBX_STARTLLDPROCESSORS=5 \
-e ZBX_STARTDISCOVERERS=15 \
-e ZBX_STARTESCALATORS=5 \
-v /data/docker_storage/zabbix/server/export:/var/lib/zabbix/export \ # 持久化export目录
--network=zabbix-net \
-p 10051:10051 \
--volumes-from zabbix-snmptraps \
--restart unless-stopped \
-d zabbix/zabbix-server-pgsql:alpine-7.2.7
#zabbix web nginx 安装(含php)
docker run --name zabbix-web-nginx-pgsql -t \
-e ZBX_SERVER_HOST="zabbix-server-pgsql" \ # 服务器主机名称
-e DB_SERVER_HOST="192.168.10.10" \ # 数据库主机IP地址
-e POSTGRES_USER="zabbix" \ # 数据库用户名
-e POSTGRES_PASSWORD="zabbix" \ # 数据库密码
-e POSTGRES_DB="zabbix" \ # 数据库表名
-e TZ=Asia/Shanghai \
-e PHP_TZ=Asia/Shanghai \
--network=zabbix-net \
-p 443:8443 \
-p 80:8080 \
-v /etc/ssl/nginx:/etc/ssl/nginx:ro \
--restart unless-stopped \
-d zabbix/zabbix-web-nginx-pgsql:alpine-7.2.7
4、查看Docker运行状态
4.1、服务器、前端
4.2、数据库
4.3、Proxy
代理有2台,分担服务器压力,配置都一样。
5、访问
http://192.168.10.11:18080