OpenEuler高可用部署zabbix7.2

 OpenEuler高可用部署:Keepalived + Zabbix 主备架构

一、架构概述

VIP: 192.168.1.100

(Zabbix Web访问地址和Server API地址)

主机 (Active)

IP: 192.168.1.10

Keepalived MASTER

Zabbix Server

Zabbix Web

MariaDB Master

备机 (Backup)

IP: 192.168.1.11

Keepalived BACKUP

Zabbix Server

Zabbix Web

MariaDB Slave

二、前提条件

1.两台服务器:主机 (192.168.1.10) 和 备机 (192.168.1.11)

2.共享虚拟IP (VIP):192.168.1.100

3.确保两台服务器时间同步 (使用NTP)

4.相同的操作系统环境


*各组件部署方案参考:超详细 | 如何在OpenEuler系统下安装Zabbix 7.2?

三、部署步骤

步骤1:数据库主从复制 (MariaDB/MySQL)

在主机上 (192.168.1.10):

Bash# 编辑MariaDB配置文件
sudo vi /etc/my.cnf.d/server.cnf
# 添加以下内容: [mysqld] server-id=1 log-bin=mysql-bin binlog-format=ROW binlog-do-db=zabbix

在备机上 (192.168.1.11):

Bash# 编辑MariaDB配置文件
sudo vi /etc/my.cnf.d/server.cnf
# 添加以下内容:
[mysqld]
server-id=2
relay-log=mysql-relay-bin
read-only=1
replicate-do-db=zabbix
在主机上创建复制用户: SQLCREATE USER 'replica'@'192.168.1.11' IDENTIFIED BY 'StrongPassword123!'; GRANT REPLICATION SLAVE ON *.* TO 'replica'@'192.168.1.11'; FLUSH PRIVILEGES;

在备机上配置主从复制:

SQLCHANGE MASTER TO
MASTER_HOST='192.168.1.10',
MASTER_USER='replica',
MASTER_PASSWORD='StrongPassword123!',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=XXX; -- 从主机执行 SHOW MASTER STATUS; 获取具体值
START SLAVE;

步骤2:在两台服务器上安装Zabbix

Zabbix服务端安装(二选一方案)

方案A:源码编译安装(推荐)

Bash# 安装依赖
dnf install gcc make libevent-devel openssl-devel pcre-devel mysql-devel -y
# 下载源码
wget https://cdn.zabbix.com/zabbix/sources/stable/7.2/zabbix-7.2.0.tar.gz
tar -zxvf zabbix-7.2.0.tar.gz
cd zabbix-7.2.0
# 编译安装
./configure \
  --prefix=/app/zabbix \
  --enable-server \
  --enable-agent \
  --with-mysql
make -j$(nproc)
make install
# 创建系统用户
groupadd --system zabbix
useradd --system -g zabbix -d /app/zabbix -s /sbin/nologin zabbix

方案B:RPM仓库安装

Bash# 添加Zabbix官方仓库
rpm -Uvh https://repo.zabbix.com/zabbix/7.2/release/centos/9/noarch/zabbix-release-latest-7.2.el9.noarch.rpm
# 安装核心组件
dnf install zabbix-server-mysql zabbix-web-mysql zabbix-agent -y

步骤3:配置Zabbix

在主机上配置Zabbix数据库连接:

Bashsudo vi /etc/zabbix/zabbix_server.conf
# 修改以下参数:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=YourZabbixDBPassword

在备机上配置Zabbix数据库连接:

Bashsudo vi /etc/zabbix/zabbix_server.conf
# 修改以下参数:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=YourZabbixDBPassword
# 添加以下参数禁用数据收集(备机只做热备)
StartPollers=0
StartPollersUnreachable=0
StartPingers=0

Web前端配置(两台服务器相同):

Bashsudo vi /etc/zabbix/web/zabbix.conf.php
<?php
$DB['TYPE']     = 'MYSQL';
$DB['SERVER']   = 'localhost';
$DB['PORT']     = '0';
$DB['DATABASE'] = 'zabbix';
$DB['USER']     = 'zabbix';
$DB['PASSWORD'] = 'YourZabbixDBPassword';
$ZBX_SERVER      = '192.168.1.100'; // 使用虚拟IP
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = 'Zabbix HA Cluster';

步骤4:安装和配置Keepalived

在两台服务器上安装Keepalived:

Bashsudo dnf install keepalived -y
在主机上 (192.168.1.10) 配置Keepalived:
Bashsudo vi /etc/keepalived/keepalived.conf
vrrp_script chk_zabbix {
    script "/usr/bin/pgrep zabbix_server"
    interval 2
    weight 50
}
vrrp_script chk_httpd {
    script "/usr/bin/pgrep httpd"
    interval 2
    weight 50
}
vrrp_instance VI_1 {
    state MASTER
    interface ens33  # 使用实际网卡名
    virtual_router_id 51
    priority 200      # 主机优先级更高
    authentication {
        auth_type PASS
        auth_pass kylin123
    }
    virtual_ipaddress {
        192.168.1.100/24 dev ens33  # VIP配置
    }
    track_script {
        chk_zabbix
        chk_httpd
    }
    notify_master "/etc/keepalived/master.sh"
    notify_backup "/etc/keepalived/backup.sh"
    notify_fault "/etc/keepalived/fault.sh"
}

