docker部署zabbix 6.0高可用集群实验

0 实验环境

虚拟机,postgresql本地部署,zabbix server及nginx容器部署

1 postgresql

参看前作 《postgresql + timescaledb离线安装笔记》完成部署,对外端口tcp 15432,账号zabbix,密码123

2 zabbix server

2.1 拉取镜像

docker pull zabbix/zabbix-server-pgsql:6.0-alpine-latest

2.2 创建网络

docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net

2.3 启动server容器

启动两个容器分别作为主备server节点,分别使用本地tcp 10051和10052端口

2.3.1 server主节点

docker run --name zabbix-server-pgsql-1 -t \
	-e DB_SERVER_HOST="172.17.0.1" -e DB_SERVER_PORT="15432" \
	-e POSTGRES_USER="zabbix" -e POSTGRES_PASSWORD='123' -e POSTGRES_DB="zabbix" \
	-e ZBX_CACHESIZE="128M" -e ZBX_HISTORYCACHESIZE="32M" -e ZBX_HISTORYINDEXCACHESIZE="8M" -e ZBX_TRENDCACHESIZE="8M" -e ZBX_VALUECACHESIZE="64M" \
	-e ZBX_LOGSLOWQUERIES="3000" -e ZBX_STARTPOLLERS="5" -e ZBX_STARTPREPROCESSORS="10" -e ZBX_STARTPOLLERSUNREACHABLE="5" -e ZBX_STARTESCALATORS="5" -e ZBX_STARTDBSYNCERS="5" \
	-e ZBX_HANODENAME="server-01" -e ZBX_NODEADDRESS="172.20.240.1" \
	-p 10051:10051 --network=zabbix-net --restart unless-stopped \
	-d zabbix/zabbix-server-pgsql:6.0-alpine-latest

2.3.2 server备节点

docker run --name zabbix-server-pgsql-2 -t \
	-e DB_SERVER_HOST="172.17.0.1" -e DB_SERVER_PORT="15432" \
	-e POSTGRES_USER="zabbix" -e POSTGRES_PASSWORD='123' -e POSTGRES_DB="zabbix" \
	-e ZBX_CACHESIZE="128M" -e ZBX_HISTORYCACHESIZE="32M" -e ZBX_HISTORYINDEXCACHESIZE="8M" -e ZBX_TRENDCACHESIZE="8M" -e ZBX_VALUECACHESIZE="64M" \
	-e ZBX_LOGSLOWQUERIES="3000" -e ZBX_STARTPOLLERS="5" -e ZBX_STARTPREPROCESSORS="10" -e ZBX_STARTPOLLERSUNREACHABLE="5" -e ZBX_STARTESCALATORS="5" -e ZBX_STARTDBSYNCERS="5" \
	-e ZBX_HANODENAME="server-02" -e ZBX_NODEADDRESS="172.20.240.2" \
	-p 10052:10051 --network=zabbix-net --restart unless-stopped \
	-d zabbix/zabbix-server-pgsql:6.0-alpine-latest

2.3.3 调试命令(进入active容器,即zabbix-server-pgsql-1)

显示Server集群状态:

zabbix_server -R ha_status

结果如下

Failover delay: 60 seconds
Cluster status:
   #  ID                        Name                      Address                        Status      Last Access
   1. clkc8ouam00016nrvjcuugxsr server-01                 172.20.240.1:10051             active      4s
   2. clkc8ozws00016nmr5dyv7qd4 server-02                 172.20.240.2:10051             standby     2s

可删除备节点

zabbix_server -R ha_remove_node=clkc8ozws00016nmr5dyv7qd4

3 web

3.1 拉取镜像

docker pull zabbix/zabbix-web-nginx-pgsql:6.0-alpine-latest

3.1 启动容器

注意ZBX_SERVER_HOST和ZBX_SERVER_PORT一定要设置为空

docker run --name zabbix-web-nginx-pgsql -t \
    -e ZBX_SERVER_HOST="" -e ZBX_SERVER_PORT="" \
    -e DB_SERVER_HOST="172.17.0.1" -e DB_SERVER_PORT="15433" \
    -e POSTGRES_USER="zabbix" -e POSTGRES_PASSWORD="123" -e POSTGRES_DB="zabbix" \
    -e ZBX_SERVER_NAME="zabbix-test" \
    -e PHP_TZ="Asia/Shanghai" \
    -p 10080:8080 --network=zabbix-net --restart unless-stopped \
    -d zabbix/zabbix-web-nginx-pgsql:6.0-alpine-latest

4 测试

4.1 原始状态

在System information页面下可以看到,此时server-01是主用节点

4.2 切换

将zabbix-server-pgsql-1容器暂停

docker stop zabbix-server-pgsql-1

此时可以看到server-01变为stopped状态,server-02成为Active状态
 


再次启动zabbix-server-pgsql-1容器,则server-01变回Standby状态

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Docker可以用来轻松地在容器中运行Zabbix 6.0监控系统。下面是安装Zabbix 6.0Docker容器的基本步骤: 1. **拉取Zabbix Docker镜像**: 使用Docker命令从Docker Hub拉取Zabbix官方镜像,例如`zabbix/zabbix-server`。你可以使用以下命令: ``` docker pull zabbix/zabbix-server ``` 2. **运行Zabbix服务器容器**: 运行容器时,需要指定一些环境变量和端口映射。例如,你可以设置数据库连接信息,以及将Zabbix Web界面监听的端口映射到主机的8080端口: ``` docker run --name some-zabbix-server \ -e ZABBIX_SERVER_CONFIG_FILE=/etc/zabbix/zabbix_server.conf \ -e ZABBIX_DATABASE_HOST=your_database_host \ -e ZABBIX_DATABASE_USER=zabbix \ -e ZABBIX_DATABASE_PASSWORD=zabbix_password \ -p 8080:80 \ -d zabbix/zabbix-server ``` 其中,`some-zabbix-server`是容器名称,可以根据需要自定义。 3. **配置Zabbix Server**: 容器启动后,Zabbix可能还需要一些额外配置。你需要访问Zabbix Web界面(默认是http://localhost:8080),登录(默认admin/admin),然后根据需求设置网络监控、服务器组、模板等。 4. **安装MySQL或其他数据库(可选)**: 如果Zabbix需要数据库支持,你还需要运行一个数据库容器,如MySQL。确保容器间的数据共享和通信已经设置好。 5. **数据持久化**: 如果你希望数据持久化,可以使用挂载卷(-v参数)来保存配置文件和数据库数据: ``` -v /path/on/host/config:/etc/zabbix -v /path/on/host/data:/var/lib/zabbix ``` 6. **更新和扩展**: 对于后续的升级或扩展,可以直接基于已有的Zabbix镜像创建新容器,或通过Dockerfile构建自己的Zabbix镜像。 相关问题: 1. Docker镜像中的Zabbix Server如何连接外部数据库? 2. 如何在Zabbix容器中配置Web界面的权限? 3. 数据库容器如何与Zabbix服务器容器进行数据交互?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野生的狒狒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值