Zabbix 高可用

实验环境

主机名IP软件包
zabbix-mysql192.168.1.250MySQL
zabbix-server01192.168.1.251zabbix-server-mysql、zabbix-web-mysql、keepalived
zabbix-server02192.168.1.252zabbix-server-mysql、zabbix-web-mysql、keepalived
zabbix-agent192.168.1.253zabbix-agent
VIP192.168.1.240\

zabbix-mysql 配置

这里省略安装MySQL的步骤

创建 zabbix 库和用户,并授权

mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@"192.168.1.%" identified by '123qqq...A';

导入 zabbix-server 的初始化数据

PS:create.sql.gz 是从 zabbix-server01 上传过来的

[root@zabbix-mysql ~]# zcat /tmp/create.sql.gz | mysql -uzabbix -p -h 192.168.1.250 zabbix

zabbix-server01 配置

PS:zabbix-server02 的配置也相同

安装 zabbix 源(清华源)

[root@zabbix-server01 ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

[root@zabbix-server01 ~]# sed -i 's#http://repo.zabbix.com#https://mirrors.tuna.tsinghua.edu.cn/zabbix#g' /etc/yum.repos.d/zabbix.repo
[root@zabbix-server01 ~]# sed -i 's#gpgcheck=1#gpgcheck=0#g' /etc/yum.repos.d/zabbix.repo

安装 zabbix-server 和 zabbix-web

[root@zabbix-server01 ~]# yum -y install zabbix-server-mysql zabbix-web-mysql

配置 zabbix-server

修改 zabbix-server 配置文件

[root@zabbix-server01 ~]# vim /etc/zabbix/zabbix_server.conf
#主要修改下面的配置
DBHost=192.168.1.250
DBName=zabbix
DBUser=zabbix
DBPassword=123qqq...A
DBPort=3306
SourceIP=192.168.1.240   #配置zabbix高可用的时候,zabbix-server端的SourceIP需要配置为VIP
                          #+ 不然在zabbix-agent配置server为VIP时,会报如下错误

将 zabbix-server 初始化数据传到 zabbix-mysql

查找 zabbix-server 初始化数据文件位置

[root@zabbix-server01 ~]# rpm -ql zabbix-server-mysql
...
/usr/share/doc/zabbix-server-mysql-4.0.29/create.sql.gz
...

传输 zabbix-server 初始化数据文件至 zabbix-mysql

[root@zabbix-server01 ~]# scp /usr/share/doc/zabbix-server-mysql-4.0.29/create.sql.gz 192.168.1.250:/tmp

启动 zabbix-server

当 zabbix-server 的初始化数据导入数据库之后启动。

[root@zabbix-server01 ~]# systemctl start zabbix-server && systemctl enable zabbix-server

配置 zabbix-web

修改 zabbix-web 配置文件

[root@zabbix-server01 ~]# vim /etc/httpd/conf.d/zabbix.conf
#修改时区
php_value date.timezone Asia/Shanghai

启动 zabbix-web

[root@zabbix-server01 ~]# systemctl start httpd && systemctl enable httpd

通过 web 页面配置

URL为:http://IP/zabbix

这里省略 web 页面配置截图

配置 zabbix-agent

安装 zabbix-agent

[root@zabbix-server01 ~]# yum -y install zabbix-agent

修改 zabbix-agent 配置文件

[root@zabbix-server01 ~]# vim /etc/zabbix/zabbix_agentd.conf
#主要修改server为VIP,因为zabbix-server的SourceIP配置为VIP
Server=192.168.1.240

启动 zabbix-agent

[root@zabbix-server01 ~]# systemctl start zabbix-agent && systemctl enable zabbix-agent

keepalived 配置

安装 keepalived

zabbix-server01和zabbix-server02都安装

yum -y install keepalived

zabbix-server01 的 keepalived.conf

! Configuration File for keepalived

global_defs {   
   router_id zabbix-server01   #同一集群内路由ID唯一
}

vrrp_instance zabbix-server {   #同一集群内,实例名需要相同
    state BACKUP
    interface eth0
    virtual_router_id 51       #同一集群内,虚拟路由ID需要相同,不然就是两个集群了
    priority 100               #同一集群内,优先级最好不要相同(值越大优先级越高)
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass zabbix
    }
    virtual_ipaddress {
        192.168.1.240
    }
    notify_master "systemctl restart zabbix-server"
    notify_backup "systemctl stop zabbix-server"
    notify_stop "systemctl stop zabbix-server"
}

PS:正常情况下使用 keepalived ,备用服务器都是一直处于运行的状态下;当主服务器发生故障时,备用服务器立马接替工作,正常提供服务。但是,zabbix 的高可用架构中,主和备不能同时运行,因为备用的 zabbix-server 收不到数据的时候会发生报错。所以需要在主备切换时启动或关闭zabbix-server服务。

zabbix-server02的keepalived.conf

! Configuration File for keepalived

global_defs {   
   router_id zabbix-server02   #同一集群内路由ID唯一
}

vrrp_instance zabbix-server {   #同一集群内,实例名需要相同
    state BACKUP
    interface eth0
    virtual_router_id 51       #同一集群内,虚拟路由ID需要相同,不然就是两个集群了
    priority 93               #同一集群内,优先级最好不要相同(值越大优先级越高)
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass zabbix
    }
    virtual_ipaddress {
        192.168.1.240
    }
    notify_master "systemctl restart zabbix-server"
    notify_backup "systemctl stop zabbix-server"
    notify_stop "systemctl stop zabbix-server"
}

启动 keepalived

systemctl start keepalived && systemctl enable keepalived

测试 keepalived 配置是否正常

这里省略测试步骤,只提供一个测试方法

  1. 当 zabbix-server01 和 zabbix-server02 的 keepalived
    都启动之后,VIP(192.168.1.240)应该在 zabbix-server01 上。
  2. 使用 VIP 访问 zabbix web 页面,看是否正常。
  3. 关闭 zabbix-server01 上的 keepalived,VIP(192.168.1.240)应该跳至
    zabbix-server02 上。
  4. 再次使用 VIP 访问 zabbix web 页面,看是否正常。
  5. 开启 zabbix-server01 上的 keepalived,VIP(192.168.1.240)应该跳回至
    zabbix-server01 上。
  6. 再次使用 VIP 访问 zabbix web 页面,看是否正常。

zabbix-agent 配置

拷贝 zabbix-server01 上的 zabbix 源

root@zabbix-agent ~]# scp 192.168.1.251:/etc/yum.repos.d/zabbix.repo /etc/yum.repos.d/

安装 zabbix-agent

[root@zabbix-agent ~]# yum -y install zabbix-agent

配置 zabbix-agent

[root@zabbix-agent ~]# vim /etc/zabbix/zabbix_agentd.conf
#主要修改以下配置
Server=192.168.1.240
ServerActive=192.168.1.240
Hostname=192.168.1.253

启动 zabbix-agent

[root@zabbix-agent ~]# systemctl start zabbix-agent && systemctl enable zabbix-agent

添加监控主机

PS:访问 zabbix-web 使用 VIP 访问

这里省略添加主机的截图

最后使用上面测试 keepalived 的方法再次测试,看 zabbix 是否正常。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值