文章目录
- Zabbix介绍
- Zabbix架构
- Zabbix server
- Zabbix agent
- Zabbix proxy
- Zabbix Server的安装
- Zabbix Agent的安装
- 监控主机流程
- zabbix_get
- 自定义模板和监控项
- 实战用户登录数监控
- 1.指定监控项命令
- 2.重启Agent服务
- 3.在Server上创建监控项
- 4.测试监控项
- 5.查看监控项图形
- 故障自愈
- 实现故障自愈的步骤
- 1.Agent开启远程命令功能
- 2.授权zabbix用户管理权限
- 3.创建触发器动作
- Zabbix主动与被动模式
- 被动模式
- 主动模式
- 主动模式实现步骤
- 1.Agent端修改zabbix_agent2.conf配置
- 2.Server端修改主动式监控项
- 监控Java程序
- 开启JMX监控
- 部署Java gateway
- zabbix_server.conf指定Java gateway
- 在zabbix server中指定java服务的ip和端口
- Zabbix分布式实现Proxy
- Zabbix Server 和 Zabbix Proxy区别
- 在Zabbix Server上添加代理Proxies
- 配置主动模式的proxy
- 1.修改zabbix_proxy.conf
- 2.修改Agent为主动模式的Zabbix Proxy
- 配置被动模式的proxy
- 1.修改zabbix_proxy.conf
- 2.修改Agent为被动模式的Zabbix Proxy
- Zabbix自动注册
- 1.修改Zabbix agent配置
- 2.在Zabbix Server上配置动作
- Zabbix优化
- Zabbix高可用
Zabbix介绍
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。功能强大,成熟可靠,使用者众多。
官方网站: https://www.zabbix.com/
为什么需要监控
现在摄像头遍布大街小巷,包括汽车上的行车记录仪,当发生了什么事故时你可能第一直觉就是“调监控”来了解事故的前因后果。监控面前事实胜于雄辩!
在运维行业也是“无监控,不运维”,监控俗称“第三只眼”。没有监控,什么基础运维,业务运维都是“瞎子”,你不能实时掌握服务器的各种资源和你搭建的服务的各种使用数据指标。没有数据监控你就可能成为背锅侠。
监控功能
1.在需要的时刻,提前预警即将出现的问题,避免故障发生;
2.实时监控系统和业务,当出问题之后,通过发出告警,提醒相关人员,快速找到问题的根源从而及时处理问题;
3.可以实现网站,应用或者服务器的故障自愈,保证高可用性;
4.以图形或易于观察的方式呈现当前以及过往的状态,便于分析和预测系统发展趋势。
监控什么
硬件监控:
通过远程控制卡: DeLL的iDRAC,HP的ILO和IBM的IMM等
使用IPMI来完成物理设备的监控工作。通常必须要监控包括温度、硬盘故障等
路由器,交换机(端口,光衰,日志),打印机等
系统监控:
cpu,内存,硬盘使用率,硬盘IO,系统负载,进程数
服务监控:
nginx, apache, php-fpm, mysql, memcache, redis, tomcat, JVM, TCP连接数等
性能监控:
网站性能,服务器性能,数据库性能,存储性能
日志监控:
系统会产生系统日志,应用程序会有应用的访问日志、错误日志,服务有运行日志等,
可以使用ELK来进行日志监控
安全监控:
用户登录数,passwd文件变化,本地所有文件改动
Nginx+Lua编写一个WAF通过kibana可以图形化的展示不同的攻击类型的统计。
网络监控:
IP端口,URL,DB,ping包,IDC带宽网络流量,网络流出流出速率,网络入流量,网络出
流量.网络使用率,SMTP.POP3
Zabbix架构
zabbix中文使用手册:https://www.zabbix.com/documentation/6.0/zh/manual
Zabbix server
Zabbix server 是整个 Zabbix 软件的核心程序。
Zabbix Server负责执行数据的主动轮询和被动获取,计算触发器条件,向用户发送通知。它是Zabbix Agent 和 Proxy 报告系统可用性和完整性数据的核心组件。Server自身可以通过简单服务远程检查网络服务(如Web服务器和邮件服务器)。
Zabbix Server是所有配置、统计和操作数据的中央存储中心,也是Zabbix监控系统的告警中心。在监控的系统中出现任何异常,将发出通知给管理员。
基本的 Zabbix Server 的功能分解成为三个不同的组件。他们是:Zabbix server、Web前端和数据库。
Zabbix agent
Zabbix agent 部署在被监控目标上,以主动监控本地资源和应用程序(硬盘、内存、处理器统计信息等)。
Zabbix agent 收集本地的操作信息并将数据报告给 Zabbix server 用于进一步处理。一旦出现异常 (例如硬盘空间已满或者有崩溃的服务进程),Zabbix server 会主动警告管理员指定机器上的异常。
Zabbix agents 的极高效率缘于它可以利用本地系统调用来完成统计数据的采集。
Zabbix proxy
zabbix作为一个分布式监控系统(分布式监控解决方案),支持通过代理(proxy)收集zabbix agent的监控数据,然后由zabbix proxy再把数据发送给zabbix server,也就是zabbix proxy可以代替zabbix server收集监控数据,然后把数据汇报给zabbix server,所以zabbix proxy可以在一定程度上分担了zabbixserver的数据收集压力,从而降低了数据的采集时间、也相应的增加了zabbix server的监控能力。
部署Zabbix proxy 是可选的,但可能非常有利于分担单个 Zabbix server 的负载。 如果由代理采集数据,则 Zabbix server 上会减少 CPU 和磁盘 I/O 的开销。
Zabbix proxy 是无需本地管理员即可集中监控远程位置、分支机构和网络的理想解决方案。
Zabbix proxy 需要使用独立的数据库。
Zabbix Server的安装
ZabbixLTS(长期支持)版本没有任何额外的或隐藏的消费成本。Zabbix是一个100%开源软件,每个人都可以下载使用。
Zabbix LTS特点:
1.支持期限更长,例如:为潜在的安全问题及bug迭代更新
2.令人期待的高质量更新以及全新的功能点
3.快速更新,可适用于多变的复杂环境
4.在版本升级方面,更容易规划管理
官方安装帮助文档:https://www.zabbix.com/download
安装脚本
#!/bin/bash
#
#********************************************************************
#Author: wangxiaochun
#Date: 2022-06-22
#FileName: install_zabbix5.0_for_ubuntu20.04.sh
#URL: http://www.wangxiaochun.com
#Description: The test script
#Copyright (C): 2022 All rights reserved
#********************************************************************
wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
dpkg -i zabbix-release_5.0-1+focal_all.deb
sed -i.bak 's#http://repo.zabbix.com#https://mirror.tuna.tsinghua.edu.cn/zabbix#' /etc/apt/sources.list.d/zabbix.list
apt update
apt -y install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-agent2
apt -y install mysql-server
cat << EOF | mysql
create database zabbix character set utf8 collate utf8_bin;
create user zabbix@localhost identified by '123456';
grant all privileges on zabbix.* to zabbix@localhost;
EOF
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p123456 zabbix
sed -i.bak '/# DBPassword/a DBPassword=123456' /etc/zabbix/zabbix_server.conf
sed -i.bak '/^server/a\ listen 80;\n server_name zabbix.lei.org;' /etc/zabbix/nginx.conf
sed -i.bak '/date.timezone/c php_value[date.timezone] = Asia/Shanghai' /etc/zabbix/php-fpm.conf
systemctl disable --now apache2
systemctl restart zabbix-server zabbix-agent2 nginx php7.4-fpm
systemctl enable zabbix-server
安装完成后直接使用脚本里的域名打开zabbix
zabbix首页
登录时遇到了问题,就是我windows的ip被拒绝访问我ubuntu192.168.10.148的zabbix的mysql,于是我设置了允许了mysql的用户和ip
update user set host = '%' where user = 'root';
update user set host = '%' where user = 'zabbix';
#将数据库里面的“user”表里面“host”的“localhost”改为“%”。“%”是允许所有远程都允许远程连接连接,
授权法:将zabbix用户权限改为:ALL PRIVILEGES,前面的是用户名,后面的是密码。
GRANT ALL PRIVILEGES ON . TO ‘zabbix’@‘%’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'zabbix'@'%' WITH GRANT OPTION;
Query OK, 0 rows affected (0.01 sec)
mysql> FLUSH PRIVILEGES; #刷新权限
Query OK, 0 rows affected (0.00 sec)
Zabbix Agent的安装
Zabbix Agent需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web 访问数据库在前端进行展现和绘图。
Zabbix Agent安装脚本
#!/bin/bash
#
#********************************************************************
#Author: wangxiaochun
#Date: 2021-01-06
#FileName: install_zabbix_agent2_5.0.sh
#URL: http://www.wangxiaochun.com
#Description: The test script
#Copyright (C): 2021 All rights reserved
#********************************************************************
ZABBIX_SERVER=zabbix.lei.org
ZABBIX_VER=5.0
URL="https://mirror.tuna.tsinghua.edu.cn/zabbix"
. /etc/os-release
color () {
RES_COL=60
MOVE_TO_COL="echo -en \\033[${RES_COL}G"
SETCOLOR_SUCCESS="echo -en \\033[1;32m"
SETCOLOR_FAILURE="echo -en \\033[1;31m"
SETCOLOR_WARNING="echo -en \\033[1;33m"
SETCOLOR_NORMAL="echo -en \E[0m"
echo -n "$1" && $MOVE_TO_COL
echo -n "["
if [ $2 = "success" -o $2 = "0" ] ;then
${SETCOLOR_SUCCESS}
echo -n $" OK "
elif [ $2 = "failure" -o $2 = "1" ] ;then
${SETCOLOR_FAILURE}
echo -n $"FAILED"
else
${SETCOLOR_WARNING}
echo -n $"WARNING"
fi
${SETCOLOR_NORMAL}
echo -n "]"
echo
}
install_zabbix_agent2() {
if [ $ID = "centos" -o $ID = "rocky" ];then
VERSION_ID=`echo $VERSION_ID|awk -F. '{print $1}'`
rpm -Uvh $URL/zabbix/${ZABBIX_VER}/rhel/${VERSION_ID}/x86_64/zabbix-release-${ZABBIX_VER}-1.el${VERSION_ID}.noarch.rpm
if [ $? -eq 0 ];then
color "YUM仓库准备完成" 0
else
color "YUM仓库配置失败,退出" 1
exit
fi
sed -i 's#repo.zabbix.com#mirror.tuna.tsinghua.edu.cn/zabbix#' /etc/yum.repos.d/zabbix.repo
yum -y install zabbix-agent2
else
wget $URL/zabbix/${ZABBIX_VER}/ubuntu/pool/main/z/zabbix-release/zabbix-release_${ZABBIX_VER}-1+bionic_all.deb
if [ $? -eq 0 ];then
color "APT仓库准备完成" 0
else
color "APT仓库配置失败,退出" 1
exit
fi
dpkg -i zabbix-release_${ZABBIX_VER}-1+bionic_all.deb
sed -i 's#repo.zabbix.com#mirror.tuna.tsinghua.edu.cn/zabbix#' /etc/apt/sources.list.d/zabbix.list
apt update
apt -y install zabbix-agent2
fi
}
config_zabbix_agent2 (){
sed -i -e "/^Server=127.0.0.1/c Server=$ZABBIX_SERVER" -e "/^Hostname=Zabbix server/c Hostname=`hostname -I`" /etc/zabbix/zabbix_agent2.conf
}
start_zabbix_agent2 () {
systemctl enable zabbix-agent2.service
systemctl restart zabbix-agent2.service
systemctl is-active zabbix-agent2.service
if [ $? -eq 0 ];then
echo "-------------------------------------------------------------------"
color "Zabbix Agent 安装完成!" 0
else
color "Zabbix Agent 安装失败" 1
exit
fi
}
install_zabbix_agent2
config_zabbix_agent2
start_zabbix_agent2
执行以上脚本可完成安装
将zabbix agent纳入zabbix server的管理中,在server页面中"创建主机"
初学就先使用agent的监控模板
监控主机流程
1 安装agent,指定Zabbix Server地址;
2 在Zabbix Server 添加被监控的主机;
3 修改内置的模板,为了实验环境更快地采集数据,将模板中所有监控项的时间间隔修改为10s;
4 在被监控的主机关联模板(内置了很多的监控项)
Template OS Linux by Zabbix agent --适合Linux
Template OS Windows by Zabbix agent --适合windows
5 Web 查看数据和图形
zabbix_get
利用zabbix_get工具可以测试Zabbix Agent是否正常
zabbix_get需要安装
zabbix_get -s 192.168.10.152 -k agent.ping
自定义模板和监控项
自定义监控项流程:
1.在Agent上创建监控项名称
2.在Agent的配置文件中指定获取监控项的命令
3.在Server上创建自定义的监控项
4.在Server上关联到被监控的Agent主机上
创建自定义监控项后可将自定义监控项创建模板
1.在Server上创建模板
2.将自定义的监控项加入至模板
3.将模板关联至被监控主机
vim /etc/zabbix/zabbix_agent2.conf
实战用户登录数监控
自定义一个获取xshell用户登录数的监控项
1.指定监控项命令
在agent上的/etc/zabbix/zabbix_agent2.d下创建user_login_count.conf文件
UserParameter=user.login.count,who|wc -l
2.重启Agent服务
agent配置完自定义监控项后需要重启agent服务,否则server识别不了agent的自定义监控项
3.在Server上创建监控项
4.测试监控项
5.查看监控项图形
故障自愈
当zabbix服务监控到指定的监控项异常时,可以通过指定的操作使故障自动恢复
我有一个监听80端口的触发器,当80端口down掉之后,就触发报警
我停掉了152的nginx服务,此时就触发了报警机制
我还开启了报警器,一旦报警就有一段刺耳的铃声
实现故障自愈的步骤
以nginx服务为例,当nginx服务停止时,自动重启服务,实现故障自愈功能
1.Agent开启远程命令功能
2.授权zabbix用户管理权限
3.创建触发器动作
添加动作的操作
故障已经自愈了
Zabbix主动与被动模式
Zabbix有两种工作模式:主动和被动模式
无论是模式还是被动模式,都是站在zabbix agent角度来说的工作模式
主动和被动模式
1.被动模式: Server向Agent请求获取监控项的数据,Agent返回数据。
此为默认模式,如果有100个监控项,则需要100次交互
2.主动模式:Agent请求Server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy,
如有100个监控项,只需要1次交互即可
被动模式
被动模式是指zabbix agent被动的接受zabbix server(或者Zabbix Proxy)周期性发送过来的数据收集指令
被动模式工作形式
1.zabbix server发送什么指令那么zabbix agent就收集什么数据,
2.zabbix server什么时候发送指令,zabbix agent就什么时候采集,
3.zabbix server不发送指令,zabbix agent就一直不响应,所以zabbixagent也不用关心其监控项和数据采集周期间隔时间。
被动模式优点
1.被动模式的优点就是配置简单,安装后即可使用,因此也成为zabbix的默认工作模式,
被动模式缺点
1.被动模式的最大问题就是会加大zabbix server的负载,在数百甚至数千台服务器的环境下会导致zabbix server需要轮训向每个zabbix agent发送数据采集指令,
2.如果zabbix server负载过高还会导致不能及时获取到最新数据
3.被动模式因为性能的原因,一台Zabbix Server一般只能监控500台以下的主机,更多的主机建议使用主动模式
主动模式
主动模式是由每个zabbix agent打开本机的随机端口,主动向Zabbix Server (或者Zabbix Proxy)的10051端口发起tcp连接请求。
主动模式工作形式
1.主动模式下必须在zabbix agent配置文件中指定zabbix server的IP或者主机名(必须可以被解析为IP地址),
2.在连接到zabbix server之前zabbix agent是不知道自己要采集那些数据以及间隔多久采集一次数据的,
3.在连接到zabbix server以后获取到自己的监控项和数据采集间隔周期时间,然后再根据监控项采集数据并返回给zabbix server
主动模式的优点
主动模式下不再需要zabbix serve向zabbix agent发起连接请求,因此主动模式在一定程度上可减轻zabbix server打开的本地随机端口和进程数,
在一定程度就减轻了zabbix server的压力。经过优化后可以轻松监控2000台,甚至5000以上的主机
以下场景下生产推荐使用主动模式
1.Zabbix Server 出现性能瓶颈,监控队列出现大量延迟的监控项,告警不及时·
2.监控主机超过500台以上
主动模式实现步骤
1.Agent端修改zabbix_agent2.conf配置
zabbix Agent默认是被动模式,需要修改zabbix_agent2.conf配置才能支持主动模式,配置由一下三项
server=<zabbix server> #被动模式指向zabbix server的IP或FQDN ,默认模式
serverActive=<zabbix server> #主动模式指向zabbix server的IP或FQDN
Hostname=<当前主机IP> #当前主机的IP,此项必须和zabbix server中设置的主机名称相同
将ServerActive的127.0.0.1改为我的server服务器的地址192.168.10.148
2.Server端修改主动式监控项
2.1添加主机,名称=Hostname和客户端相同
2.2关联模板,包括的监控项是主动模式
监控Java程序
开启JMX监控
在tomcat的catalina.sh脚本中添加如下配置
CATALINA_OPTS="$CATALINA__OPTS
-Dcom.sun.management.jmxremote #启用远程监控JMX
-Djava.rmi.server.hostname=<JAVA主机IP> #是tomcat主机的IP地址,不是zabbix服务器地址
-Dcom.sun.management.jmxremote.port=xXXXX #默认启动的MX端口号
-Dcom.sun.management.jmxremote.authenticate=false #不使用用户名密码
-Dcom.sun.management.jmxremote.ssl=false" #不使用ssl认证
CATALINA_OPTS="$CATALINA__OPTS -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.10.153 -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
vim /usr/local/tomcat/bin/catalina.sh
配置完后重启tomcat,可以看到12345端口已正常放开
使用windows的jconsole连接是否成功
cmdline-jmxclient-0.10.3.jar 是一个开源jar包,在zabbix中常用于测试的个工具,可以用来测试 jmx
是否配置正确。在监控方面还可以对Tomcat各种属性进行监控。下面使用java客户端cmdline-
jmxclient进行测试
wget https://github.com/qiueer/zabbix/blob/master/Tomcat/cmdline-jmxclient-0.10.3.jar
获取堆内存状况
java -jar cmdline-jmxclient-0.10.3.jar - 192.168.10.153:12345 java.lang:type=Memory NonHeapMemoryUsage
部署Java gateway
apt install zabbix-java-gateway
zabbix_server.conf指定Java gateway
vim zabbix_server.conf
JavaGateway=127.0.0.1
StartJavaPollers=1
在zabbix server中指定java服务的ip和端口
配置主机192.168.10.153:12345
配置主机的监控模板
Template App Generic Java JMX模板监控项
Template App Appache Tomcat JMX模板监控项
配置完后着急看数据的话可以重启服务,此时我们可以看到153主机JMX的可用性已经绿了。
JMX监控数据
Zabbix分布式实现Proxy
官方帮助手册: https://www.zabbix.com/documentation/5.0/zh/manual/distributed_monitoring
Zabbix proxy 使用场景:
1.监控远程区域设备,尤其是多机房和多个云环境时监控网络不稳定区域,避免跨网段监控的告警不及时
2.当需要监控设备众多时,使用它来减轻Zabbix Server的压力
3.简化分布式监控的维护,无需各位创建Zabbix Server,统一管理策略
Zabbix Server 和 Zabbix Proxy区别
Zabbix proxy功能
1.Zabbix proxy数据库必须和server数据库分开,否则Zabbix server数据库会被破坏。
2.zabbix proxy是一个数据收集器,它不计算触发器、不处理事件、不发送报警。
在Zabbix Server上添加代理Proxies
Zabbix Proxy安装完成后,需要Zabbix Server的上配置Proxies
配置主动模式的proxy
1.修改zabbix_proxy.conf
[root@zabbix-proxy-active ~]#grep '^[^#]'/etc/zabbix/zabbix_proxy.conf
ProxyMode=O #主动模式为0,被动模式为1,默认为0即主动模式
server=10.0.0.100 #指向zabbix server
Hostname=zabbix-proxy-active #此名称必须和后面web管理页的agent代理程序名称相同
DBHost=localhost #MySQL服务器地址
DBName=zabbix_proxy_active #MysQL数据库名
DBUser=proxy #连接MySQL的用户
DBPassword=123456 #连接MySQL的用户密码
2.修改Agent为主动模式的Zabbix Proxy
[root@centos8 ~]#grep '^[^#]’/apps/zabbix_agent/etc/zabbix_agent2.conf
server=10.0.0.100,10.0.0.101 #指向zabbix server(可选)和zabbix Proxy(必选)
serverActive=10.0.0.101 #指向zabbix Proxy
配置被动模式的proxy
1.修改zabbix_proxy.conf
[root@zabbix-proxy-passive ~]#grep '^[^#]'/apps/zabbix_proxy/etc/zabbix_proxy.conf
ProxyMode=1 #被动模式为1
server=10.0.0.100 #指向zabbix server的地址
Hostname=zabbix-proxy-passvie-magedu
LogFi1e=/tmp/zabbix_proxy. 1og
DBHost=loca1host #指定MySQL的地址
DBName=zabbix_proxy_passive #指定MySQL数据库名称
DBUser=proxy #指定MysQL的用户
DBPassword=123456 #指定MysQL的用户密码
2.修改Agent为被动模式的Zabbix Proxy
[root@centos8 ~]#grep '^[^#]' /etc/zabbix/zabbix_agent2.conf
server=10.0.0.100,10.0.0.102 #必须指向Proxy代理地址,否则proxy无法监控,zabbix server地址则是可选项
#ServerActive=10.0.0.100 #注释此行
Hostname=10.0.0.104
Timeout=30
Zabbix自动注册
之前都是手动将主机一台一台的添加到Zabbix中进行监控,很是繁琐,可以利用自动发现和自动注册功能,自动添加被监控的主机。
利用Zabbix的自动注册功能,实现添加主机的自动化,可以大幅减少运维的工作量,减少Zabbix Server的资源消耗
此方式和自动发现不同,是由Active agent主动发起请求zabbix server将这些agent加到主机里。
注意:Agent必须使用主动模式才支持自动注册
自动注册由于比自动发现效率更好,Zabbix Server资源消耗更少,更适合大规模及云环境IP地址不固定的场景使用
1.修改Zabbix agent配置
[root@centos8 ~]#vim /etc/zabbix /zabbix_agentd.conf
server=zabbix.wang.org
serverActive=zabbix.wang.org
Hostname=web-10.0.0.18 #指定主机名,如果不指定,则服务器将使用agent的系统主机名#HostnameItem=system.hostname #指定主机名
HostMetadata=123456 #HostMetadataItem=system.uname
2.在Zabbix Server上配置动作
配置自动注册动作
创建动作
添加主机链接模板
Zabbix优化
如果主机和监控项众多,Zabbix Server有可能会出现的性能问题,主要表现如下:
1.Web操作很卡,容易出现502错误
2.监控图形中图层断裂
3.监控告警不及时
可以查看队列了解Zabbix性能状态管理–队列
优化方法
1.数据库:写多读少,数据采集比较频繁,可以考虑PostgreSQL;
2.使用主动模式,减轻Zabbix Server压力;
3.如果需要监控远程主机,使用Zabbix Proxy删除无用监控项,建议使用自定义的模板和监控项;
4.适当增加监控项的取值间隔,减少历史数据保存周期,此工作由housekeeper进程定时清理
5.针对zabbix历史数据和趋势图的数据表,进行周期性分表保存
6.对Zabbix Server进程调优,发现性能瓶颈的进程,加大它的进程数量
7.对Zabbix Server缓存调优,发现哪种缓存的剩余内存少,就加大它的缓存值
Zabbix高可用
在前面的部署架构中,Zabbix Server和MySQL都有只有一台主机,存在单点问题可以使用Keepalived 实现Zabbix Server的高可用
基础架构为LAMP或LNMP环境,采用keepalived实现zabbix服务器高可用,保证主服务器或者Httpd宕掉后能切换到从服务器
MySQL数据库做主主同步,保证两边服务器数据的一致性,实现数据库的高可用。
官方Zabbix6.0给出了高可用解决方案
https://www.zabbix.com/documentation/6.0/zh/manual/concepts/server/ha#implementa