安裝配置MySQLMTOP來監(jiān)控MySQL運(yùn)行性能的教程
一、環(huán)境說明
1、服務(wù)器角色

2、系統(tǒng)環(huán)境
CentOS 6.2 x86_64
3、環(huán)境要求
(1)、MySQL 5.0 及以上 (用來存儲監(jiān)控系統(tǒng)采集的數(shù)據(jù))
(2)、Apache 2.2 及以上 (WEB 服務(wù)器運(yùn)行服務(wù)器)
(3)、PHP 5.3 以上 (WEB 界面)
(4)、Python 2 (推薦 2.7 版本,其他版本未做測試,執(zhí)行數(shù)據(jù)采集和報(bào)警任務(wù))
(5)、MySQLdb for python (Python 連接 MySQL 的接口)
二、Python基礎(chǔ)環(huán)境部署
https://www.python.org/ftp/python/2.7.6/Python-2.7.6.tgz
# tar xvzf Python-2.7.6.tgz # cd Python-2.7.6 # ./configure --prefix=/usr/local/python2.7 --enable-shared # make && make install # echo '/usr/local/python2.7/lib' >> /etc/ld.so.conf # /sbin/ldconfig # mv /usr/bin/python /usr/bin/python_old # ln -s /usr/local/python2.7/bin/python2.7 /usr/bin/python
為避免 python 版本過高,導(dǎo)致 yum 不可以,需做如下修改:
# vim /usr/bin/yum
由 #!/usr/bin/python 修改為 #!/usr/bin/python_old
http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz
# tar xvzf distribute-0.6.28.tar.gz # cd distribute-0.6.28 # python setup.py install https://github.com/farcepest/MySQLdb1/archive/MySQLdb-1.2.5.tar.gz # tar xvzf MySQLdb1-MySQLdb-1.2.5.tar.gz # cd MySQLdb1-MySQLdb-1.2.5 # vim site.cfg mysql_config =/usr/local/mysql/bin/mysql_config …… # python setup.py build # python setup.py install
三、mysqlmtop環(huán)境部署
1、創(chuàng)建監(jiān)控機(jī)數(shù)據(jù)庫并授權(quán)
# mysql -uroot -e "create database mysqlmtop default character set utf8;" # mysql -uroot -e "grant all privileges on mysqlmtop.* to 'mtop_user'@'%' identified by '123456';" # mysql -uroot -e "flush privileges;"
2、導(dǎo)入SQL文件夾里的SQL文件(表結(jié)構(gòu)和數(shù)據(jù)文件)
# unzip mysqlmtop_v2.1.zip # cd mysqlmtop_v2.1 # mysql -uroot mysqlmtop < sql/mysqlmtop.sql # mysql -uroot mysqlmtop < sql/mysqlmtop_data.sql
3、在被監(jiān)控機(jī)上創(chuàng)建授權(quán)賬號
# mysql -uroot -e "grant select,super,process on *.* to 'monitor'@'172.18.35.29' identified by 'monitor';" # mysql -uroot -e "flush privileges;"
4、mysqlmtop配置
# cp -a mysqlmtop /usr/local/ # cp -a frontweb /data/web/data/ # cd /usr/local/mysqlmtop/ # vim etc/config.ini

# chmod +x *.py *.sh mtopctl # ln -s /usr/local/mysqlmtop/mtopctl /usr/local/bin
( 注意:需要使用dos2unix命令對*.py、*.sh、mtopctl文件進(jìn)行格式轉(zhuǎn)換,否則會(huì)運(yùn)行失敗 )
5、測試MySQL連接是否正常
# cd /usr/local/mysqlmtop && ./test_mysql.py
MySQLDB OK!
6、啟動(dòng)監(jiān)控系統(tǒng)
# mtopctl start

7、前端WEB展示層配置
# cd /data/web/data/frontweb/ # chown -R nobody:nogroup /data/web/data/frontweb # chmod -R 750 /data/web/data/frontweb # vim application/config/database.php

# vim /data/web/conf/mysqlmtop.conf
<VirtualHost *:80>
DocumentRoot /data/web/data/frontweb
ServerName mysqlmtop.test.com
DirectoryIndex index.php
AddDefaultCharset UTF-8
<LocationMatch "/data/web/.*\.php$">
Order Deny,Allow
Deny from All
</LocationMatch>
<Directory />
AllowOverride ALL
</Directory>
</VirtualHost>
# service httpd graceful
然后本地hosts綁定(172.18.35.29 mysqlmtop.test.com)
通過 http://mysqlmtop.test.com 即可訪問(初始授權(quán)賬號:admin admin)
8、監(jiān)控項(xiàng)設(shè)置
點(diǎn)擊管理中心 --> 應(yīng)用管理 添加應(yīng)用

