keepalived双机热备实现故障时发送邮件通知

眼下项目已经採用nginx来实现负载均衡,可是nginx调度器仅仅有一台,上次还意外的down机一次,导致整个服务应用所有瘫痪,这次准备再加一个调度器来实现网站高可用性,也就是常说的双机热备了。

master: 192.168.1.241

backup: 192.168.1.242

漂移IP:192.168.1.243

1。主备调度器都安装keepalived软件

安装步骤例如以下:

./configure --prefix=/usr/local/keepalived && make && make install

cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/

cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

mkdir /etc/keepalived

cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/

cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

service keepalived start

可以先用命令 service keepalived start 启动进行測试,看进程可以启动。注意查看log.

2,主调度器配置例如以下:

! Configuration File for keepalived

global_defs {

router_id LVS_DEVEL

}

vrrp_sync_group VG_1 {

group {

VI_1

}

notify_master /etc/keepalived/sendmail.pl

}

vrrp_instance VI_1 {

state MASTER

interface eth0

virtual_router_id 51

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.1.243

}

}

2,备调度器配置例如以下:

! Configuration File for keepalived

global_defs {

router_id LVS_DEVEL

}

vrrp_sync_group VG_1 {

group {

VI_1

}

notify_master /etc/keepalived/sendmail.pl

}

vrrp_instance VI_1 {

state BACKUP

interface eth0

virtual_router_id 51

priority 99

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.1.243

}

}

3。发送邮件的perl脚本sendmail.pl内容例如以下:

注意主备发送邮件的标题是不一致的。仅仅要你能识别漂移IP在哪台server上就可以。

#!/usr/bin/perl -w
use Net::SMTP_auth;
use strict;
my $mailhost = ‘smtp.163.com‘;
my $mailfrom = ‘[email protected]‘;
my @mailto   = (‘[email protected]‘);
my $subject  = ‘keepalived up on backup‘;
my $text = "正文\n第二行位于此。";
my $user   = ‘[email protected]‘;
my $passwd = ‘xxxxxxx‘;
&SendMail();
##############################
# Send notice mail
##############################
sub SendMail() {
    my $smtp = Net::SMTP_auth->new( $mailhost, Timeout => 120, Debug => 1 )
      or die "Error.\n";
    $smtp->auth( ‘LOGIN‘, $user, $passwd );
    foreach my $mailto (@mailto) {
        $smtp->mail($mailfrom);
        $smtp->to($mailto);
        $smtp->data();
        $smtp->datasend("To: $mailto\n");
        $smtp->datasend("From:$mailfrom\n");
        $smtp->datasend("Subject: $subject\n");
        $smtp->datasend("\n");
        $smtp->datasend("$text\n\n");
        $smtp->dataend();
    }
    $smtp->quit;
}

说明:

a、因为keeplived自带的发送邮件机制是个鸡肋,假设本地不启动25port就无法实现邮件发送,就琢磨着能不能通过自己定义脚本来实现。真的是非常幸运,就採用了认证的方式。

b、其它的配置说明就不具体讲了。网上非常多资料。

4。測试keepalived

主备调度器都开启80port,两台server上的測试内容不一致,这样更方便測试。

##########################

#所需安装模块

#use Net::SMTP

#Authen::SASL

##########################

#$stmp->auth(‘user‘,‘pass‘);

#大部分SMTPserver为了防止 spam /垃圾邮件,就须要用户验证身份。

#此方法须要另外安装模块:Authen::SASL, 此模块可能系统不自带

##########################

#Debug => 1

#此段代码用于測试之用,所以开启了Debug。一般測试一次完成,正式使用的话会关闭它。

注:可在命令行界面直接运行:/etc/keepalived/sendmail.pl,看看是否能发送邮件成功,假设失败的话则须要安装Net::SMTP_auth模块

安装方法:

yum -y install perl-CPAN

cpan Net::SMTP_auth

时间: 2024-10-08 01:17:39

keepalived双机热备实现故障时发送邮件通知的相关文章

​Keepalived双机热备

Keepalived双机热备 Keepalived是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障切换和健检查功能,如判断LVS负载调度器.节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机恢复后将其重新加入群集.在非LVS群集环境中使用时Keepalived也可以作为热备软件使用. Keepalived采用VRRP(virtual  router  redundancy protocol,虚拟路由冗余协议)热备份协议,以软件的方式实现linux服务器的多机热备功能.VRRP是

