LVS_Director + KeepAlived + 邮件报警

2024-06-15 09:12

本文主要是介绍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 keepalivedglobal_defs {router_id lvs-keepalived-master    #辅助改为lvs-backup
}vrrp_script check_run {script /etc/keepalived/keepalived_check_mysql.shinterval 5
}
vrrp_instance VI_1 {state MASTERinterface ens33                #VIP绑定接口virtual_router_id 80         #VRID 同一组集群,主备一致          priority 100            #本节点优先级,辅助改为50advert_int 1            #检查间隔,默认为1sauthentication {auth_type PASSauth_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 3lb_algo rr     #LVS调度算法lb_kind DR     #LVS集群模式(路由模式)net_mask 255.255.255.0protocol TCP      #健康检查使用的协议real_server 192.168.226.99 80 {weight 1inhibit_on_failure   #当该节点失败时,把权重设置为0,而不是从IPVS中删除TCP_CHECK {          #健康检查connect_port 80   #检查的端口connect_timeout 3  #连接超时的时间}}real_server 192.168.226.100 80 {weight 1inhibit_on_failureTCP_CHECK {connect_timeout 3connect_port 80}}
}

四. 配置backup主机

vi /etc/keepalived/keepalived.conf
#删除原来全部配置内容,加入如下配置内容,其中IP要改成你的对应的服务IP
! Configuration File for keepalivedglobal_defs {router_id lvs-keepalived-slave
}
vrrp_script check_run {script /etc/keepalived/sendmail.shinterval 5
}vrrp_instance VI_1 {state BACKUPinterface ens33nopreemptvirtual_router_id 80priority 50advert_int 1authentication {auth_type PASSauth_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 3lb_algo rrlb_kind DRnet_mask 255.255.255.0protocol TCPreal_server  192.168.226.99 80 {weight 1inhibit_on_failureTCP_CHECK {connect_port 80connect_timeout 3}}real_server 192.168.226.100 80 {weight 1inhibit_on_failureTCP_CHECK {connect_timeout 3connect_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主机上。

​​​​​​​

这篇关于LVS_Director + KeepAlived + 邮件报警的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1063032

相关文章

Django中使用SMTP实现邮件发送功能

《Django中使用SMTP实现邮件发送功能》在Django中使用SMTP发送邮件是一个常见的需求,通常用于发送用户注册确认邮件、密码重置邮件等,下面我们来看看如何在Django中配置S... 目录1. 配置 Django 项目以使用 SMTP2. 创建 Django 应用3. 添加应用到项目设置4. 创建

LVS学习入门

1.LVS DR模式负载均衡配置详解(配置篇一) http://www.07net01.com/storage_networking/LVS_DRmoshifuzaijunhengpeizhixiangjie_peizhipianyi__56840_1358680093.html 2.LVS负载均衡DR模式部署 http://www.cnblogs.com/xdpxyxy/

【语音告警】博灵智能语音报警灯JavaScript循环播报场景实例-语音报警灯|声光报警器|网络信号灯

功能说明 本文将以JavaScript代码为实例,讲解如何通过JavaScript代码调用博灵语音通知终端 A4实现声光语音告警。主要博灵语音通知终端如何实现无线循环播报或者周期播报的功能。 本代码实现HTTP接口的声光语音播报,并指定循环次数、播报内容。由于通知终端采用TTS语音合成技术,所以本次案例中无需预先录制音频。 代码实战 为了通过JavaScript调用博灵语音通知终端,实现HT

# 高可用的并发解决方案nginx+keepalived(一)

高可用的并发解决方案nginx+keepalived(一) 段子手 一、课程计划介绍 1、课程标题 为并发量高的优质网站量身定制高可用的并发解决方案 nginx+keepalived。 2、引导语 在这个互联网飞速发展的时代,人们已经离不开网络,其中网购最为常见。在家网购,上班路上网购,吃饭也购物,下班还网购,2017年双十一天猫支付峰值达到了25.6万笔/秒。热点网站中频繁出现的大量

zabbix-高级应用(主被动监控、邮件告警、企业微信告警)

文章目录 zabbix-高级应用监控路由器交换机SNMP简单网络管理协议测试案例配置网络设备创建主机创建监控项测试监控项 自动发现什么是自动发现Discovery?配置自动发现1、创建自动发现规则2、创建Action动作(发现主机后自动执行什么动作)3、通过动作,执行添加主机,链接模板到主机等操作4、测试,创建新的虚拟机(符合发现规则) 主被动监控1、概述2、创建被监控主机(主动监控)

钓鱼邮件真相追踪:XDR见招拆招!

钓鱼陷阱,财富“蒸发” 如果一家规模5000人、业务遍布全球的企业之中有一位员工不小心点进了一个钓鱼邮件,会发生什么……?终端失陷?数据泄露?失去客户信任? 最让人破碎的当然是……核心资产泄露,钱没了!! 人有失手,"鱼"有逃命 某大型零售企业财务部门小张收到一封看似来自公司财务部的邮件,由于内容与其实际工作情况相符,小张打开了邮件中的附件,并点击了附件里的下载链接

利用 Amazon Bedrock 基础模型生成高效邮件回复

概述 亚马逊 Bedrock 是亚马逊云科技(AWS)推出的旗舰服务,旨在推动生成式人工智能(AI)在各行业中的广泛应用。其核心功能是提供由顶尖AI公司(如 AI21 Labs、Anthropic、Cohere、Meta、Mistral AI、Stability AI 和亚马逊)开发的多种基础模型(FMs)。这些模型是各种AI应用的基础,经过针对特定用例和行业需求的优化。 亚马逊 Bedroc

网站监控邮件发送方法

网站监控、功能脚本执行结果邮件: /*** 邮件发送方法* @param string $title 邮件主题* @param string $content 邮件内容*/function send_email($title, $content) {//如下以get请求发送邮件,链接中不能有&符号,以斜杠替换$content = str_replace("&", "/", $content);

lvs DR模式调试

DS配置: # cat /etc/keepalived_docker/keepalived.conf ! Configuration File for keepalivedglobal_defs {router_id LVS_70 # 设置lvs的id,在一个网络内应该是唯一的}vrrp_instance VI_70 {state MASTER #

TP5发送邮件功能如何实现?怎么配置服务?

TP5发送邮件性能优化如何优化?怎么使用TP5发送邮件? 在现代Web开发中,TP5框架因其高效和灵活性而广受欢迎。无论是用于用户注册验证、密码重置还是定期通知,TP5发送邮件功能都能提供强大的支持。AokSend将详细介绍如何在TP5框架中实现发送邮件功能。 TP5发送邮件:配置环境 这包括设置邮件服务器的详细信息,如SMTP服务器地址、端口、用户名和密码等。TP5提供了一个简洁的配置