zabbix-server 高可用搭建

一、架构图如下

在这里插入图片描述

二、环境规划

ip地址主机名服务系统
192.168.25.249mysqlmysql8.0Rocky 10
192.168.25.248zabbix-server-slavezabbix-server+keepalive+zabbix-agent2Rocky 10
192.168.25.234zabbix-server-masterzabbix-server+keepalive+zabbix-agent2Rocky 10
192.168.25.247zabbix-agentzabbix-agent2Rocky 10

三、zabbix-server搭建

1. mysql数据安装

dnf -y install http://repo.mysql.com/mysql80-community-release-el9.rpm
dnf -y install mysql-community-server --nogpgcheck
systemctl enable mysqld --now

修改数据库root密码:

pw=$(grep 'temporary password'  /var/log/mysqld.log|awk -F'root@localhost:' '{print $2}'| tr -d " ")
mysql -uroot -p"$pw" -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'Mysql#2025';" --connect-expired-password
  • root密码:Mysql#2025

创建zabbix用户和数据库,并将zabbix数据库授权给zabbix用户:

mysql -uroot -p'Mysql#2025' -e "create database zabbix character set utf8mb4 collate utf8mb4_bin;" 
mysql -uroot -p'Mysql#2025' -e "create user zabbix@'%' identified  by 'Zabbix#2025'" 
mysql -uroot -p'Mysql#2025' -e "grant all privileges on zabbix.* to zabbix@'%';" 
mysql -uroot -p'Mysql#2025' -e "set global log_bin_trust_function_creators = 1;" 

导入mysql初始化数据库:

rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/10/x86_64/zabbix-release-latest-7.0.el10.noarch.rpm
dnf clean all
dnf -y install zabbix-sql-scripts
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p'Zabbix#2025' zabbix 
mysql -uroot -p'Mysql#2025' -e "set global log_bin_trust_function_creators = 0;" 
mysql -uroot -p'Mysql#2025' -e "FLUSH PRIVILEGES;" 

2. 安装zabbix-server

安装zabbix-server两台zabbix-server都要安装

rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/10/x86_64/zabbix-release-latest-7.0.el10.noarch.rpm
dnf clean all
dnf -y install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent2
dnf -y install zabbix-agent2-plugin-mongodb zabbix-agent2-plugin-mssql zabbix-agent2-plugin-postgresql

修改/etc/zabbix/zabbix_server.conf配置文件设置数据库信息:

DBName=zabbix
DBUser=zabbix
DBPort=3306
DBHost=192.168.25.249
DBPassword=Zabbix#2025

启动zabbix-server

systemctl start zabbix-server zabbix-agent2 nginx php-fpm
systemctl enable zabbix-server zabbix-agent2 nginx php-fpm

访问web ui配置数据库信息,两台都要:
在这里插入图片描述

3. 主备配置

修改/etc/zabbix/zabbix_server.conf文件:

zabbix-server-master:

HANodeName=zabbix-server-master
NodeAddress=192.168.25.234:10051

zabbix-server-slave

HANodeName=zabbix-server-slave
NodeAddress=192.168.25.248:10051
  • HANodeName :主机名
  • NodeAddress :zabbix server端口地址

重启zabbix-sever

systemctl restart zabbix-server

查看日志:

grep "HA manager started" /var/log/zabbix/zabbix_server.log

备节点:

HA manager started in standby mode

主节点:

HA manager started in active mode

当某个节点处理主节点时,备节点就会被停止。

四、keepalived实现高可用

1. 安装keepalived

两台都要安装

dnf -y install keepalived

2. 修改keepalived配置

192.168.25.234:

/etc/keepalived/keepalived.conf:

global_defs {
   router_id zabbix-server01    # 唯一标识符
   vrrp_skip_check_adv_addr 1
}

vrrp_script check_zabbix {
    script "/etc/keepalived/scripts/check_zabbix.sh"
    interval 3
    timeout 1

}

vrrp_instance VI_1 {
    state BACKUP                # 两台主机都设置为BACKUP,通过优先级决定谁是MASTER
    nopreempt                   # 抢占模式
    interface ens160            # 指定VIP地址所在的接口
    virtual_router_id 51                # 虚拟路由组ID,主备需要一致,确保处于同一组
    priority 100                        # 优先级
    advert_int 1                        # 发送vrrp心跳报文的间隔/s
    authentication {    # 认证,主备需要一致
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {         # VIP可以多个,地址不能重复,需要和当前DIP处于同一网段。
        192.168.25.100
    }

    track_script {
        check_zabbix
    }
}

192.168.25.248:

/etc/keepalived/keepalived.conf:

global_defs {
   router_id zabbix-server02                    # 唯一标识符
   vrrp_skip_check_adv_addr 1
}

vrrp_script check_zabbix {
    script "/etc/keepalived/scripts/check_zabbix.sh"
    interval 3
    timeout 1
}

vrrp_instance VI_1 {
    state BACKUP                # 两台主机都设置为BACKUP,通过优先级决定谁是MASTER
    interface ens160            # 指定VIP地址所在的接口
    nopreempt                   # 非抢占模式
    virtual_router_id 51                # 虚拟路由组ID,主备需要一致,确保处于同一组
    priority 99                        # 优先级
    advert_int 1                        # 发送vrrp心跳报文的间隔/s
    authentication {    # 认证,主备需要一致
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {         # VIP可以多个,地址不能重复,需要和当前DIP处于同一网段。
        192.168.25.100
    }

    track_script {
        check_zabbix
    }

}

/etc/keepalived/scripts/check_zabbix.sh:

#!/bin/bash
# Zabbix Server 存活检测脚本
ZABBIX_SERVER_PORT=10051

#检查端口是否监听
if ! ss -tuln | grep -q ":$ZABBIX_SERVER_PORT"; then
    killall keepalived
    exit 1
else
    exit 0
fi
chmod +x check_zabbix.sh

启动keepalived:

systemctl enable keepalived --now




systemctl restart zabbix-server

3. 添加agent主机

rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/10/x86_64/zabbix-release-latest-7.0.el10.noarch.rpm
dnf clean all
dnf -y install zabbix-agent2

配置:
/etc/zabbix/zabbix_agent2.conf:

Server=0.0.0.0/0
ServerActive=192.168.25.247
Hostname=zabbix-agent
systemctl enable zabbix-agent2 --now

在这里插入图片描述

4. 高可用测试

关闭zabbix 主节点:

systemctl stop zabbix-server

VIP随之会迁移到备节点

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值