Nginx+keepalived双机热备+负载均衡 ???待续

keepalived+nginx双机热备+负载均衡 最近因业务扩展,需要将当前的apache 转为nginx(web), 再在web前端放置nginx(负载均衡).同时结合keepalived 对前端nginx实现HA.nginx进程基于于Master+Slave(worker)多进程模型,自身具有非常稳定的子进程管理功能.在Master进程分配模式下,Master进程永远不进行业务处理,只是进行任务分发,从而达到Master进程的存活高可靠性,Slave(worker)进程所有的业务信号都 由

keepalived 双机热备配置文件详解

配置示例:https://blog.51cto.com/14227204/2438902一.keepalived工作原理及作用: keepalived最初是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障切换和健康检查功能--判断LVS负载调度器.节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机回复后将其重新加入群集.单独部署LVS环境的话,调度器发生宕机的话,整个群集就失效了,某一个web节点宕机后,客户端在访问时,总会碰上访问不到网页的情况,所以,将keepalived和L

浅谈Keepalived双机热备

一.Keepalived双机热备的基础知识 keepalived官方网站: www.keepalived.org/ 在非LVS环境中keepalived也可以作为热备软件使用. 1.Keepalived作用 keepalived最初是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障切换和健康检查功能--判断LVS负载调度器.节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机回复后将其重新加入群集.单独部署LVS环境的话,调度器发生宕机的话,整个群集就失效了,某一个web节点宕机后

keepalived双机热备nginx

nginx目前是我最常用的反向代理服务,线上环境为了能更好的应对突发情况,一般会使用keepalived双机热备nginx或者使用docker跑nginx集群,keepalived是比较传统的方式,虽然用docker跑nginx集群更方便,但传统的方式总是有他的可取之处,并且多学一些东西也很好.以后也会写如何使用docker跑nginx集群. 环境准备: 2台centos: 192.168.0.105 和192.168.0.118, 虚拟IP(VIP)为192.168.0.119 配置keepa

Centos 7 keepalived双机热备

Centos 7 keepalived双机热备 操作环境:keepalived热备份(双机热备)Centos 7系统ip地址: 192.168.80.100 --主服务器Centos 7系统ip地址: 192.168.80.101 --从服务器windows系统ip地址: 192.168.80.20 --测试客户端 Centos 7系统ip地址: 192.168.80.100操作如下:1. keepalived软件安装yum install keepalived -y 2.修改配置文件vi /e

centos 7之keepalived双机热备理论+配置文件详解

一.keepalived工作原理及作用: keepalived最初是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障切换和健康检 查功能--判断LVS负载调度器.节点服务器的可用性,及时隔离并替换为新的服务器,当故 障主机回复后将其重新加入群集.单独部署LVS环境的话,调度器发生宕机的话,整个群集就 失效了,某一个web节点宕机后,客户端在访问时,总会碰上访问不到网页的情况,所以,将 keepalived和LVS结合起来,才可形成一个真正的高可用群集,当然,后端的共享存储也必须 搭建一个

Keepalived双机热备原理与基础配置

Keepalived的热备方式 基于VRRP热备份协议,以软件的方式实现Linux服务器的多机热备份功能.是通过共有的虚拟IP地址(VIP)对外提供服务:每个热备组内只能有一个服务器提供服务,其他服务器处于冗余状态,若当前服务器失效后,则其他处于冗余状态的服务器将接替他的工作(优先级高的),以继续提供服务. ## 漂移地址 ## 虚拟IP地址可以在热备组内的服务器间进行转移,所以也称为漂移IP地址:使用Keepalived时,漂移地址的实现不需要手动建立虚拟接口配置文件,而是由Keepalive

nginx + keepalived 双机热备

序 双机热备是指两台机器都在运行,但并非两台机器同时在提供服务. 当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,且切换的时间非常短. keepalived的工作原理是VRRP——虚拟路由冗余协议. 测试环境如下: ip vip master 192.168.174.135 192.168.174.140 backup 192.168.174.137 192.168.174.140 nginx 安装 sudo apt-get install nginx  查找配置文件位置 s