24.zabbix高可用

环境准备

准备三台机器

主机名字IP地址软件环境
zabbix-server01192.168.111.70httpd+php+keepalived+sshpasszabbix server+agent
zabbix-server02192.168.111.71httpd+php+keepalived+sshpasszabbix server+agent
zabbix-agent192.168.111.80zabbix agent+mysql

VIP规划:192.168.111.72
使用sshpass免密钥交互,也可以做ssh相互免密钥登录
zabbix server的高可用,我试过在agent配置文件中,使用VIP,发现不能正常监控,于是才有本文。

我的做法agent中的配置文件,Server和ServerActive中分别都配置了两个ip,就是为了保证,zabbix-server01宕机了,还可以把监控数据发往zabbix-server02,由于两个zabbix-server共用一个数据库,肯定不能同时往数据库写数据,于是我想到了使用keepalived来控制zabbix server的开关,做到VIP在哪,那台机器的zabbix server就启动,另外一台关闭,而zabbix的web页面使用VIP去访问

本文把zabbix数据库独立出来,为了方便做mysql高可用集群

安装zabbix-server服务

将两台zabbix-server01和zabbix-server02机器上传两个文件"zabbix_rpm.tar.gz",“zabbix.conf.php”,然后两台机器执行如下命令安装部署zabbix服务。

tar xf zabbix_rpm.tar.gz
rpm -Uvh zabbix_rpm/*.rpm
wget http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
rpm -ivh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.11-1.el7.x86_64.rpm
rpm -ivh zabbix-release-4.0-1.el7.noarch.rpm
yum install zabbix-server-mysql zabbix-web-mysql -y
yum install mariadb-server httpd -y
systemctl restart mariadb.service
systemctl restart zabbix-server.service 
systemctl restart httpd.service 
systemctl restart zabbix-agent.service
sed -i 's@# php_value date.timezone Europe/Riga@php_value date.timezone Asia/Shanghai@g' /etc/httpd/conf.d/zabbix.conf
mysql -e "create database zabbix character set utf8 collate utf8_bin;"
mysql -e "grant all privileges on zabbix.* to zabbix@localhost identified by '123456';"
cd /usr/share/doc/zabbix-server-mysql-*/
zcat  create.sql.gz |mysql -uzabbix -p123456 zabbix
sed -i '115a DBPassword=123456' /etc/zabbix/zabbix_server.conf
sed -i '123a DBSocket=/var/lib/mysql/mysql.sock' /etc/zabbix/zabbix_server.conf
cd -
\mv zabbix.conf.php /etc/zabbix/web/  
systemctl restart mariadb.service 
systemctl restart zabbix-server.service 
systemctl restart httpd.service 
systemctl restart zabbix-agent.service
netstat -lntup

数据库备份操作

mysqldump -B zabbix >zabbix.sql

前提agent主机安装完成MySQL之后,在进行测试连接agent主机的mysql

mysql -uzabbix -p123456 -h 192.168.111.80

修改zabbix-server连接数据库的配置文件,注意SourceIP一定要指定到vip地址,不然创建监控主机不成功,因为找不到。

vim /etc/zabbix/zabbix_server.conf
DBHost=192.168.111.80
SourceIP=192.168.111.72

修改web连接数据库配置文件

vim /etc/zabbix/web/zabbix.conf.php
$DB['SERVER']   = '192.168.111.80';

安装keepalived和sshpass服务

在zabbix-server01和zabbix-server02上分别安装keepalived的

yum install -y keepalived sshpass

zabbix-server01配置文件如下

cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL 29
}
 
vrrp_instance VI_1 {
state BACKUP
interface ens32
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.111.72
}
notify_master /opt/to_master.sh
}

创建一个脚本,只允许运行一个zabbix-server服务,通过远程sshpass工具连接,停止远端服务,启动本地服务

cat /opt/to_master.sh
#!/bin/bash
sshpass -p 123456 ssh -o StrictHostKeyChecking=no root@192.168.111.71 "systemctl stop zabbix-server.service"
systemctl restart zabbix-server.service

给to_master.sh脚本加一个执行权限

chmod +x /opt/to_master.sh

zabbix-server02配置文件如下

cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL 52
}

vrrp_instance VI_1 {
state BACKUP
interface ens32
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.111.72
}
notify_master /opt/to_master.sh
}

创建一个脚本,只允许运行一个zabbix-server服务:通过远程sshpass工具连接,停止远端服务,启动本地服务

cat /opt/to_master.sh
#!/bin/bash
sshpass -p 123456 ssh -o StrictHostKeyChecking=no root@192.168.111.70 "systemctl stop zabbix-server.service"
systemctl restart zabbix-server.service

给to_master.sh脚本加一个执行权限

chmod +x /opt/to_master.sh

将两台zabbix-server01和zabbix-server02均启动keepalived.service服务并设置开机自启动

systemctl start keepalived.service
systemctl enable keepalived.service

开始测试keepalived服务功能,看vip是否切换,当前vip地址在01上
在这里插入图片描述

查看服务zabbix-server运行正常
在这里插入图片描述

访问成功,vip地址192.168.111.72/zabbix
在这里插入图片描述

同时zabbix-server02上的keep服务正常运行,zabbix-server服务未启动
在这里插入图片描述

手动停止zabbix-server01上的keepalived服务,vip已切换,zabbix-server已停止
在这里插入图片描述

查看zabbix-server02的server服务已经启动,还有存在vip地址,验证成功。
在这里插入图片描述

安装数据库zabbix-agent

让zabbix-server01和zabbix-server02两台服务指向zabbix-agent机器的数据

yum install mariadb-server httpd -y
systemctl restart mariadb.service
systemctl enable mariadb.service
scp -rp 192.168.111.70:/root/zabbix.sql .
mysql < zabbix.sql
mysql -e "grant all privileges on zabbix.* to zabbix@'192.168.111.%' identified by '123456';"

安装zabbix-agent服务

下载agent的rpm包
rpm -ivh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.11-1.el7.x86_64.rpm
#修改配置文件指定VIP地址
vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.111.72
#启动agent服务,设置开机自启动
systemctl start zabbix-agent.service 
systemctl enable zabbix-agent.service 

zabbix-server界面创建监控主机

创建监控主机
在这里插入图片描述

配置链接模板
在这里插入图片描述

添加监控主机成功,并且状态正常为绿色
在这里插入图片描述

监控数据,我设置更新数据时间间隔为10秒钟,都是10秒一刷新数据,图中vip切换期间有30秒没有检测。
在这里插入图片描述

  • 48
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

愿听风成曲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值