mysql mtop 使用_MYSQLMTOP监控环境搭建
MySQLMTOP是一個(gè)由Python+PHP開(kāi)發(fā)的MySQL企業(yè)級(jí)監(jiān)控系統(tǒng)。系統(tǒng)由Python實(shí)現(xiàn)多進(jìn)程數(shù)據(jù)采集和告警,PHP實(shí)現(xiàn)WEB展示和管理。最重要是MySQL服務(wù)器無(wú)需安裝任何Agent,只需在監(jiān)控WEB界面配置相關(guān)數(shù)據(jù)庫(kù)信息
功能非常強(qiáng)大:
可對(duì)上百臺(tái)MySQL數(shù)據(jù)庫(kù)的狀態(tài)、連接數(shù)、QTS、TPS、數(shù)據(jù)庫(kù)流量、復(fù)制、性能等進(jìn)行時(shí)時(shí)監(jiān)控
能在數(shù)據(jù)庫(kù)偏離設(shè)定的正常運(yùn)行閥值(如連接異常,復(fù)制異常,復(fù)制延遲)?時(shí)發(fā)送告警郵件通知到DBA進(jìn)行處理
對(duì)歷史數(shù)據(jù)歸檔,通過(guò)圖表展示出數(shù)據(jù)庫(kù)近期狀態(tài),以便DBA和開(kāi)發(fā)人員能對(duì)遇到的問(wèn)題進(jìn)行分析和診斷
系統(tǒng)主要由儀表盤(pán)、狀態(tài)監(jiān)控、進(jìn)程監(jiān)控、復(fù)制監(jiān)控、慢查詢(xún)分析、性能圖表、工具組件、告警事件、系統(tǒng)資源等子系統(tǒng)組成,每個(gè)子系統(tǒng)負(fù)責(zé)完成特定信息的采集和展示
一、系統(tǒng)安裝需求
MySQL MTOP由PHP和Python開(kāi)發(fā),所以監(jiān)控機(jī)需要安裝PHP運(yùn)行環(huán)境和Python環(huán)境。需要的核心包如下:
1.MySQL 5.0及以上(用來(lái)存儲(chǔ)監(jiān)控系統(tǒng)采集的數(shù)據(jù))
2.Apache 2.2及以上 (WEB服務(wù)器運(yùn)行服務(wù)器)
3.PHP 5.3以上 (WEB界面)
4.Python2 (推薦2.7版本,其他版本未做測(cè)試,執(zhí)行數(shù)據(jù)采集和報(bào)警任務(wù))
5.MySQLdb for python (Python連接MySQl的接口)
二、 安裝必備的開(kāi)發(fā)包[root?src]$??yum?-y?install?ntp?vim-enhanced?gcc?gcc-c++?flex?bison?autoconf?automake?bzip2-devel?\>?ncurses-devel?zlib-devel?libjpeg-devel?libpng-devel?libtiff-devel?freetype-devel?libXpm-devel?\>?gettext-devel??pam-devel?libtool?libtool-ltdl?openssl?openssl-devel?fontconfig-devel?\>?libxml2-devel?curl-devel??libicu?libicu-devel?libmcrypt?libmcrypt-devel?libmhash?libmhash-devel
三、同步系統(tǒng)時(shí)間:
vim /etc/ntp.conf ?//添加下面三行內(nèi)容
然后同步時(shí)間,重啟ntp服務(wù),操作如下:
[root?data]$?service?ntpd?stop
關(guān)閉?ntpd:????????????????????????????????????????????????[失敗]
[root?data]$?ntpdate??cn.pool.ntp.org
18?Dec?15:09:59?ntpdate[11495]:?step?time?server?119.57.127.125?offset?-28806.680250?sec
[root?data]$?date2014年?12月?18日?星期四?15:10:03?CST
[root?data]$?service?ntpd?start
正在啟動(dòng)?ntpd:????????????????????????????????????????????[確定]
[root?data]$?chkconfig?ntpd?on
四、進(jìn)制apache安裝,版本要2.2及以上
[root?data]$cd?/usr/local/src
[root?src]$wget?http://archive.apache.org/dist/httpd/httpd-2.2.19.tar.gz[root?src]$tar?xvf?httpd-2.2.19.tar.gz
[root?src]$?cd?httpd-2.2.19./configure?--prefix=/usr/local/apache?\--enable-so?--enable-rewrite?\?--enable-mods-shared=most?--sysconfdir=/etc/httpd
[root?httpd-2.2.19]$?make?&&?make?install
安裝完后啟動(dòng),啟動(dòng)報(bào)Could not ....,修改下ServerName就不報(bào)這樣的錯(cuò)了
[root?httpd-2.2.19]$?/usr/local/apache/bin/apachectl?start??????????
httpd:?Could?not?reliably?determine?the?server's?fully?qualified?domain?name,?using?localhost.localdomain?for?ServerName[root?httpd-2.2.19]$??netstat?-tnlp?|grep?httpd
tcp????????0??????0?:::80???????????????????????:::*????????????????????????LISTEN??????24810/httpd
[root?httpd-2.2.19]$?cp?/usr/local/webserver/apache/bin/apachectl?/etc/init.d/httpd
[root?httpd-2.2.19]$?cp?/usr/local/apache/bin/apachectl?/etc/init.d/httpd
[root?httpd-2.2.19]$?grep?"ServerName"?/etc/httpd/httpd.conf
#?ServerName?gives?the?name?and?port?that?the?server?uses?to?identify?itself.
ServerName?127.0.0.1:80[root?httpd-2.2.19]$?service?httpd?restart
添加開(kāi)機(jī)啟動(dòng):[root?httpd-2.2.19]$chkconfig?--add?httpd
[root?httpd-2.2.19]$chkconfig?httpd?on
MySQL我已經(jīng)安裝,在這就不演示這個(gè)過(guò)程了,可以到官網(wǎng)下載5.5版本的MySQL,然后用我寫(xiě)的腳本安裝http://www.cnblogs.com/xuanzhi201111/p/4119065.html
五、進(jìn)行PHP安裝
安裝php前安裝,否則可能出現(xiàn)以下錯(cuò)誤:configure:?error:?mcrypt.h?not?found.?Please?reinstall?libmcrypt[root?src]$wget?http://softlayer.dl.sourceforge.net/sourceforge/mcrypt/libmcrypt-2.5.8.tar.gz[root?src]$?tar?zxf?libmcrypt-2.5.8.tar.gz
[root?src]$?cd?libmcrypt-2.5.8[root?libmcrypt-2.5.8]$?./configure?--prefix=/usr/local?&&?make?&&?make?install
下載PHP并安裝,版本要5.3以上,下面要注意的是,php安裝涉及了你安裝apache和mysql的路徑,這個(gè)要特別注意的:
[root?src]$??[root?src]$??zxf?php-..-.-.]$./configure?--prefix=/usr/local/--mandir=/usr/local/share/--infodir=/usr/local/share/--with-apxs2=/usr/local/apache/bin/--enable-cgi?--with-mysql=/usr/local/mysql-./--with-config--path=/usr/local/php/--with-pdo-mysql=/usr/local/mysql-.--with-mysqli=/usr/local/mysql-./bin/--enable-?--enable-sqlite-utf8?-enable---enable-soap?--enable-pcntl?--enable---enable-intl?--enable-calendar?--enable---enable-exif?--with-mcrypt?--with-mhash?--with---with-png-?--with-jpeg-?--with-freetype---with-libxml-?--with-curl?--with---with-zlib???--with-openssl?--with-kerberos=--with-gettext=shared?--with-xmlrpc=shared
[root?php-
拷貝配置文件:[root?php-5.5.19]$?cp?php.ini-production?/usr/local/php/etc/php.ini
然后修改apache的配置文件:[root?php-5.5.19]$??vim?/usr/local/apache/conf/httpd.conf
添加以下內(nèi)容:查找AddType?application/x-gzip?.gz?.tgz,在該行下面添加
AddType?application/x-httpd-php?.php
查找DirectoryIndex?index.html?把該行修改成
DirectoryIndex?index.html?index.htm?index.php
重啟apache,在/usr/local/apache/htdocs/下vim index.php,操作如下:
[root?htdocs]$?service?httpd?restart
[root?htdocs]$?pwd/usr/local/apache/htdocs
[root?htdocs]$?cat?index.php
phpinfo();?>
在防火墻里添加80端口,并重啟,然后請(qǐng)問(wèn)index.php:http://ip/index.php,如果得到下圖,意味著apache整合php成功了
六、進(jìn)行python安裝,推薦2.7版本,其他版本未做測(cè)試,執(zhí)行數(shù)據(jù)采集和報(bào)警任務(wù)[root?src]$?wget?http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tar.bz2[root?src]$?tar?jxf?Python-2.7.2.tar.bz2
[root?src]$?cd?Python-2.7.2[root?Python-2.7.2]$?./configure?--prefix=/usr/local/Python2.7?--enable-shared?make?&&?make?install[root?Python-2.7.2]$?mv?/usr/bin/python?/usr/bin/pythonbak
[root?Python-2.7.2]$?ln?-sf?/usr/local/Python2.7/bin/python?/usr/bin/python
查看Python版本,如果報(bào)少了庫(kù)文件,vim /etc/ld.so.conf添加/usr/local/Python2.7/lib,執(zhí)行l(wèi)dconfig刷新配置文件
[root?Python-2.7.2]$?python?-V???????????
python:?error?while?loading?shared?libraries:?libpython2.7.so.1.0:?cannot?open?shared?object?file:?No?such?file?or?directory
[root?Python-2.7.2]$?cat?/etc/ld.so.conf
include?ld.so.conf.d/*.conf
/usr/local/Python2.7/lib
[root?Python-2.7.2]$?ldconfig
[root?Python-2.7.2]$?python?-V
Python?2.7.2
如果python升級(jí)到2.7以后出現(xiàn)yum無(wú)法使用的情況,錯(cuò)誤為No module named yum,請(qǐng)按照如下步驟處理,將yum使用的python版本改為舊版本,第一行修改為如下即可:[root?htdocs]$?vim?/usr/bin/yum?#!/usr/bin/python2.6
七、安裝MySQLdb for python[root?src]$?wget?http://www.mtop.cc/software/MySQLdb-python.zip[root?src]$?unzip?MySQLdb-python.zip[root?src]$?cd?MySQLdb1-master
[root?MySQLdb1-master]$?vim?site.cfg
vim site.cfg添加你安裝的mysql路徑下的mysql_config:
添加完再執(zhí)行python setup.py build可能報(bào)以下錯(cuò):[root?MySQLdb1-master]$?python?setup.py?build
error:?command?'gcc'?failed?with?exit?status?1
解決方法:[root?MySQLdb1-master]$?yum?install?gcc?python-devel
再執(zhí)行安裝:[root?MySQLdb1-master]$?python?setup.py?build
[root?MySQLdb1-master]$?python?setup.py?install
基本環(huán)境已經(jīng)安裝OVER了,下面去官網(wǎng)下載開(kāi)源的管理軟件包:http://www.lepus.cc/soft/index,要注冊(cè)賬號(hào)的
八、安裝MySQL MTOP系統(tǒng)
監(jiān)控機(jī)創(chuàng)建監(jiān)控?cái)?shù)據(jù)庫(kù),并授予權(quán)限,導(dǎo)入SQL文件
mysql>?create?database?mysqlmtop?default?character?set?utf8;?
Query?OK,?1?row?affected?(0.07?sec)
mysql>?grant?select,insert,update,delete,create,drop?on?mysqlmtop.*?to?'mtop_user'@'localhost'?identified?by?'password';
Query?OK,?0?rows?affected?(0.04?sec)
mysql>??flush?privileges;
Query?OK,?0?rows?affected?(0.02?sec)
下載后解包:[root?src]$?unzip?MySQLMTOP.zip[root?src]$?cd??mysqlmtop2.2[root?sql]$?pwd/usr/local/src/mysqlmtop2.2/sql
[root?sql]$?lsmysqlmtop_data.sql??mysqlmtop.sql
監(jiān)控機(jī)(即MySQL MTOP server)創(chuàng)建監(jiān)控?cái)?shù)據(jù)庫(kù),并授予權(quán)限,導(dǎo)入SQL文件夾里的SQL文件(表結(jié)構(gòu)和數(shù)據(jù)文件):[root?sql]$?mysql?-uroot?-p123456?-S?/data/mysql-5.6.10/mysql.sock??mysqlmtop?
[root?sql]$?mysql?-uroot?-p123456?-S?/data/mysql-5.6.10/mysql.sock??mysqlmtop?
[root?sql]$?mv?/usr/local/src/mysqlmtop2.2?/usr/local/mysqlmtop
對(duì)被監(jiān)控的數(shù)據(jù)庫(kù)進(jìn)行授權(quán)
在python采集數(shù)據(jù)的過(guò)程中,需要連接到需要監(jiān)控的數(shù)據(jù)庫(kù)服務(wù)器采集數(shù)據(jù),我們?yōu)榱税踩紤],在WEB管理里面只要求錄入主機(jī)和端口,沒(méi)有錄入賬號(hào)和密碼。所有需要監(jiān)控的數(shù)據(jù)庫(kù)請(qǐng)授予相同的用戶(hù)密碼記錄在配置文件中。授權(quán)如下所示:
grant select,super,process on *.* to 'monitor'@'ip' identified by 'monitor';
九、安裝數(shù)據(jù)采集和報(bào)警系統(tǒng)
修改監(jiān)控系統(tǒng)配置文件,進(jìn)到/usr/local/mysqlmtop/mysqlmtop/etc,修改config.ini[root?etc]$?pwd/usr/local/mysqlmtop/mysqlmtop/etc
[root?etc]$?vim?config.ini
授予可執(zhí)行文件執(zhí)行權(quán)限[root?mysqlmtop]$?pwd/usr/local/mysqlmtop/mysqlmtop
[root?mysqlmtop]$?chmod?+x?*.py
[root?mysqlmtop]$?chmod?+x?*.sh[root?mysqlmtop]$?chmod?+x?mtopctl
[root?mysqlmtop]$?ln?-s?/usr/local/mysqlmtop/mysqlmtop/mtopctl?/usr/local/bin/
測(cè)試MySQL連接,報(bào)錯(cuò)了,別慌
[root?mysqlmtop]$?./test_mysql.py?
Traceback?(most?recent?call?last):
File?"./test_mysql.py",?line?6,?in?
import?MySQLdb
File?"/usr/lib64/python2.6/site-packages/MySQL_python-1.2.4-py2.6-linux-x86_64.egg/MySQLdb/__init__.py",?line?19,?in?
import?_mysql
ImportError:?libmysqlclient.so.18:?cannot?open?shared?object?file:?No?such?file?or?directory
解決方法:如果是64系統(tǒng)則:
[root?mysqlmtop]$?ln?-s?/usr/local/mysql-5.6.10/lib/libmysqlclient.so.18??/usr/lib64/libmysqlclient.so.1832位系統(tǒng):
[root?mysqlmtop]$?ln?-s?/usr/local/mysql-5.6.10/lib/libmysqlclient.so.18??/usr/lib/libmysqlclient.so.18
如果是通過(guò)socket文件連接MySQL的話(huà) 可能會(huì)報(bào)以下錯(cuò):mysql_exceptions.OperationalError:?(2002,?"Can't?connect?to?local?MySQL?server?through?socket?'/tmp/mysql.sock'?(111)")
添加一下鏈接:[root?mysqlmtop]$?ln?-s?/data/mysql-5.6.10/mysql.sock?/tmp/mysql.sock
再執(zhí)行測(cè)試腳本,看到OK就正常連接成功了:[root?mysqlmtop]$?./test_mysql.py
MySQLDB?OK!
修改下啟動(dòng)腳本mtopctl(注意路徑),再啟動(dòng)監(jiān)控系統(tǒng)(注意:只有監(jiān)控進(jìn)程運(yùn)行時(shí)系統(tǒng)才會(huì)進(jìn)行監(jiān)控和報(bào)警)
啟動(dòng):[root?mysqlmtop]$?mtopctl??start
nohup:?把輸出追加到"nohup.out"mysql?mtop?start?success!
使用--help查看監(jiān)控系統(tǒng)進(jìn)程管理參數(shù),分別有start、stop、status
[root?mysqlmtop]$?mtopctl?--help
mysql?mtop?help:
support-site:www.mtop.cc??www.ruzuojun.com====================================================================start????????Start?mysql?mtop?monitor?server;?Command:?#mtopctl?start
stop?????????Stop?mysql?mtop?monitor?server;?Command:?#mtopctl?stop
status???????Check?mysql?mtop?monitor?run?status;?Command:?#mtopctl?status
十、安裝WEB管理界面
把/usr/local/mysqlmtop/frontweb下的所有文件傳到apache的/usr/local/apache/htdocs/[root?frontweb]$?pwd/usr/local/mysqlmtop/frontweb
[root?frontweb]$?cp?-a?*?/usr/local/apache/htdocs/
打開(kāi)application/config/database.php文件,修改PHP連接監(jiān)控服務(wù)器的數(shù)據(jù)庫(kù)信息[root@localhost?config]#?pwd/usr/local/apache/htdocs/application/config
root@localhost?config]#?vim?database.php
修改username填剛剛在MySQL授權(quán)用戶(hù),password也就是對(duì)應(yīng)的密碼,mysqlmtop是對(duì)應(yīng)的庫(kù),修改這三個(gè)即可
可以通過(guò)瀏覽器去訪(fǎng)問(wèn)了:http://ip
最好把默認(rèn)的index.html刪除了,這樣才走index.php,默認(rèn)管理員賬號(hào)密碼admin/admin 登錄后請(qǐng)修改密碼,增加普通賬號(hào)
看一下功能:
哈哈,是不是很吸引呢,功能非常強(qiáng)大,大家可以研究下
總結(jié):
一、該系統(tǒng)是開(kāi)源的系統(tǒng),如果搭建在公網(wǎng),一定要做好各種訪(fǎng)問(wèn)控制,做好各方面的安全工作
二、該系統(tǒng)功能比較多,可以幫助MySQL DBA或運(yùn)維DBA對(duì)管理MySQL及查看其性能
三、可能該系統(tǒng)存在一些小bug,例如發(fā)不出郵件啊,這些就要根據(jù)自己能力去完善了,如果會(huì)python,可以去掉沒(méi)用的,加上自己想要的功能
詳細(xì)參考資料 MySQLMTOP官網(wǎng):http://www.mtop.cc/
作者:陸炫志
您的支持是對(duì)博主最大的鼓勵(lì),感謝您的認(rèn)真閱讀。本文版權(quán)歸作者所有,歡迎轉(zhuǎn)載,但請(qǐng)保留該聲明。
分
總結(jié)
以上是生活随笔為你收集整理的mysql mtop 使用_MYSQLMTOP监控环境搭建的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: matlab多种分配方案_基于MATLA
- 下一篇: js固定表格行列_纯前端表格控件Spre