分享

Mysqlreport

 老猪s图书馆 2014-05-15
Mysqlreport是一个十分小巧而且好用的mysql性能监控工具,目的是每周发送所有MySQL服务器的性能指标到邮箱中。


工具下载地址:

链接:http:///OkPUH2 (密码:BM5O

1、下载解压:

 
 

mysqlreport为工具主程序,用来获取mysql的性能数据,Report-AllDB-Status.sh是自己写的脚本,主要针对不同的mysqlserver执行mysqlreport命令,内容如下:


#!/bin/bash

 

MYSQLREPORTPATH=/usr/loadlogshell/mysqlreport-3.5

#SOCKE_TPATH=/var/lib/mysql/mysql.sock

PORT=3306

MYSQLUSER=loadlog

MYSQLPASS=6529SiKwWXxj6985

 

##FD

FD_CBT1_MemberDB_Master='10.168.104.44'

FD_CBT1_MemberDB_Slave='10.168.104.43'

 

FD_CBT1_GameDB1_Master='10.168.104.46'

FD_CBT1_GameDB1_Slave='10.168.104.45'

FD_CBT1_GameDB2_Master='10.168.104.48'

FD_CBT1_GameDB2_Slave='10.168.104.47'

 

FD_CBT1_ShopDB_Master='10.168.104.50'

FD_CBT1_ShopDB_Slave='10.168.104.49'

 

FD_MYSQLUSER='mysqlreportor'

FD_MYSQLPASS='6529SiKwWXxj6985'

 

./mysqlreport --user ${FD_MYSQLUSER}  --host ${FD_CBT1_MemberDB_Master} --password ${FD_MYSQLPASS} --port 13306 --email ${RECEIVELIST}

./mysqlreport --user ${FD_MYSQLUSER}  --host ${FD_CBT1_MemberDB_Slave} --password ${FD_MYSQLPASS} --port 13306 --email ${RECEIVELIST}

./mysqlreport --user ${FD_MYSQLUSER}  --host ${FD_CBT1_GameDB1_Master} --password ${FD_MYSQLPASS} --port 13306 --email ${RECEIVELIST}

./mysqlreport --user ${FD_MYSQLUSER}  --host ${FD_CBT1_GameDB1_Slave} --password ${FD_MYSQLPASS} --port 13306 --email ${RECEIVELIST}

./mysqlreport --user ${FD_MYSQLUSER}  --host ${FD_CBT1_GameDB2_Master} --password ${FD_MYSQLPASS} --port 13306 --email ${RECEIVELIST}

./mysqlreport --user ${FD_MYSQLUSER}  --host ${FD_CBT1_GameDB2_Slave} --password ${FD_MYSQLPASS} --port 13306 --email ${RECEIVELIST}

./mysqlreport --user ${FD_MYSQLUSER}  --host ${FD_CBT1_ShopDB_Master} --password ${FD_MYSQLPASS} --port 13306 --email ${RECEIVELIST}

./mysqlreport --user ${FD_MYSQLUSER}  --host ${FD_CBT1_ShopDB_Slave} --password ${FD_MYSQLPASS} --port 13306 --email ${RECEIVELIST}


2、配置和使用方式:

由于mysqlreport默认使用sendmail发邮件,为了不安装插件可以直接发邮件,先改为使用mail -s来发邮件:

修改服务器上的mail.rc

1vi /etc/mail.rc

       在最后添加下面两行:

       set from=DWMonitor@dna.sdo.com

       set smtp=116.211.2.152

        

 

2)在smtp server  116.211.2.152上添加此台服务器的IP,允许此IP发送邮件


修改mysqlreport的原始脚本,(mysqlreport默认使用的是sendmail命令,所以需要更改mysqlreport中的代码:)

原始

##============================================原始代码==========================================================

sub email_report # Email given report to $op{'email'}

{

   print "email_report\n" if $op{debug};

 

   return if $WIN;

 

   my $report = shift;

 

   open SENDMAIL, "|/usr/sbin/sendmail -t";

   print SENDMAIL "From: mysqlreport\n";

   print SENDMAIL "To: $op{email}\n";

   print SENDMAIL "Subject: MySQL status report on " . ($mycnf{'host'} || 'localhost') . "\n\n";

   print SENDMAIL `cat $report`;

   close SENDMAIL;

}

修改后

##=============================================更改为===========================================================

    sub email_report # Email given report to $op{'email'}

{

   print "email_report\n" if $op{debug};

 

   return if $WIN;

 

   my $report = shift;

 

        open SENDMAIL, "|/bin/mail -s \"MySQL Status report on " . ($mycnf{'host'} || 'localhost') ." \" $op{email}";

        print SENDMAIL `cat $report`;

        close SENDMAIL;

}

##=============================================================================================================


3、新增被监控服务器

在被监控的MySQL上创建账号:

例如:

GRANT ALL PRIVILEGES ON *.* TO 'mysqlreportor'@'10.128.20.161' IDENTIFIED BY "6529SiKwWXxj6985" WITH GRANT OPTION;

flush privileges;


再修改Report-AllDB-Status.sh即可。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约