點(diǎn)擊管理中心 --> 服務(wù)器管理 添加 MySQL 服務(wù)器

四、慢查詢配置
1、在被監(jiān)控服務(wù)器安裝如下組件
http://cpan.metacpan.org/authors/id/T/TI/TIMB/DBI-1.628.tar.gz
# tar xvzsf DBI-1.628.tar.gz # cd DBI-1.628 # perl Makefile.PL # make && make install
http://search.cpan.org/CPAN/authors/id/C/CA/CAPTTOFU/DBD-mysql-4.024.tar.gz
# tar xvzf DBD-mysql-4.024.tar.gz # cd DBD-mysql-4.024 # perl Makefile.PL --mysql_config=/usr/local/mysql/bin/mysql_config --with-mysql=/usr/local/mysql # make && make install
http://search.cpan.org/CPAN/authors/id/S/SU/SULLR/IO-Socket-SSL-1.972.tar.gz
# tar xvzf IO-Socket-SSL-1.972.tar.gz # cd IO-Socket-SSL-1.972 # perl Makefile.PL # make && make install
http://www.percona.com/redir/downloads/percona-toolkit/LATEST/percona-toolkit-2.2.7.tar.gz
# tar xvzf percona-toolkit-2.2.7.tar.gz # cd percona-toolkit-2.2.7 # perl Makefile.PL # make && make install
2、開啟 MySQL 本身的慢查詢功能
slow_query_log = 1 slow_query_log_file = /data/dbdata/slow_query.log long_query_time = 1
3、在被監(jiān)控服務(wù)器(10.160.22.14)上添加如下 crontab 項(xiàng)
00 * * * * /usr/bin/pt-query-digest --user=mtop_user --password=123456 --port=3306 --review h=172.18.35.29,D=mysqlmtop,t=mysql_slow_query_review_4 --history h=172.18.35.29,D=mysqlmtop,t=mysql_slow_query_review_history_4 --no-report --limit=0% /data/dbdata/slow_query.log >/dev/null 2>&1
4、在被監(jiān)控服務(wù)器(10.160.22.47)上添加如下 crontab 項(xiàng)
00 * * * * /usr/bin/pt-query-digest --user=mtop_user --password=123456 --port=3306 --review h=172.18.35.29,D=mysqlmtop,t=mysql_slow_query_review_5 --history h=172.18.35.29,D=mysqlmtop,t=mysql_slow_query_review_history_5 --no-report --limit=0% /data/dbdata/slow_query.log >/dev/null 2>&1
以上數(shù)據(jù)表 mysql_slow_query_review、mysql_slow_query_review_history 的后綴為主機(jī) ID,如圖:

5、為被監(jiān)控的服務(wù)器開啟慢查詢

6、效果展示

三、工具組件配置
1、在被監(jiān)控服務(wù)器(172.18.35.29)上添加如下 crontab 項(xiàng)
*/30 * * * * cd /usr/local/mysqlmtop; ./check_mysql_widget_bigtable.py >/dev/null 2>&1 */1 * * * * cd /usr/local/mysqlmtop; ./check_mysql_widget_hit_rate.py >/dev/null 2>&1 */1 * * * * cd /usr/local/mysqlmtop; ./check_mysql_widget_connect.py >/dev/null 2>&1
2、效果展示

