首页 > 其他分享 >LVS_Director + KeepAlived + 邮件报警

LVS_Director + KeepAlived + 邮件报警

时间:2024-06-15 13:57:21浏览次数:12  
标签:IP LVS KeepAlived keepalived Director etc master 主机 backup

目录

一. 环境准备

二. 对master和backup操作

三. 配置master主机

四. 配置backup主机

六. 验证虚拟IP

七. 配置后端两个web服务器

对web1和web2主机都进行如下操作: 

单独修改web1主机

单独修改web2主机

验证

八. 设置邮件报警


 

一. 环境准备

KeepAlived在该项目中的功能:
1. 管理IPVS的路由表(包括对RealServer做健康检查)
2. 实现调度器的HA
官网地址:Keepalived for Linux

准备四个虚拟机,要在同一网段内且可互相通信,关闭防火墙,SElinux,时间同步和配置好YUM源操作。

虚拟IP为:192.168.226.200

主机名IP系统用途
master192.168.225.138Rocky_linux9.4主虚拟服务器
backup192.168.226.129Rocky_linux9.4备虚拟服务器
web1192.168.226.99Centos7后端web服务器
web2192.168.226.100Centos7后端web服务器
localhost10.35.186.197windows10模拟客户

二. 对master和backup操作

下载ipvsadm和keepalived

yum install -y ipvsadm keepalived

备份两台这两台主机的keepalived.conf文件

cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak

三. 配置master主机

vi /etc/keepalived/keepalived.conf
#删除原来全部配置内容,加入如下配置内容,其中IP要改成你的对应的服务IP
! Configuration File for keepalived

global_defs {
   router_id lvs-keepalived-master    #辅助改为lvs-backup
}

vrrp_script check_run {
   script /etc/keepalived/keepalived_check_mysql.sh
   interval 5
}
vrrp_instance VI_1 {
    state MASTER
    interface ens33                #VIP绑定接口
    virtual_router_id 80         #VRID 同一组集群,主备一致          
    priority 100            #本节点优先级,辅助改为50
    advert_int 1            #检查间隔,默认为1s
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.226.200/24  # 可以写多个vip
    }
     track_script {
        check_run
    }
notify_master "/etc/keepalived/sendmail.sh master"
    notify_backup "/etc/keepalived/sendmail.sh backup"
    notify_fault "/etc/keepalived/sendmail.sh fault"
}
virtual_server 192.168.226.200 80 {    #LVS配置
	delay_loop 3
	lb_algo rr     #LVS调度算法
	lb_kind DR     #LVS集群模式(路由模式)
	net_mask 255.255.255.0
	protocol TCP      #健康检查使用的协议
	real_server 192.168.226.99 80 {
		weight 1
		inhibit_on_failure   #当该节点失败时,把权重设置为0,而不是从IPVS中删除
		TCP_CHECK {          #健康检查
			connect_port 80   #检查的端口
			connect_timeout 3  #连接超时的时间
			}
		}
	real_server 192.168.226.100 80 {
		weight 1
		inhibit_on_failure
		TCP_CHECK {
			connect_timeout 3
			connect_port 80
			}
		}
}

四. 配置backup主机

vi /etc/keepalived/keepalived.conf
#删除原来全部配置内容,加入如下配置内容,其中IP要改成你的对应的服务IP
! Configuration File for keepalived

global_defs {
   router_id lvs-keepalived-slave
}
vrrp_script check_run {
   script /etc/keepalived/sendmail.sh
   interval 5
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    nopreempt
    virtual_router_id 80
    priority 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.226.200/24
    }
}
    track_script {
        check_run
    }
    notify_master "/etc/keepalived/sendmail.sh master"
    notify_backup "/etc/keepalived/sendmail.sh backup"
    notify_fault "/etc/keepalived/sendmail.sh fault"

virtual_server 192.168.226.200 80 {
        delay_loop 3
        lb_algo rr
        lb_kind DR
        net_mask 255.255.255.0
        protocol TCP
        real_server  192.168.226.99 80 {
                weight 1
                inhibit_on_failure
                TCP_CHECK {
                        connect_port 80
                        connect_timeout 3
                        }
                }
        real_server 192.168.226.100 80 {
                weight 1
                inhibit_on_failure
                TCP_CHECK {
                        connect_timeout 3
                        connect_port 80
                        }
                }
}

