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高可用集群实验的更多相关文章

  1. [转帖]Breeze部署kubernetes1.13.2高可用集群

    Breeze部署kubernetes1.13.2高可用集群 2019年07月23日 10:51:41 willblog 阅读数 673 标签: kubernetes 更多 个人分类: kubernet ...

  2. 使用Ansible部署etcd 3.2高可用集群

    之前写过一篇手动搭建etcd 3.1集群的文章<etcd 3.1 高可用集群搭建>,最近要初始化一套新的环境,考虑用ansible自动化部署整套环境, 先从部署etcd 3.2集群开始. ...

  3. RabbitMQ从零到集群高可用(.NetCore5.0) -高可用集群构建落地

    系列文章: RabbitMQ从零到集群高可用(.NetCore5.0) - RabbitMQ简介和六种工作模式详解 RabbitMQ从零到集群高可用(.NetCore5.0) - 死信队列,延时队列 ...

  4. MySQL8.0 高可用集群化 · mysql-shell · mysql-router · docker · 单主多从

    高可用集群的基本特点 负载均衡 / 读写分离 / 故障转移本文以此为目标,利用 mysql-shell.mysql-router,基于 docker 的环境架构(篇幅太长,内容多了点儿). 一.名词及 ...

  5. Redis Cluster 4.0高可用集群安装、在线迁移操作记录

    之前介绍了redis cluster的结构及高可用集群部署过程,今天这里简单说下redis集群的迁移.由于之前的redis cluster集群环境部署的服务器性能有限,需要迁移到高配置的服务器上.考虑 ...

  6. 配置高可用集群(实验) corosyne+pacemaker

    环境准备: 一准备三个虚拟机,把/etc/hosts/文件配置好                              192.168.43.9 node0                     ...

  7. 部署kubernetes1.8.3高可用集群

    Kubernetes作为容器应用的管理平台,通过对pod的运行状态进行监控,并且根据主机或容器失效的状态将新的pod调度到其他node上,实现了应用层的高可用. 针对kubernetes集群,高可用性 ...

  8. 七台机器部署Hadoop2.6.5高可用集群

    1.HA架构注意事项 两个Namenode节点在某个时间只能有一个节点正常响应客户端请求,响应请求的节点状态必须是active standby状态要能够快速无缝切换成active状态,两个NN节点必须 ...

  9. centos7下部署mariadb+galera数据库高可用集群

    [root@node1 ~]# cat /etc/yum.repos.d/mariadb.repo # MariaDB 10.1 CentOS repository list - created 20 ...

  10. 基于Keepalived实现LVS双主高可用集群

    Reference:  https://mp.weixin.qq.com/s?src=3&timestamp=1512896424&ver=1&signature=L1C7us ...

随机推荐

  1. 开心档之MySQL 复制表

    MySQL 复制表 如果我们需要完全的复制MySQL的数据表,包括表的结构,索引,默认值等. 如果仅仅使用CREATE TABLE ... SELECT命令,是无法实现的. 本章节将为大家介绍如何完整 ...

  2. Object-Advanced笔记

    JavaScript对象进阶 数据劫持 1. 概念 一旦访问或者修改对象的属性时 拦截这个行为(访问/修改) 并对其添加除这个行为外的操作 最后返回结果 2. 实现 2.1 getter和setter ...

  3. CefSharp自定义缓存实现

    大家好,我是沙漠尽头的狼. 上文介绍了<C#使用CefSharp内嵌网页-并给出C#与JS的交互示例>,本文介绍CefSharp的缓存实现,先来说说添加缓存的好处: 提高页面加载加速:Ce ...

  4. Centos7.x 安装配置Web性能压力测试工具Siege

    一.简介 Siege是一款开源的压力测试工具,设计用于评估WEB应用在压力下的承受能力.可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重 ...

  5. 音视频八股文(10)-- mp4结构

    介绍 mp4⽂件格式⼜被称为MPEG-4 Part 14,出⾃MPEG-4标准第14部分 .它是⼀种多媒体格式容器,⼴泛⽤于包装视频和⾳频数据流.海报.字幕和元数据等.(顺便⼀提,⽬前流⾏的视频编码格 ...

  6. 2021-09-24:给定一个正整数 n ,输出的第 n 项。前五项如下:1:1。2:11。3:21。4:1211。5:111221。第一项是数字 1 。描述前一项,这个数是 1 即 “ 一 个 1

    2021-09-24:给定一个正整数 n ,输出的第 n 项.前五项如下:1:1.2:11.3:21.4:1211.5:111221.第一项是数字 1 .描述前一项,这个数是 1 即 " 一 ...

  7. 计算机网络OSI七层参考模型和tcp/udp五层参考模型

    计算机网络OSI七层参考模型和tcp/udp五层参考模型 目录 一.OSI七层参考模型和TCP/UDP五层参考模型 1.应用层 2.表示层 3.会话层 4.传输层 5.网络层 6.数据链路层 7.物理 ...

  8. UART-UART非常见波特率调试应用笔记

    UART非常见波特率调试 应用笔记 串口通信中的波特率选择,对于确保可靠的数据传输至关重要.波特率是衡量单位时间内传输的比特数,常见的波特率包括300.1200.2400.9600.115200等.不 ...

  9. GPT大模型下,如何实现网络自主防御

    GPT大模型下,如何实现网络自主防御 本期解读专家  李智华 华为安全AI算法专家    近年来,随着GPT大模型的出现,安全领域的攻防对抗变得更加激烈.RSAC2023人工智能安全议题重点探讨了人工 ...

  10. 你是怎么学习 Java 技术的?

    一.Java 语言 Java 语言不只是一门语言. Java 学习不是一蹴而就就可以达成的,它是一个循序渐进,由浅入深,由表及里的过程.尤其需要注意的是不能有浅尝辄耻,不求甚解的态度.每个地方只抓一点 ...