程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQLServer報警腳本

MySQLServer報警腳本

編輯:MySQL綜合教程

MySQLServer報警腳本


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 \
[email protected] \
--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
[email protected] ///指定的發送郵件的郵箱地址
--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:[email protected];[email protected];[email protected]
skate:[email protected]


部署方法

直接解壓縮下載文件,然後把解壓後的文件mysqlmon的絕對路徑更新到配置文件即可。

# tar -zxvf dbalarm.tar.gz

 

支持版本:因為這裡引用了"anysql"大俠的mysqlmon,經我測試發現mysqlmon目前在centos6下支持5.5.29以上的mysql(和anysql確認,是因為他用5.6客戶端編譯引起這個問題的).。anysql大哥的工具非常好用,大家也可以適用下。

 

來張報警郵件的圖片:

\

 

 

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

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved