keepalived雙機熱備主機宕機時傳送郵件
阿新 • • 發佈:2018-12-16
該部落格轉載自 https://blog.csdn.net/kwy15732621629/article/details/76690782
伺服器1和伺服器2:主備關係
當伺服器1宕機時,將自動連線上伺服器2,但這時,需要給我們發一封郵件,這樣才能知道伺服器1宕機了。
直接寫了一個指令碼,然後每次出問題時,就呼叫這個指令碼,就可以傳送郵件了。
指令碼內容
#!/usr/bin/perl -w use Net::SMTP_auth; use strict; my $mailhost = 'smtp.163.com'; my $mailfrom = '傳送郵件的郵箱名字@163.com'; my @mailto = ('接收郵件的郵箱名字@163.com'); my $subject = 'keepalived up on backup'; my $text = "正文\n 151伺服器宕機!"; my $user = '傳送郵件的郵箱名稱.com'; my $passwd = '傳送郵件的郵箱密碼'; &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; }
keepalived 配置檔案修改內容,注:我把指令碼放到了與配置檔案同級目錄下
新增一段:
vrrp_sync_group VG_1 {
group {
VI_1
}
notify_master 指令碼檔名字
}
可進入該指令碼目錄,直接執行指令碼,看看是否傳送郵件成功;若失敗,安裝Net::SMTP_auth模組
安裝方法:
yum -y install perl-CPAN
cpan Net::SMTP_auth