zabbix的高可用

本文详细介绍了如何实现Zabbix服务器的高可用性,包括配置双Zabbix服务器、使用VIP漂移、MySQL数据库迁移和权限设置、Keepalived的安装与配置,以及Zabbix-Agent的设置。通过这些步骤,确保了即使Zabbix服务器宕机,监控数据仍能正常发送,并通过VIP访问Zabbix Web界面。
摘要由CSDN通过智能技术生成

zabbix的高可用

两个zabbix_server 一个zabbix_agent
zabbix -server keepalived 关
zabbix -server keepalived VIP 开

rm -f /etc/yum.repos.d/*   #删除自带的yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo  #下载基础源
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo  #下载扩展源

在这里插入图片描述
VIP规划 10.0.0.66
本文中用到了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高可用集群

1. zabbix server 01安装
修改zabbix源
 wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
    4  rpm -ivh zabbix-release-4.0-2.el7.noarch.rpm 
    5  vim /etc/yum.repos.d/zabbix.repo 

安装 zabbix-server-mysql zabbix-web-mysql


    6* yum install zabbix-server-mysql zabbix-web-mysql -y

安装数据库

    7  yum install mariadb-server -y
    8  systemctl restart mariadb.service 
    9  systemctl enable mariadb.service 
   

优化数据库

10  mysql_secure_installation

 mysql
MariaDB [(none)]> show databases;
 select user,host from mysql.user;


指定字符集----utf8并授权

 mysql
 create database zabbix character set utf8 collate utf8_bin;
 grant all on zabbix.* to zabbix@localhost identified by '123456';

给zabbix导入初始数据

zcat /usr/share/doc/zabbix-server-mysql-*/create.sql.gz|mysql -uzabbix -p123456 zabbix

确认一下有没有导进去
mysql zabbix -e 'show tables;'


可以查看文件
rpm -ql zabbix-server-mysql |grep sql

配置启动zabbix-server

  vim /etc/zabbix/zabbix_server.conf 
  
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456

重启
 systemctl restart zabbix-server.service 
 systemctl enable zabbix-server.service 

检查10051端口

netstat -tunlp

修改web端的配置文件

 php_value date.timezone Asia/Shanghai

重启前端服务
 systemctl restart httpd.service 

同步时间

1).安装ntp时间服务
[root@localhost ~]# yum install ntpdate -y
  ntpdate time1.aliyun.com

安装zabbix-agent服务

 yum install zabbix-agent.x86_64 
 

修改zabbix-agent的配置文件

 vim /etc/zabbix/zabbix_agentd.conf 

重启
 systemctl restart zabbix-agent.service 

安装httpd和php

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

3.在zabbix-server上备份数据库

