安裝配置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 及以上 (用來存儲(chǔ)監(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 版本,其他版本未做測(cè)試,執(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ù)庫(kù)并授權(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)賬號(hào)
# 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命令對(duì)*.py、*.sh、mtopctl文件進(jìn)行格式轉(zhuǎn)換,否則會(huì)運(yùn)行失敗 )
5、測(cè)試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)賬號(hào):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簡(jiǎn)介及配置
- 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)文章
windows10+mysql8.0.11zip安裝教程詳解
這篇文章主要介紹了windows10+mysql8.0.11zip安裝教程詳解,本文給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-05-05禁止mysql做域名解析(解決遠(yuǎn)程訪問mysql時(shí)很慢)
當(dāng)遠(yuǎn)程訪問mysql時(shí),mysql會(huì)解析域名,會(huì)導(dǎo)致訪問速度很慢2010-04-04MySQL binlog_ignore_db 參數(shù)的具體使用
這篇文章主要介紹了MySQL binlog_ignore_db 參數(shù)的具體作用,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下2020-12-12MySQL提示The InnoDB feature is disabled需要開啟InnoDB的解決方法
這篇文章主要介紹了MySQL提示The InnoDB feature is disabled需要開啟InnoDB的解決方法,簡(jiǎn)單分析了MySQL數(shù)據(jù)庫(kù)開啟InnoDB引擎的實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-01-01Centos7下安裝MySQL8.0.23的步驟(小白入門級(jí)別)
這篇文章主要介紹了Centos7下安裝MySQL8.0.23的步驟(小白入門級(jí)別),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01mysql unique key在查詢中的使用與相關(guān)問題
今天小編就為大家分享一篇關(guān)于mysql unique key在查詢中的使用與相關(guān)問題,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-04-04MySQL數(shù)據(jù)庫(kù)的23個(gè)注意事項(xiàng)
使用MySQL,安全問題不能不注意。以下是MySQL提示的23個(gè)注意事項(xiàng)2010-03-03