标签:mha send_report mha邮件报警 mysql mha
当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='from@163.com';
my $mail_user='from@163.com';
my $mail_pass='password';
#my $mail_to=['to1@qq.com','to2@qq.com'];
my $mail_to='to@qq.com';
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我们收到的邮件如下:
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:mha send_report mha邮件报警 mysql mha
原文地址:http://blog.csdn.net/yanggd1987/article/details/47610417