六. 验证虚拟IP

 启动mastart主机和backup主机中的keepalived

systemctl enable --now keepalived

查看并验证两台主机都又ipvsadm规则

ipvsadm -Ln

其中,在master主机中查看ip,可以看到虚拟IP已经有了

  

七. 配置后端两个web服务器

对web1和web2主机都进行如下操作: 

下载nginx

yum install -y nginx

添加虚拟IP 

ip addr add dev lo 192.168.226.200/32

添加开机启动时,绑定vip

echo "ip addr add dev lo 192.168.226.200/32" >> /etc/rc.local

web1和web2主机都配置

echo "net.ipv4.conf.all.arp_ignore = 1" >> /etc/sysctl.conf
echo "net.ipv4.conf.all.arp_announce = 2" >> /etc/sysctl.conf

重新加载 sysctl 配置

sysctl -p

给 rc.local加执行权限

chmod +x /etc/rc.local

单独修改web1主机
echo web1 > /usr/share/nginx/html/index.html
单独修改web2主机
echo web2 > /usr/share/nginx/html/index.html

 web1主机和web2主机的nginx启动并设置开机自启

systemctl enable --now nginx
验证

在浏览器无痕模式,避免浏览器缓存影响,输入虚拟IP多次刷新可以看到会显示web1和web2的内容。

 当master主机模拟关闭keepalived后,虚拟IP依旧可以访问,虚拟IP已经切换到backup主机上了。

八. 设置邮件报警

对master和backup主机下载邮件

yum install -y s-nail

说明: 在Rocky_linux9.4中,下载邮件是s-nail   而在centos7下载邮件是mailx

master和backup都配置上邮箱,这是rocky系统上的配置,cenos7配置文件在/etc/mailx.rc

vim /etc/s-nail.rc 
#在s-nail.rc文件最后加入如下内容,里面的邮箱相关配置需要修改成你的真实服务邮箱这是用来发送的邮箱
set [email protected]              #邮箱账号
set smtp=smtp.qq.com                   #邮件服务器
set [email protected]    #邮箱账号
set smtp-auth-password=xxxxxxxx   #邮件授权码
set smtp-auth=login
set ssl-verify=ignore



#这是第二种格式,两者都可用,选其一即可,但是记得替换邮箱号码和服务商
set v15-compat
set [email protected]
set mta=smtp://1111111111%40qq.com:授权码@smtp.qq.com smtp-use-starttls
set smtp-auth=login

 master和backup主机都要编写发送邮件脚本,脚本中的邮箱是接收人邮箱,注意修改

vi /etc/keepalived/sendmail.sh
#!/bin/bash
to_email='[email protected]'
ipaddress=`ip -4 a show dev ens33 | awk '/brd/{print $2}'`
notify() {
    mailsubject="${ipaddress}to be $1, vip转移"
    mailbody="$(date +'%F %T'): vrrp 飘移, $(hostname) 切换到 $1"
    echo "$mailbody" | s-nail -s "$mailsubject" $to_email
}
case $1 in
master)
    notify master
    ;;
backup)
    notify backup
    ;;
fault)
    notify fault
    ;;
*)
    echo "Usage: $(basename $0) {master|backup|fault}"
    exit 1
    ;;
esac

同时都要赋予执行权限

chmod 777 /etc/keepalived/sendmail.sh

在keepalived.conf模板里已经定义了调用邮件的脚本。因此这里直接去测试即可。

在master主机中停止keepalived服务,然后会发现虚拟IP跳转到了backup主机上,并且接收者邮箱会收到对应的报警邮件,同时访问虚拟IP网站也是可以正常的,当master启动keepalived服务后,也会收到邮件,并且虚拟IP又回到了master主机上。

​​​​​​​

标签:IP,LVS,KeepAlived,keepalived,Director,etc,master,主机,backup
From: https://blog.csdn.net/Lzcsfg/article/details/139688804

