mysql高可用之MHA--郵件報警
阿新 • • 發佈:2020-11-17
當mha進行failover 完成或由於錯誤停止時,我們可以使用send_report以郵件報警的方式來獲得failover報告,以便我們及時瞭解現在的資料庫狀態。 首先需要修改指令碼: [root@rd-mysql-test4 mha]# cat /usr/local/bin/send_report #!/usr/bin/perl # Copyright (C) 2011 DeNA Co.,Ltd. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ## Note: This is a sample script and is not complete. Modify the script based on your environment.use strict; use warnings FATAL => 'all'; use Mail::Sender; use Getopt::Long; #new_master_host and new_slave_hosts are set only when recovering master succeeded my ( $dead_master_host, $new_master_host, $new_slave_hosts, $subject, $body ); my $smtp='smtp.163.com'; my $mail_from='[email protected]'; my $mail_user='[email protected]'; my $mail_pass='password'; #my $mail_to=['[email protected]','[email protected]']; my $mail_to='[email protected]'; GetOptions( 'orig_master_host=s' => \$dead_master_host, 'new_master_host=s' => \$new_master_host, 'new_slave_hosts=s' => \$new_slave_hosts, 'subject=s' => \$subject, 'body=s' => \$body, ); # Do whatever you want here mailToContacts($smtp,$mail_from,$mail_user,$mail_pass,$mail_to,$subject,$body); sub mailToContacts { my ($smtp, $mail_from, $mail_user, $mail_pass, $mail_to, $subject, $msg ) = @_; open my $DEBUG, ">/var/log/masterha/app1/mail.log" or die "Can't open the debug file:$!\n"; my $sender = new Mail::Sender { ctype => 'text/plain;charset=utf-8', encoding => 'utf-8', smtp => $smtp, from => $mail_from, auth => 'LOGIN', TLS_allowed => '0', authid => $mail_user, authpwd => $mail_pass, to => $mail_to, subject => $subject, debug => $DEBUG }; $sender->MailMsg( { msg => $msg, debug => $DEBUG } ) or print $Mail::Sender::Error; return 1; } exit 0; ======================================================================================================================================== ======================================================================================================================================== 然後修改配置檔案,只需新增report_script即可 [server default] manager_log=/var/log/masterha/app1/manager.log manager_workdir=/var/log/masterha/app1 master_binlog_dir=/data/mysql master_ip_failover_script=/usr/local/bin/master_ip_failover master_ip_online_change_script=/usr/local/bin/master_ip_online_change password=123456 ping_interval=1 remote_workdir=/tmp repl_password=123456 repl_user=rep report_script=/usr/local/bin/send_report ssh_port=22 ssh_user=root user=mha [server1] hostname=10.10.10.56 port=3306 [server2] hostname=10.10.10.57 port=3306 [server3] hostname=10.10.10.58 port=3306 最後開啟mha監控,停止master來觸發failover,在最後我們可以看到生成了failover報告並send_report。 ----- Failover Report ----- app1: MySQL Master failover 10.10.10.57(10.10.10.57:3306) to 10.10.10.56(10.10.10.56:3306) succeeded Master 10.10.10.57(10.10.10.57:3306) is down! Check MHA Manager logs at rd-mysql-test4:/var/log/masterha/app1/manager.log for details. Started automated(non-interactive) failover. Invalidated master IP address on 10.10.10.57(10.10.10.57:3306) The latest slave 10.10.10.56(10.10.10.56:3306) has all relay logs for recovery. Selected 10.10.10.56(10.10.10.56:3306) as a new master. 10.10.10.56(10.10.10.56:3306): OK: Applying all logs succeeded. 10.10.10.56(10.10.10.56:3306): OK: Activated master IP address. 10.10.10.58(10.10.10.58:3306): This host has the latest relay log events. Generating relay diff files from the latest slave succeeded. 10.10.10.58(10.10.10.58:3306): OK: Applying all logs succeeded. Slave started, replicating from 10.10.10.56(10.10.10.56:3306) 10.10.10.56(10.10.10.56:3306): Resetting slave info succeeded. Master failover to 10.10.10.56(10.10.10.56:3306) completed successfully. Thu Aug 13 11:27:36 2015 - [info] Sending mail.. Unknown option: conf 我們收到的郵件如下: