|
工具研發(fā)者介紹 賀春旸,凡普金科DBA團(tuán)隊(duì)負(fù)責(zé)人,《MySQL管理之道:性能調(diào)優(yōu)、高可用與監(jiān)控》第一、二版作者,曾任職于中國移動飛信、安卓機(jī)鋒網(wǎng)。致力于MariaDB、MongoDB等開源技術(shù)的研究,主要負(fù)責(zé)數(shù)據(jù)庫性能調(diào)優(yōu)、監(jiān)控和架構(gòu)設(shè)計(jì)。 工具下載: https://github.com/hcymysql/mysql_monitor 簡介 目前常用的開源監(jiān)控工具有nagios、zabbix、grafana,但這些是面向?qū)I(yè)DBA使用的,而對于業(yè)務(wù)研發(fā)人員來說,沒有專業(yè)的MySQL理論知識,并且上述監(jiān)控工具均為純英文界面,交互不直觀,那么多的監(jiān)控指標(biāo),你知道有哪些是研發(fā)最關(guān)心的嗎? 所以每次都是DBA通知研發(fā),系統(tǒng)哪塊出了問題,這樣的效率其實(shí)是低下的,我希望把監(jiān)控這塊東西定制化,做成開發(fā)一眼就能看懂的指標(biāo)項(xiàng),純中文頁面,清爽直觀,簡約而不簡單,出了問題報(bào)警信息直接第一時間推送給研發(fā),效率會大大提升,同時也減少了DBA作為中間人傳話的作用(傳達(dá)室大爺角色)。 參考了天兔Lepus的UI風(fēng)格,目前采集了數(shù)據(jù)庫連接數(shù)(具體連接了哪些應(yīng)用程序IP,賬號統(tǒng)計(jì))、QPS/TPS、索引使用率統(tǒng)計(jì),同步復(fù)制狀態(tài)/延遲監(jiān)控??蓪?shí)現(xiàn)微信和郵件報(bào)警。 1)MySQL狀態(tài)監(jiān)控 2)點(diǎn)擊活動連接數(shù),可以查看具體的連接數(shù)統(tǒng)計(jì)信息 3)點(diǎn)擊圖表,可以查看歷史曲線圖 4)主從狀態(tài)監(jiān)控 5)微信報(bào)警 6)郵件報(bào)警 環(huán)境搭建 # yum install httpd mysql php-mysqlnd -y # yum install python-simplejson -y # service httpd start 把https://github.com/hcymysql/mysql_monitor/archive/master.zip安裝包解壓縮到/var/www/html/目錄下。 # cd /var/www/html/mysql_monitor/ # chmod 755 ./mail/sendEmail # chmod 755 ./weixin/wechat.py 注:郵件和微信報(bào)警調(diào)用的第三方工具,所以這里要賦予可執(zhí)行權(quán)限755。 MySQL Monitor監(jiān)控工具搭建 1)導(dǎo)入MySQL Monitor監(jiān)控工具表結(jié)構(gòu)(sql_db庫) # cd /var/www/html/mysql_monitor/ # mysql -uroot -p123456 < mysql_monitor_schema.sql 2)錄入被監(jiān)控主機(jī)的信息 mysql>insert into `mysql_status_info`(`id`,`ip`,`dbname`,`user`,`pwd`,`port`,`monitor`,`send_mail`,`send_mail_to_list`,`send_weixin`,`send_weixin_to_list`,`alarm_threads_running`,`threshold_alarm_threads_running`,`alarm_repl_status`,`threshold_warning_repl_delay`) values (1,'127.0.0.1','sql_db','admin','hechunyang',3306,1,1,'chunyang_he@139.com,chunyang_he@126.com',1,'hechunyang',NULL,NULL,NULL,NULL); 注:以下字段可以按照需求變更:
3)修改conn.php配置文件 # vim /var/www/html/mysql_monitor/conn.php $con = mysqli_connect('127.0.0.1','admin','hechunyang','sql_db','3306') or die('數(shù)據(jù)庫鏈接錯誤'.mysql_error()); 改成你的MySQL Monitor監(jiān)控工具表結(jié)構(gòu)(sql_db庫)連接信息。 4)修改郵件報(bào)警信息 # cd /var/www/html/mysql_monitor/mail/ # vim mail.php system('./mail/sendEmail -f chunyang_he@139.com -t '{$this->send_mail_to_list}' -ssmtp.139.com:25 -u '{$this->alarm_subject}' -o message-charset=utf8 -o message-content-type=html -m '報(bào)警信息:<br><font color='#FF0000'>{$this->alarm_info}</font>' -xu chunyang_he@139.com -xp'123456' -o tls=no');
5)修改微信報(bào)警信息 # cd /var/www/html/mysql_monitor/weixin/ # vim wechat.py 微信企業(yè)號設(shè)置移步https://github.com/X-Mars/Zabbix-Alert-WeChat/blob/master/README.md 看此教程配置。 6)定時任務(wù)每分鐘抓取一次 # crontab -l */1 * * * * cd /var/www/html/mysql_monitor/; /usr/bin/php/var/www/html/mysql_monitor/check_mysql_repl.php > /dev/null 2 >&1 */1 * * * * cd /var/www/html/mysql_monitor/; /usr/bin/php/var/www/html/mysql_monitor/check_mysql_status.php > /dev/null 2 >&1
7)更改頁面自動刷新頻率 vim mysql_status_monitor.php vim mysql_repl_monitor.php <meta http-equiv='refresh' content='600' /> <!-- 頁面刷新時間600秒 --> 默認(rèn)頁面每600秒自動刷新一次。 8)頁面訪問
加一個超鏈接,可方便地接入你們的自動化運(yùn)維平臺里。 下載方式 此工具現(xiàn)通過dbaplus社群免費(fèi)為大家提供下載使用。若使用過程中有任何問題或建議,可隨時與我們聯(lián)系,歡迎大家試用。 登錄以下鏈接即可下載: https://github.com/hcymysql/mysql_monitor 更多開源工具&腳本 詳情及下載:http:///list-142-1.html |
|
|