安裝配置MySQLMTOP來監控MySQL運行效能的教程_Mysql

來源:互聯網
上載者:User

一、環境說明
1、伺服器角色

2、系統內容
CentOS 6.2 x86_64

3、環境要求
(1)、MySQL 5.0 及以上       (用來儲存監控系統採集的資料)
(2)、Apache 2.2 及以上        (WEB 伺服器運行伺服器)
(3)、PHP 5.3 以上                (WEB 介面)
(4)、Python 2                       (推薦 2.7 版本,其他版本未做測試,執行資料擷取和警示任務)
(5)、MySQLdb for python     (Python 串連 MySQL 的介面)

二、Python基礎環境部署

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 installhttps://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.cfgmysql_config =/usr/local/mysql/bin/mysql_config……# python setup.py build# python setup.py install


三、mysqlmtop環境部署
1、建立監控機資料庫並授權

# 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、在被監控機上建立授權帳號

# 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、啟動監控系統

# 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、監控項設定
點擊管理中心 --> 應用管理 添加應用

點擊管理中心 --> 伺服器管理 添加 MySQL 伺服器

四、慢查詢配置
1、在被監控伺服器安裝如下組件
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 = 1slow_query_log_file = /data/dbdata/slow_query.loglong_query_time = 1

3、在被監控伺服器(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、在被監控伺服器(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、為被監控的伺服器開啟慢查詢

6、效果展示

三、工具組件配置
1、在被監控伺服器(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、效果展示

四、資源監控配置
1、被監控伺服器上的設定
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.confcom2sec notConfigUser 172.18.35.29   mysqlmtopgroup notConfigGroup v1  notConfigUsergroup notConfigGroup v2c notConfigUsergroup notConfigGroup usm notConfigUserview all  included .1                80access notConfigGroup ""   any    noauth  exact all none none......

服務啟動:

# /usr/local/snmp/sbin/snmpd -c /usr/local/snmp/share/snmp/snmpd.conf
2、監控伺服器上的設定
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.shhost="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"

重啟監控服務:

# mtopctl stop && mtopctl start

問題修正(否則無法擷取記憶體資訊):

# vim /usr/local/mysqlmtop/check_linux_resource.shtotalmem=`/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

效果展示

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.