四、資源監(jiān)控配置
1、被監(jiān)控服務(wù)器上的設(shè)置
NET-SNMP服務(wù)安裝(注意版本):
ftp://ftp.fi.freebsd.org/pub/FreeBSD/ports/distfiles/net-snmp-5.3.2.tar.gz
# tar xvzf net-snmp-5.3.2.tar.gz # cd net-snmp-5.3.2 # ./configure --prefix=/usr/local/snmp \ --enable-mfd-rewrites \ --with-default-snmp-version="2" \ --with-sys-contact="lovezym5@qq.com" \ --with-sys-location="China" \ --with-logfile="/var/log/snmpd.log" \ --with-persistent-directory="/var/net-snmp" # make && make install # cp EXAMPLE.conf /usr/local/snmp/share/snmp/snmpd.conf # vim /usr/local/snmp/share/snmp/snmpd.conf com2sec notConfigUser 172.18.35.29 mysqlmtop group notConfigGroup v1 notConfigUser group notConfigGroup v2c notConfigUser group notConfigGroup usm notConfigUser view all included .1 80 access notConfigGroup "" any noauth exact all none none ......
服務(wù)啟動(dòng):
# /usr/local/snmp/sbin/snmpd -c /usr/local/snmp/share/snmp/snmpd.conf
NET-SNMP服務(wù)安裝:
# tar xvzf net-snmp-5.3.2.tar.gz # cd net-snmp-5.3.2 # ./configure --prefix=/usr/local/snmp \ --enable-mfd-rewrites \ --with-default-snmp-version="2" \ --with-sys-contact="lovezym5@qq.com" \ --with-sys-location="China" \ --with-logfile="/var/log/snmpd.log" \ --with-persistent-directory="/var/net-snmp" # make && make install # cd /usr/local/mysqlmtop # ln -s /usr/local/snmp/bin/snmpwalk /usr/bin/snmpwalk # ln -s /usr/local/snmp/bin/snmpdf /usr/bin/snmpdf # vim /usr/local/mysqlmtop/check_linux_resource.sh host="172.18.35.29" port="3306" user="mtop_user" password="123456" dbname="mysqlmtop" ...... # vim /usr/local/mysqlmtop/etc/config.ini [linux_server] server_ip="10.160.22.14|10.160.22.47"
重啟監(jiān)控服務(wù):
# mtopctl stop && mtopctl start
問題修正(否則無法獲取內(nèi)存信息):
# vim /usr/local/mysqlmtop/check_linux_resource.sh
totalmem=`/usr/bin/snmpdf -v1 -c mysqlmtop ${ip} | awk '/Real Memory/ {print $3}'`
usedmem=`/usr/bin/snmpdf -v1 -c mysqlmtop ${ip} | awk '/Real Memory/ {print $4}'`
crontab 內(nèi)容添加:
*/1 * * * * cd /usr/local/mysqlmtop; ./check_linux_resource.py >/dev/null 2>&1
效果展示

- mysql服務(wù)性能優(yōu)化—my.cnf_my.ini配置說明詳解(16G內(nèi)存)
- MySQL性能監(jiān)控軟件Nagios的安裝及配置教程
- mysql性能監(jiān)控工具Innotop簡介及配置
- MySQL性能優(yōu)化之Open_Table配置參數(shù)的合理配置建議
- MySQL性能優(yōu)化之table_cache配置參數(shù)淺析
- MySQL性能優(yōu)化之max_connections配置參數(shù)淺析
- MySQL性能優(yōu)化配置參數(shù)之thread_cache和table_cache詳解
- MySQL性能優(yōu)化之路---修改配置文件my.cnf
- MySQL配置文件my.cnf中文詳解附mysql性能優(yōu)化方法分享
- 可以改善mysql性能的InnoDB配置參數(shù)
- 影響MySQL性能的五大配置參數(shù)
- 安裝MySQL后,需要調(diào)整的10個(gè)性能配置項(xiàng)
相關(guān)文章
MySQL將多條數(shù)據(jù)合并成一條的完整代碼示例
我們在操作數(shù)據(jù)的時(shí)候,有時(shí)候需要把多行數(shù)據(jù),拼接成一行,下面這篇文章主要給大家介紹了關(guān)于MySQL將多條數(shù)據(jù)合并成一條的完整代碼示例,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-05-05
MySQL select count(*)計(jì)數(shù)很慢優(yōu)化方案
這篇文章主要介紹了MySQL select count(*)計(jì)數(shù)很慢優(yōu)化方案,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08
windows下安裝mysql8.0.18的教程(社區(qū)版)
本文章簡單介紹一下mysql在windows下的安裝方式,主要介紹了mysql社區(qū)版8.0.18版本,本文給大家介紹的非常詳細(xì),需要的朋友參考下吧2020-01-01
Windows10下mysql 8.0.19 winx64安裝教程及修改初始密碼
這篇文章主要為大家詳細(xì)介紹了Windows10下mysql 8.0.19 winx64安裝教程及修改初始密碼,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02
SQL中CONVERT轉(zhuǎn)換函數(shù)的簡單使用方法
CONVERT()函數(shù)對于簡單類型轉(zhuǎn)換,CONVERT()函數(shù)和CAST()函數(shù)的功能相同,只是語法不同,下面這篇文章主要給大家介紹了關(guān)于SQL中CONVERT轉(zhuǎn)換函數(shù)的簡單使用方法,需要的朋友可以參考下2024-01-01
使用Shell腳本進(jìn)行MySql權(quán)限修改的實(shí)現(xiàn)教程
原先數(shù)據(jù)配置文件中有bind-address=127.0.0.1,注釋掉此配置后,原數(shù)據(jù)庫中默認(rèn)帶%root的權(quán)限,現(xiàn)在需要通過腳本實(shí)現(xiàn)白名單列表中的ip添加權(quán)限允許訪問數(shù)據(jù)庫,本文給大家介紹了使用Shell腳本進(jìn)行MySql權(quán)限修改的實(shí)現(xiàn)教程,需要的朋友可以參考下2024-03-03

