安裝配置MySQLMTOP來監(jiān)控MySQL運行性能的教程
一、環(huán)境說明
1、服務器角色
2、系統環(huán)境
CentOS 6.2 x86_64
3、環(huán)境要求
(1)、MySQL 5.0 及以上 (用來存儲監(jiān)控系統采集的數據)
(2)、Apache 2.2 及以上 (WEB 服務器運行服務器)
(3)、PHP 5.3 以上 (WEB 界面)
(4)、Python 2 (推薦 2.7 版本,其他版本未做測試,執(zhí)行數據采集和報警任務)
(5)、MySQLdb for python (Python 連接 MySQL 的接口)
二、Python基礎環(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 版本過高,導致 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)控機數據庫并授權
# 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、導入SQL文件夾里的SQL文件(表結構和數據文件)
# 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)控機上創(chuàng)建授權賬號
# 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文件進行格式轉換,否則會運行失敗 )
5、測試MySQL連接是否正常
# cd /usr/local/mysqlmtop && ./test_mysql.py
MySQLDB OK!
6、啟動監(jiān)控系統
# 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 即可訪問(初始授權賬號:admin admin)
8、監(jiān)控項設置
點擊管理中心 --> 應用管理 添加應用
點擊管理中心 --> 服務器管理 添加 MySQL 服務器
四、慢查詢配置
1、在被監(jiān)控服務器安裝如下組件
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)控服務器(10.160.22.14)上添加如下 crontab 項
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)控服務器(10.160.22.47)上添加如下 crontab 項
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
以上數據表 mysql_slow_query_review、mysql_slow_query_review_history 的后綴為主機 ID,如圖:
5、為被監(jiān)控的服務器開啟慢查詢
6、效果展示
三、工具組件配置
1、在被監(jiān)控服務器(172.18.35.29)上添加如下 crontab 項
*/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)控服務器上的設置
NET-SNMP服務安裝(注意版本):
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 ......
服務啟動:
# /usr/local/snmp/sbin/snmpd -c /usr/local/snmp/share/snmp/snmpd.conf
NET-SNMP服務安裝:
# 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)控服務:
# mtopctl stop && mtopctl start
問題修正(否則無法獲取內存信息):
# 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 內容添加:
*/1 * * * * cd /usr/local/mysqlmtop; ./check_linux_resource.py >/dev/null 2>&1
效果展示
- mysql服務性能優(yōu)化—my.cnf_my.ini配置說明詳解(16G內存)
- MySQL性能監(jiān)控軟件Nagios的安裝及配置教程
- mysql性能監(jiān)控工具Innotop簡介及配置
- MySQL性能優(yōu)化之Open_Table配置參數的合理配置建議
- MySQL性能優(yōu)化之table_cache配置參數淺析
- MySQL性能優(yōu)化之max_connections配置參數淺析
- MySQL性能優(yōu)化配置參數之thread_cache和table_cache詳解
- MySQL性能優(yōu)化之路---修改配置文件my.cnf
- MySQL配置文件my.cnf中文詳解附mysql性能優(yōu)化方法分享
- 可以改善mysql性能的InnoDB配置參數
- 影響MySQL性能的五大配置參數
- 安裝MySQL后,需要調整的10個性能配置項
相關文章
windows10+mysql8.0.11zip安裝教程詳解
這篇文章主要介紹了windows10+mysql8.0.11zip安裝教程詳解,本文給大家介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下2018-05-05MySQL binlog_ignore_db 參數的具體使用
這篇文章主要介紹了MySQL binlog_ignore_db 參數的具體作用,幫助大家更好的理解和使用MySQL數據庫,感興趣的朋友可以了解下2020-12-12MySQL提示The InnoDB feature is disabled需要開啟InnoDB的解決方法
這篇文章主要介紹了MySQL提示The InnoDB feature is disabled需要開啟InnoDB的解決方法,簡單分析了MySQL數據庫開啟InnoDB引擎的實現技巧,需要的朋友可以參考下2016-01-01Centos7下安裝MySQL8.0.23的步驟(小白入門級別)
這篇文章主要介紹了Centos7下安裝MySQL8.0.23的步驟(小白入門級別),本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01