```powershell
[root@zabbix-server01 ~]# mysqldump -B zabbix >zabbix.sql
[root@zabbix-server01 ~]# vim zabbix.sql 

安装keepalived + sshpass

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

2.zabbix server 02安装

2.停用zabbix-server02的数据库

[root@zabbix-server02 ~]# systemctl stop mariadb.service 

安装keepalived + sshpass

[root@zabbix-server02 ~]# yum install keepalived sshpass -y

agent+mysql

1.安装mariadb

base源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

[root@db01 ~]# yum install mariadb-server.x86_64 -y
启动
[root@db01 ~]# systemctl start mariadb.service 
[root@db01 ~]# systemctl enable mariadb.service

2.从zabbix-server01迁移数据库

[root@db01 ~]# scp -rp 10.0.0.61:/root/zabbix.sql .
导入数据库
[root@db01 ~]# mysql < zabbix.sql 

3.授权数据库

[root@db01 ~]# mysql
show databases;
grant all on zabbix.* to zabbix@'10.0.0.%' identified by '123456';

4.在服务端测试是否连接数据库

[root@zabbix-server01 ~]# mysql -uzabbix -p123456 -h 10.0.0.51
[root@zabbix-server02 ~]# mysql -uzabbix -p123456 -h 10.0.0.51

5.修改zabbix-server01服务端的配置文件

[root@zabbix-server01 ~]# vim /etc/zabbix/zabbix_server.conf 
指向agent
DBHost=10.0.0.51
[root@zabbix-server01 ~]# systemctl restart zabbix-server.service 
查看状态
[root@zabbix-server01 ~]# systemctl status zabbix-server.service 

6.关闭zabbix-server01的数据库

[root@zabbix-server01 ~]# systemctl stop mariadb.service 

7.web 画面测试

在这里插入图片描述

8.修改zabbix-server01 web的配置文件

[root@zabbix-server01 ~]# vim /etc/zabbix/web/zabbix.conf.php

在这里插入图片描述
9.画面测试正常
10.修改zabbix-server02的 web配置文件

[root@zabbix-server02 ~]# vim /etc/zabbix/web/zabbix.conf.php

11修改zabbix-server02的服务端配置文件

[root@zabbix-server02 ~]# vim /etc/zabbix/zabbix_server.conf 
指向agent
DBHost=10.0.0.51
[root@zabbix-server02 ~]# systemctl restart zabbix-server.service 

12安装zabbix-agent

[root@db01 ~]# yum install zabbix40-agent.x86_64 -y
[root@db01 ~]# vim /etc/zabbix/zabbix_agentd.conf 

Server=10.0.0.66
[root@db01 ~]# systemctl restart zabbix-agent.service 

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

zabbix-server01如下

1.安装keepalived sshpass

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

2.配置keepalived文件

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

去掉空格

[root@zabbix-server01 ~]# sed -i '/^$/d' /etc/keepalived/keepalived.conf

3.生成to_master.sh脚本

[root@zabbix-server01 ~]# cat /opt/to_master.sh 
#!/bin/bash

sshpass -p 123456 ssh -o StrictHostKeyChecking=no root@10.0.0.62 "systemctl stop zabbix-server.service 
"

systemctl restart zabbix-server.service

4.脚本授权

[root@zabbix-server01 ~]#  chmod +x /opt/to_master.sh 

5.开启keepalived服务

[root@zabbix-server01 ~]# systemctl start keepalived.service
[root@zabbix-server01 ~]# systemctl enable keepalived.service



zabbix -server 02安装

1.安装keepalived sshpass

[root@zabbix-server02 ~]# yum install keepalived sshpass -y

2.配置keepalived文件

! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL 30
}

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

3.生成to_master.sh脚本

[root@zabbix-server02 ~]# cat /opt/to_master.sh 
#!/bin/bash

sshpass -p 123456 ssh -o StrictHostKeyChecking=no root@10.0.0.61 "systemctl stop zabbix-server.service 
"

systemctl restart zabbix-server.service

4.脚本授权

[root@zabbix-server02 ~]#  chmod +x /opt/to_master.sh 

5.开启keepalived服务

[root@zabbix-server02 ~]# systemctl start keepalived.service
[root@zabbix-server02 ~]# systemctl enable keepalived.service

4.整体测试

两台zabbix server都启动keepalived的

zabbix-server01 启动zabbix server

zabbix-server02不启动zabbix server

模拟zabbix-server01宕机,keepalived不工作了
在这里插入图片描述

5测试

web画面测试,需要登录10.0.0.66在这里插入图片描述
添加主机模板
在这里插入图片描述
在这里插入图片描述
但是zabbix-agent配置文件设置的是Server=10.0.0.66

在这里插入图片描述
所以接下来需要修改zabbix-server02配置文件
目的是当有多个IP地址,指定从哪个IP地址出去
两台服务都的改 高可用的重点
在这里插入图片描述

[root@zabbix-server02 opt]# ip a |grep 10.0.0.66
    inet 10.0.0.66/32 scope global eth0
[root@zabbix-server02 opt]# netstat -tunlp |grep 10051
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      40866/zabbix_server 
tcp6       0      0 :::10051                :::*                    LISTEN      40866/zabbix_server 
[root@zabbix-server02 opt]# vim /etc/zabbix/zabbix_server.conf 

SourceIP=10.0.0.66

[root@zabbix-server02 opt]# systemctl restart zabbix-server.service 

[root@zabbix-server01 ~]# vim /etc/zabbix/zabbix_server.conf 


SourceIP=10.0.0.66

在这里插入图片描述
切换到zabbix-server01上
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210330171019640.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjgzNzM5Ng==,size_16,color_FFFFFF,t_70在这里插入图片描述

总结

在这里插入图片描述

zabbix server的高可用解决方案

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值