工具研發(fā)者介紹 賀春旸,凡普金科DBA團(tuán)隊(duì)負(fù)責(zé)人,《MySQL管理之道:性能調(diào)優(yōu)、高可用與監(jiān)控》第一、二版作者,曾任職于中國(guó)移動(dòng)飛信、安卓機(jī)鋒網(wǎng)。致力于MariaDB、MongoDB等開(kāi)源技術(shù)的研究,主要負(fù)責(zé)數(shù)據(jù)庫(kù)性能調(diào)優(yōu)、監(jiān)控和架構(gòu)設(shè)計(jì)。 工具下載: https://github.com/hcymysql/mysql_monitor 簡(jiǎn)介 目前常用的開(kāi)源監(jiān)控工具有nagios、zabbix、grafana,但這些是面向?qū)I(yè)DBA使用的,而對(duì)于業(yè)務(wù)研發(fā)人員來(lái)說(shuō),沒(méi)有專(zhuān)業(yè)的MySQL理論知識(shí),并且上述監(jiān)控工具均為純英文界面,交互不直觀,那么多的監(jiān)控指標(biāo),你知道有哪些是研發(fā)最關(guān)心的嗎? 所以每次都是DBA通知研發(fā),系統(tǒng)哪塊出了問(wèn)題,這樣的效率其實(shí)是低下的,我希望把監(jiān)控這塊東西定制化,做成開(kāi)發(fā)一眼就能看懂的指標(biāo)項(xiàng),純中文頁(yè)面,清爽直觀,簡(jiǎn)約而不簡(jiǎn)單,出了問(wèn)題報(bào)警信息直接第一時(shí)間推送給研發(fā),效率會(huì)大大提升,同時(shí)也減少了DBA作為中間人傳話的作用(傳達(dá)室大爺角色)。 參考了天兔Lepus的UI風(fēng)格,目前采集了數(shù)據(jù)庫(kù)連接數(shù)(具體連接了哪些應(yīng)用程序IP,賬號(hào)統(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)擊活動(dòng)連接數(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庫(kù)) # 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ù)庫(kù)鏈接錯(cuò)誤'.mysql_error()); 改成你的MySQL Monitor監(jiān)控工具表結(jié)構(gòu)(sql_db庫(kù))連接信息。 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è)號(hào)設(shè)置移步https://github.com/X-Mars/Zabbix-Alert-WeChat/blob/master/README.md 看此教程配置。 6)定時(shí)任務(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)更改頁(yè)面自動(dòng)刷新頻率 vim mysql_status_monitor.php vim mysql_repl_monitor.php <meta http-equiv='refresh' content='600' /> <!-- 頁(yè)面刷新時(shí)間600秒 --> 默認(rèn)頁(yè)面每600秒自動(dòng)刷新一次。 8)頁(yè)面訪問(wèn)
加一個(gè)超鏈接,可方便地接入你們的自動(dòng)化運(yùn)維平臺(tái)里。 下載方式 此工具現(xiàn)通過(guò)dbaplus社群免費(fèi)為大家提供下載使用。若使用過(guò)程中有任何問(wèn)題或建議,可隨時(shí)與我們聯(lián)系,歡迎大家試用。 登錄以下鏈接即可下載: https://github.com/hcymysql/mysql_monitor 更多開(kāi)源工具&腳本 詳情及下載:http:///list-142-1.html |
|