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状态

docker部署zabbix 6.0高可用集群实验的更多相关文章
- [转帖]Breeze部署kubernetes1.13.2高可用集群
Breeze部署kubernetes1.13.2高可用集群 2019年07月23日 10:51:41 willblog 阅读数 673 标签: kubernetes 更多 个人分类: kubernet ...
- 使用Ansible部署etcd 3.2高可用集群
之前写过一篇手动搭建etcd 3.1集群的文章<etcd 3.1 高可用集群搭建>,最近要初始化一套新的环境,考虑用ansible自动化部署整套环境, 先从部署etcd 3.2集群开始. ...
- RabbitMQ从零到集群高可用(.NetCore5.0) -高可用集群构建落地
系列文章: RabbitMQ从零到集群高可用(.NetCore5.0) - RabbitMQ简介和六种工作模式详解 RabbitMQ从零到集群高可用(.NetCore5.0) - 死信队列,延时队列 ...
- MySQL8.0 高可用集群化 · mysql-shell · mysql-router · docker · 单主多从
高可用集群的基本特点 负载均衡 / 读写分离 / 故障转移本文以此为目标,利用 mysql-shell.mysql-router,基于 docker 的环境架构(篇幅太长,内容多了点儿). 一.名词及 ...
- Redis Cluster 4.0高可用集群安装、在线迁移操作记录
之前介绍了redis cluster的结构及高可用集群部署过程,今天这里简单说下redis集群的迁移.由于之前的redis cluster集群环境部署的服务器性能有限,需要迁移到高配置的服务器上.考虑 ...
- 配置高可用集群(实验) corosyne+pacemaker
环境准备: 一准备三个虚拟机,把/etc/hosts/文件配置好 192.168.43.9 node0 ...
- 部署kubernetes1.8.3高可用集群
Kubernetes作为容器应用的管理平台,通过对pod的运行状态进行监控,并且根据主机或容器失效的状态将新的pod调度到其他node上,实现了应用层的高可用. 针对kubernetes集群,高可用性 ...
- 七台机器部署Hadoop2.6.5高可用集群
1.HA架构注意事项 两个Namenode节点在某个时间只能有一个节点正常响应客户端请求,响应请求的节点状态必须是active standby状态要能够快速无缝切换成active状态,两个NN节点必须 ...
- centos7下部署mariadb+galera数据库高可用集群
[root@node1 ~]# cat /etc/yum.repos.d/mariadb.repo # MariaDB 10.1 CentOS repository list - created 20 ...
- 基于Keepalived实现LVS双主高可用集群
Reference: https://mp.weixin.qq.com/s?src=3×tamp=1512896424&ver=1&signature=L1C7us ...
随机推荐
- C# 打开蓝牙设置界面
蓝牙设置相关界面,以下是通过C#方式打开的几个方式,记录一下 蓝牙设置界面 1.控制面板命令bthprops.cpl 可以用控制面板 control+bthprops.cpl,也可以直接bthprop ...
- Spring之丐版IOC实现
文章目录 IOC控制反转 依赖注入 Bean的自动装配方式 丐版IOC实现 BeanDefinition.java ResourceLoader.java BeanRegister.java Bean ...
- MySQL如何获取binlog的开始时间和结束时间
MySQL数据库恢复到指定时间点时,我们必须通过MySQL全备+MySQL增量备份(可选)+MySQL的二进制日志(binlog)进行重放来恢复到指定时间点,实际的生产环境中,可能一段时间内生成了多个 ...
- 分布式搜索引擎Elasticsearch基础入门学习
一.Elasticsearch介绍 Elasticsearch介绍 Elasticsearh 是 elastic.co 公司开发的分布式搜索引擎. Elasticsearch(简称ES)是一个开源的分 ...
- PaddlePaddle 飞桨复现 VGG16
import paddle.nn as nn class VGG16(nn.Layer): def __init__(self, num_classes=1000): super(VGG16, sel ...
- 文心一言 VS chatgpt (6)-- 算法导论2.3 1~2题
一.使用图 2-4作为模型,说明归并排序在数组 A=(3,41,52,26,38,57,9,49)上的操作. 文心一言: 使用图 2-4作为模型,说明归并排序在数组 A=(3,41,52,26,38, ...
- mac系统下,docker安装kibana报错,manifest for kibana:latest not found: manifest unknown: manifest unknown
1.问题描述:mac系统下,docker安装kibana报错,manifest for kibana:latest not found: manifest unknown: manifest unkn ...
- django安装依赖包报错No such file or directory: 'requirement.txt'和警告You are using pip version 22.0.4; however, version 23.0.1 is available.
ERROR: Could not open requirements file: [Errno 2] No such file or directory: 'requirement.txt'WARNI ...
- 使用umi+dva做一个demo
最初只是使用react 进行开发项目,发现项目过大状态管理起来就相当困难,虽然有redux, mobx,但是使用起来还是相当繁琐,而目前umi有现成的轮子使用简单,当然愿意尝试了,趁现在假期有时间简单 ...
- webpack Dev Server Invalid Options options should NOT have additional prop
今日npm run serve时提示ERROR ValidationError: webpack Dev Server Invalid Options options should NOT have ...