相关文章

  • 【pycharm调试模式异常】can‘t open file ‘C:\\Program‘: [Errno 2] No such fil
    错误系统:wendows10pycharm版本:pycharm专业版和社区版都有对应问题2023.1和2023.2都有同样问题python版本:3.11官网问题地址上面只是我出问题的环境,不知道其他环境或者版本有没有同样的问题现象:执行debug,程序启动后立即退出,错误信息:can’topenfile‘C:\Progra......
  • Nginx+KeepAlived高可用负载均衡集群的部署
    目录一.KeepAlived补充知识1.一个合格的群集应该具备的特点2.健康检查(探针)常用的工作方式3.相关面试问题问题1问题2二.Keepealived脑裂现象1.现象2.原因硬件原因运用配置原因3.解决4.预防方法1方法2方法3方法4三.实验部署1.两台nginx做初始化操作并安装ngin......
  • LVS负载均衡集群企业级应用实战-LVS-DR(四)
    目录LVS-DR 一.环境准备二.对虚拟主机操作三.对真实服务器操作 四.打开网页测试LVS-DR 一.环境准备三台虚拟机,都要在同一网段内,统一关闭防火墙和selinux,时间同步,配置好YUM源。系统用centos和roucky都行。主机名主机IP模拟服务器系统用途localhostVIP:1......
  • keepalived编译安装-麒麟v10Arm64
    环境信息操作系统:KylinLinuxAdvancedServerV10(Lance)架构:Armkeepalived版本:2.3.1编译wgethttps://www.keepalived.org/software/keepalived-2.3.1.tar.gztarxvfkeepalived-2.3.1.tar.gzcdkeepalived-2.3.1/./configure--prefix=/usr/local/keepalivedmake......
  • LVS+KeepAlived高可用负载均衡集群
    目录1.高可用群集的相关知识1.1单台服务器1.2keepalived1.3Keepalived实现原理2.部署keepalived2.1准备虚拟机2.2初始化操作2.3更新在线源仓库并安装keepalived​2.4配置主调度器2.5 配置备调度器2.6 启动主备keepalived2.7验证3.常问题目4.非抢占模式......
  • LVS负载均衡群集+NAT部署
    目录1.企业群集应用概述1.1群集的含义1.2企业群集分类2.LVS负载均衡群集运用理论2.1负载均衡的架构2.2LVS负载均衡群集工作的三种模式3.LVS虚拟服务器(LinuxVirtualServer)3.1ip_vs通用模块 3.2LVS调度器用的调度方法4.ipvsadm工具选项说明5.LVS负载均衡-NA......
  • PingCastle 3.2.0.1 - Active Directory 安全检测和评估
    PingCastle3.2.0.1-ActiveDirectory安全检测和评估活动目录域安全分析工具请访问原文链接:https://sysin.org/blog/pingcastle/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org在20%的时间内获得80%的ActiveDirectory安全性ActiveDirectory正迅速成为......
  • 树莓派 linux安装PyBlueZ报错:fatal error: bluetooth/bluetooth.h: No such file or d
    IwanttobuildacfilebasedonBlueZbutseemsnobluetooth.hfileinmysystem.fatalerror:bluetooth/bluetooth.h:NosuchfileordirectoryIamsurethebluetoothdongleisrunningcorrectlyandIhavebuiltBluezsuccessfully.UpdateFormyca......
  • centos7运行sysctl -p 命令报错sysctl: cannot stat /proc/sys/vm/max/map_count: No
    这个错误表明 sysctl-p 命令尝试重新加载系统参数时,无法访问 /proc/sys/vm/max/map_count 文件在CentOS7中,这个文件通常位于 /proc/sys/vm/max_map_count解决方法:确认你有足够的权限执行该命令。如果不是root用户,使用 sudo 前缀来运行命令:sudosysctl-p如果......
  • GD32错误调试篇:error: #5: cannot open source input file “RTE_Components.h“: No
    本文章基于兆易创新GD32MCU所提供的2.2.4版本库函数开发    向上代码兼容GD32F450ZGT6中使用    后续项目主要在下面该专栏中发布:https://blog.csdn.net/qq_62316532/category_12608431.html?spm=1001.2014.3001.5482    感兴趣的点个关注收藏一下......