LVS_Director + KeepAlived + 邮件报警

目录

一. 环境准备

二. 对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 from=1111111111@qq.com              #邮箱账号
set smtp=smtp.qq.com                   #邮件服务器
set smtp-auth-user=1111111111@qq.com    #邮箱账号
set smtp-auth-password=xxxxxxxx   #邮件授权码
set smtp-auth=login
set ssl-verify=ignore



#这是第二种格式,两者都可用,选其一即可,但是记得替换邮箱号码和服务商
set v15-compat
set from=1111111111@qq.com
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='1111111111@qq.com'
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主机上。

​​​​​​​

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/710880.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32单片机选型方法

一.STM32单片机选型方法 1.首先要确定需求: 性能需求:根据应用的复杂度和性能要求,选择合适的CPU性能和主频。 内存需求:确定所需的内存大小,包括RAM和Flash存储空间。 外设需求:根据应用所需的功能&…

六大维度全面焕新升级!麒麟信安服务器操作系统V3.6.1引领未来计算

昨日,openEuler 24.03 LTS 正式发布,麒麟信安作为openEuler社区重要贡献者和参与者,充分发挥自身在国产操作系统领域的技术优势,在打造安全可靠、极致体验的操作系统上与社区共同努力,同步推出服务器操作系统V3.6.1&am…

misc刷题记录(1)陇剑杯

[陇剑杯 2021]签到 题目内容:此时正在进行的可能是__________协议的网络攻击。(如有字母请全部使用小写,填写样例:http、dns、ftp)。得到的flag请使用NSSCTF{}格式提交。 打开统计,找到协议分级&#xff…

二层弹出框,点掉小弹出框后,遮罩层没有消失

解决办法把 父元素的vue实例对象的,最后一个元素删除。删除的就是遮罩层元素 thus.$ refs.dialig.$ parent.$ el.lastChild. remove()

dbForge Studioor MySQL v6 解锁版 安装教程(MYSQL数据库客户端)

前言 dbForge Studioor MySQL是一个在Windows平台被广泛使用的MySQL客户端,它能够使MySQL开发人员和管理人员在一个方便的环境中与他人一起完成创建和执行查询,开发和调试MySQL程序,自动化管理MySQL数据库对象等工作。 一、下载地址 下载链…

香橙派AIpro测试SPI通信

香橙派AIpro开发板上有一个SPI接口,如下图红框所示, 系统启动后,其对应的设备是 /dev/spidev0.0 一 硬件回环测试 香橙派AIpro上的系统自带spidev_test工具,非常方便,可以查看其帮助信息,如下&#xff0c…

探索AIGC与3D技术的融合:从图像到可探索的3D动态场景

随着人工智能和计算机图形技术的飞速发展,AIGC(人工智能生成内容)与3D技术的结合正在为我们打开一扇全新的创意之门。最近,我深入研究了几个令人兴奋的AIGC+3D方案,它们不仅展示了从单张图片或文本提示生成3D点云的强大能力,还进一步实现了AI虚拟试穿和生成高保真3D数字人…

金融与大模型:引领行业未来的创新融合

前言 在数字化浪潮席卷全球的今天,金融与大模型的结合正成为行业发展的新引擎。这种融合不仅为金融机构带来了前所未有的效率和准确性,也为金融市场的稳定与发展注入了新的活力。本文将基于当前的市场现状,结合金融环境的发展,深…

【docker实战】使用代理的坑

在docker公共仓库被封禁的日子里,大多数人更喜欢使用镜像仓库代理源。 网上教程一大把,似乎不使用代理,就不会使用docker一样。 上图就是我设置的代理源镜像仓库。通常是设置/etc/docker/daemon.json这个文件实现的。 这样设置之后&#xff0…

【MySQL】索引(上)

https://www.wolai.com/curry00/fzTPy3kSsMDEgEcdvo4G5w https://www.bilibili.com/video/BV1Kr4y1i7ru/?p69 https://jimhackking.github.io/%E8%BF%90%E7%BB%B4/MySQL%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/#%E7%B4%A2%E5%BC%95 索引是一种用于快速查询和检索数据的数据结构…

echarts写某个市地图

const geoJSON {"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":440303,"name":"罗湖区","center":[114.123885,22.555341],"…

照明灯具哪个品牌好,一文详细带你了解照明灯具种类有哪些

在孩子学习过程中,有一样物品的重要性不容忽视,那就是一盏提供舒适光源的照明灯具。那么照明灯具哪个品牌好?面对不断增加的学业负担,孩子们经常需要在夜晚借助台灯的光亮进行学习,这已经成为了家庭生活中普遍的情景。…

【全开源】多功能投票小程序源码(Uniapp+ThinkPHP+FastAdmin)

💥**【热门推荐】多功能投票小程序,一键解决你的选择难题!**💥 基于ThinkPHPFastAdminUniapp开发的多功能系统,支持图文投票、自定义选手报名内容、自定义主题色、礼物功能(高级授权)、弹幕功能(高级授权)、会员发布、…

FullCalendar日历组件集成实战(15)

背景 有一些应用系统或应用功能,如日程管理、任务管理需要使用到日历组件。虽然Element Plus也提供了日历组件,但功能比较简单,用来做数据展现勉强可用。但如果需要进行复杂的数据展示,以及互动操作如通过点击添加事件&#xff0…

面向对象编程垃圾回收机制

系列文章目录 文章目录 系列文章目录前言一、垃圾回收机制(Garbage Collection) 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用…

在AWS上运行的EKS Elastic Kubernetes Service 创建集群Cluster,Node group, Nodes

1. 前提条件 AWS Account: https://aws.amazon.com/free/Installing KubeCtl CLI https://docs.aws.amazon.com/eks/latest/userguide/getting-started-eksctl.htmlEKS Cluster RoleIAM Role for Node GroupVPCEC2 Key Pair which can be used to SSH to the worker nodesAWS …

植物ATAC-seq文献集锦(三)——果实发育篇

ATAC-seq在植物研究领域的应用我们已经介绍2期了,本期我们聚焦ATAC-seq技术在果实发育方向的应用案例。 植物ATAC-seq文献集锦(一)——基因组篇 植物ATAC-seq文献集锦(二)——生长发育篇 文献一:Ident…

论文阅读笔记:Cross-Image Relational Knowledge Distillation for Semantic Segmentation

论文阅读笔记:Cross-Image Relational Knowledge Distillation for Semantic Segmentation 1 背景2 创新点3 方法4 模块4.1 预备知识4.2 跨图像关系知识蒸馏4.3 Memory-based像素到像素蒸馏4.4 Memory-based像素到区域蒸馏4.5 整体框架 5 效果 论文:http…

Visual Studio Code远程linux计算云

一、前置条件 本机安装Visual Studio Code 打开Vscode时建议使用管理员权限打开,在这之前遇到了一些报错。 二、开始远程连接计算云 安装插件remote-ssh 2.点击远程资源管理器,之后在SSH这行的右侧,点击“”号,去新建远程 3.在窗…

CCAA质量管理【学习笔记】​​ 备考知识点笔记(二)

第三节 GB/T19001-2016 标准正文 本节为ISO9001:2015 标准条款的正文内容,各条款中的术语参照上节内容理解时,会很轻松。本节不再一一对各条款讲解。 引 言 0.1 总 则 采用质量管理体系是组织的一项战略决策,能够帮助其提高整体绩效…