在备机上 (192.168.1.11) 配置Keepalived:

Bashsudo vi /etc/keepalived/keepalived.conf
vrrp_script chk_zabbix {
    script "/usr/bin/pgrep zabbix_server"
    interval 2
    weight 50
}
vrrp_script chk_httpd {
    script "/usr/bin/pgrep httpd"
    interval 2
    weight 50
}
vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 100      # 备机优先级较低
    authentication {
        auth_type PASS
        auth_pass kylin123
    }
    virtual_ipaddress {
        192.168.1.100/24 dev ens33
    }
    track_script {
        chk_zabbix
        chk_httpd
    }
    notify_master "/etc/keepalived/master.sh"
    notify_backup "/etc/keepalived/backup.sh"
    notify_fault "/etc/keepalived/fault.sh"
}

创建状态切换脚本(两台服务器相同):

Bashsudo mkdir /etc/keepalived/scripts
sudo vi /etc/keepalived/master.sh
#!/bin/bash
# 当此服务器成为MASTER时执行
systemctl start zabbix-server
systemctl start httpd
systemctl start mariadb
exit 0
sudo vi /etc/keepalived/backup.sh
#!/bin/bash
# 当此服务器成为BACKUP时执行
systemctl stop zabbix-server
systemctl stop httpd
systemctl stop mariadb
exit 0
sudo vi /etc/keepalived/fault.sh
#!/bin/bash
# 当发生故障时执行
logger "Keepalived进入FAULT状态"
exit 0
# 设置脚本权限
sudo chmod +x /etc/keepalived/*.sh

步骤5:启动服务

在两台服务器上:

Bash# 启动Keepalived
sudo systemctl enable keepalived
sudo systemctl start keepalived
# 启动Zabbix服务(注意:备机上会自动停止)
sudo systemctl enable zabbix-server zabbix-agent httpd
sudo systemctl start zabbix-server zabbix-agent httpd

步骤6:验证高可用性

1.检查VIP状态:

Bash   ip addr show ens33
   # 在主机上应该看到192.168.1.100

2.模拟故障转移:

Bash   # 在主机上停止Keepalived
   sudo systemctl stop keepalived
   # 在备机上检查VIP是否转移
   ip addr show ens33
   # 检查备机上Zabbix服务是否启动
   systemctl status zabbix-server

3.访问Web界面:

    http://192.168.1.100/zabbix

4.验证数据库复制状态:

SQL   # 在备机上执行
   SHOW SLAVE STATUS\G
   # 确保Slave_IO_Running和Slave_SQL_Running都是Yes

四、故障排除

1.VIP不漂移:

–检查防火墙是否允许VRRP协议:

Bash     sudo firewall-cmd --add-protocol=vrrp --permanent
     sudo firewall-cmd --reload

•验证两台服务器是否在同一个二层网络

•检查keepalived.conf中的virtual_router_id是否一致且唯一

2.数据库复制中断:

–检查主从状态:SHOW SLAVE STATUS\G

–修复复制错误:

SQL     STOP SLAVE;
     SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
     START SLAVE;

3.Zabbix服务不自动启动/停止:

–检查脚本权限:chmod +x /etc/keepalived/*.sh

–查看Keepalived日志:journalctl -u keepalived

五、维护建议

1.定期备份:

Bash   # 备份Zabbix配置
   mysqldump -u zabbix -p zabbix > zabbix_backup_$(date +%F).sql

2.监控Keepalived集群:

–在Zabbix中添加对两台服务器和VIP的监控

–设置告警规则(VIP切换、服务状态变化)

3.升级流程:

   1. 在备机上停止Keepalived

   2. 升级备机上的Zabbix

   3. 手动切换VIP到备机

   4. 升级原主机上的Zabbix

   5. 恢复主备关系

此方案确保了Zabbix服务的高可用性,当主机故障时,VIP会自动漂移到备机,同时备机上的Zabbix服务会自动启动接管工作。数据库主从复制保证了数据的实时同步。


0 条评论

请先 登录 后评论
yzZhu0
yzZhu0

1 篇文章

作家榜 »

  1. 乐维君 483 文章
  2. YOHOHO 14 文章
  3. 细雨闲花 13 文章
  4. 机灵小和尚 13 文章
  5. 我是一只小菜鸡 12 文章
  6. 。。。 9 文章
  7. 御前侍卫张五哥 9 文章
  8. 小黄人 8 文章