DBMNG数据库管理与应用

书籍是全世界的营养品。生活里没有书籍,就好像没有阳光;智慧里没有书籍,就好像鸟儿没有翅膀。
当前位置:首页 > MySQL > 应用案例

MySQL报警脚本

MySQL Server 邮件报警

实现方法:

根据系统的load和session来度量系统现在是否负载过高,如果发现负载过高就邮件报警(当然也可以短线报警),把系统当前状态、运行的慢sql、锁状态以HTML邮件报警,
还可以携带附件。


基本用法:

[root@skatedb66 tmp]# ./dbmysqlalarm --help
usage: Alarm Mysql server performance v0.1 ,(C) Copyright Skate 2014
[-h] --dhost DHOST --duser DUSER --dpasswd DPASSWD --dport DPORT
--dname DNAME --mail MAIL --mhost MHOST --muser MUSER --mpasswd MPASSWD
--msubject MSUBJECT --mconfig MCONFIG --mkey MKEY --mfield MFIELD
--attach ATTACH --dload DLOAD --dsession DSESSION

optional arguments:
-h, --help show this help message and exit
--dhost DHOST = Monitored database ip address
--duser DUSER = Monitored database user
--dpasswd DPASSWD = Monitored database password
--dport DPORT = Monitored database port
--dname DNAME = Monitored database name
--mail MAIL = Monitored database name
--mhost MHOST = Mail server host address
--muser MUSER = Mailbox username
--mpasswd MPASSWD = Mailbox password
--msubject MSUBJECT = Mail subject
--mconfig MCONFIG = Mail recipient configuration file
--mkey MKEY = The key that mail recipient configuration file
--mfield MFIELD = The field that mail recipient configuration file
--attach ATTACH = Email attachment
--dload DLOAD = Alarm threshold load
--dsession DSESSION = Alarm threshold session of database


例子:

# ./dbmysqlalarm \
--mconfig=/tmp/dist/list \
--muser=dba \
--mpasswd=pass\
--mhost=localhost \
--msubject='Real-time Snapshot of Database' \
--attach='/tmp/dist/list' \
--dhost=127.0.0.1 \
--dpasswd=passwd \
--dport=3306 \
--dname=mysql \
--mkey=dba \
--mfield=email \
--mail=dba@skate.com \
--dload=0 \
--dsession=0

 

参数说明

--mconfig=/tmp/dist/list ///指定配置文件的路径,如果有配置中心的话,完全可以不用配置文件,参考:http://blog.csdn.net/wyzxg/article/details/41972683
--muser=dba ///邮箱的用户名
--mpasswd=passwd ///邮箱的密码
--mhost=localhost ///邮件服务器的地址,如果用本机发邮件,请指定localhost
--msubject='Real-time Snapshot of Database' /// 邮件的标题
--attach='/tmp/dist/list' ///附件的路径名
--dhost=127.0.0.1 ///数据库的IP地址
--duser=root ///数据库的用户名
--dpasswd=passwd ///数据库的密码
--dport=3306 ///数据库的端口号
--dname=mysql ///连接的数据库名,不对数据库做任何操作,这里指定mysql,当然你也可以创建个test库
--mkey=dba ///配置文件的key
--mfield=email ///配置文件的field
--mail=dba@skate.com ///指定的发送邮件的邮箱地址
--dload=0 ///触发报警的load阀值
--dsession=0 ///触发报警的数据库session数量


注意,首先用mysql -u -p -h -P 测试是否可以连接数据库

 

配置文件格式
# more list
[command]
mysqlmon=/tmp/dist/mysqlmon

[phone]
dba:135******;135********;123*********
skate:138*******

[email]
dba:skate1@skate.com;skate2@skate.com;skate3@skate.com
skate:skate@skate.com


部署方法

直接解压缩下载文件,然后把解压后的文件mysqlmon的绝对路径更新到配置文件即可。

# tar -zxvf dbalarm.tar.gz

 

支持版本:因为这里引用了"anysql"大侠的mysqlmon,经我测试发现mysqlmon目前在centos6下支持5.5.29以上的mysql(和anysql确认,是因为他用5.6客户端编译引起这个问题的).。anysql大哥的工具非常好用,大家也可以适用下。

 

来张报警邮件的图片:

\

 

 

------end-----

 

 

本站文章内容,部分来自于互联网,若侵犯了您的权益,请致邮件chuanghui423#sohu.com(请将#换为@)联系,我们会尽快核实后删除。
Copyright © 2006-2023 DBMNG.COM All Rights Reserved. Powered by DEVSOARTECH            豫ICP备11002312号-2

豫公网安备 41010502002439号