首页 > 其他分享 >docker部署zabbix 6.0高可用集群实验

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

时间:2023-07-22 12:34:29浏览次数:43  
标签:-- server pgsql zabbix 6.0 docker SERVER ZBX

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

标签:--,server,pgsql,zabbix,6.0,docker,SERVER,ZBX
From: https://www.cnblogs.com/virtualzzf/p/17573170.html

相关文章

  • win11安装docker及应用
    一、win11安装docker在docker官网DownloadDockerDesktop|Docker下载安装。安装后启动,可能碰到图示异常://在cmd输入命令,稍等片刻即好wsl--update二、docker常用命令(在cmd中执行)//安装镜像dockerpull[镜像名称]:[镜像版本]比如安装rabbitmq3.12.2版本,命令为do......
  • 使用 Dockerfile 构建生产环境镜像
    传统部署的坑:1202年了,如果你连Docker都不知道是什么,我建议买一本书看看——或者谷歌一下,博客已经写烂了。为什么有这篇文章,是因为我在真正做容器化改造的时候,发现公司生产环境存在大量的坑:传统虚拟机部署,基本依赖克隆或者手工编译。由于人力原因,SRE历来单传,编译出来的PHP......
  • 在docker内定位占用cpu过高的java线程
    参考​​>确定进程信息判断该进程是否在Docker容器中。使用cat/proc/<pid>/cgroup查看打印内容是否包含:/docker/。原理是Docker使用了Linuxcgroups使用pstree-s<pid>查看打印的进程树是否包含docker-containe,显示信息如下:systemd(1)───docker(1101)───docke......
  • Docker学习路线9:运行容器
    要启动一个新的容器,我们使用dockerrun命令,后跟镜像名称。基本语法如下:dockerrun[选项]镜像[COMMAND][ARG...]例如,要运行官方的Nginx镜像,我们可以使用:dockerrun-d-p8080:80nginx这会启动一个新的容器,并将主机的端口8080映射到容器的端口80。列出容器要......
  • 【问题解决】docker版本v23.0后,构建Dockerfile中FROM私库镜像报错构建失败
    问题情况Docker版本在v23.0以后,只要Dockerfile中FROM的私库镜像不存在本地,就会报错:#我本地是v24.0.2版本Docker[root@localhostipd]#dockerbuild.-tharbor.xxx.com.cn/test/bap:2.7.1[+]Building0.6s(3/3)FINISHED......
  • Docker 入门
    Docker入门教程0x01概述用于构建、运行、传送应用程序的平台将操作系统、运行时环境、第三方软件库和依赖包、应用程序、环境变量、配置文件、启动命令一起打包特点应用隔离环境配置安装部署持续集成持续发布DevOps0x02基本原理和概念镜像(images):一个只......
  • linux查看docker的ip
    Linux查看Docker的IP作为一名经验丰富的开发者,我很乐意教会刚入行的小白如何在Linux上查看Docker的IP。在本篇文章中,我将向你展示整个流程,并提供每一步需要做的事情和相应的代码。步骤概览以下是查看Docker的IP的整个流程的步骤概览:步骤描述1列出正在运行的Docker容......
  • linux 获取 docker run 命令
    Linux获取DockerRun命令在使用Docker时,我们经常需要使用dockerrun命令来创建和运行容器。这个命令非常重要,因为它允许我们指定所需的镜像、容器的名称、端口映射等等。在本文中,我们将介绍如何在Linux系统中获取dockerrun命令,并提供示例代码以帮助您更好地理解。Linux中获取Doc......
  • linux 查看docker 容器内存
    查看Docker容器内存的流程为了查看Docker容器内存使用情况,我们可以按照以下步骤进行操作。下面是整个流程的简要概括:查看正在运行的Docker容器列表;选择你要查看的容器;进入容器的命令行界面;在容器内部使用特定的命令来查看内存使用情况。下面我们将详细介绍每一步所需......
  • docker配置文件输出helloworld
    1.在root下创建dockerfilesudo-itouchDockerfilevimDockerfile2.编写helloworld.gopakagemainimport"fmt"funcmain(){fmt.Println("Hello,World!")} 3.配置DockerfileFROMubuntu:22.04ASv1ENVMYNAME="WANGYIDI"WOR......