mysql mtop 使用_MYSQLMTOP监控环境搭建
MySQLMTOP是一個由Python+PHP開發的MySQL企業級監控系統。系統由Python實現多進程數據采集和告警,PHP實現WEB展示和管理。最重要是MySQL服務器無需安裝任何Agent,只需在監控WEB界面配置相關數據庫信息
功能非常強大:
可對上百臺MySQL數據庫的狀態、連接數、QTS、TPS、數據庫流量、復制、性能等進行時時監控
能在數據庫偏離設定的正常運行閥值(如連接異常,復制異常,復制延遲)?時發送告警郵件通知到DBA進行處理
對歷史數據歸檔,通過圖表展示出數據庫近期狀態,以便DBA和開發人員能對遇到的問題進行分析和診斷
系統主要由儀表盤、狀態監控、進程監控、復制監控、慢查詢分析、性能圖表、工具組件、告警事件、系統資源等子系統組成,每個子系統負責完成特定信息的采集和展示
一、系統安裝需求
MySQL MTOP由PHP和Python開發,所以監控機需要安裝PHP運行環境和Python環境。需要的核心包如下:
1.MySQL 5.0及以上(用來存儲監控系統采集的數據)
2.Apache 2.2及以上 (WEB服務器運行服務器)
3.PHP 5.3以上 (WEB界面)
4.Python2 (推薦2.7版本,其他版本未做測試,執行數據采集和報警任務)
5.MySQLdb for python (Python連接MySQl的接口)
二、 安裝必備的開發包[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
三、同步系統時間:
vim /etc/ntp.conf ?//添加下面三行內容
然后同步時間,重啟ntp服務,操作如下:
[root?data]$?service?ntpd?stop
關閉?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
正在啟動?ntpd:????????????????????????????????????????????[確定]
[root?data]$?chkconfig?ntpd?on
四、進制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
安裝完后啟動,啟動報Could not ....,修改下ServerName就不報這樣的錯了
[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
添加開機啟動:[root?httpd-2.2.19]$chkconfig?--add?httpd
[root?httpd-2.2.19]$chkconfig?httpd?on
MySQL我已經安裝,在這就不演示這個過程了,可以到官網下載5.5版本的MySQL,然后用我寫的腳本安裝http://www.cnblogs.com/xuanzhi201111/p/4119065.html
五、進行PHP安裝
安裝php前安裝,否則可能出現以下錯誤: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的路徑,這個要特別注意的:
[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
添加以下內容:查找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端口,并重啟,然后請問index.php:http://ip/index.php,如果得到下圖,意味著apache整合php成功了
六、進行python安裝,推薦2.7版本,其他版本未做測試,執行數據采集和報警任務[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版本,如果報少了庫文件,vim /etc/ld.so.conf添加/usr/local/Python2.7/lib,執行ldconfig刷新配置文件
[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升級到2.7以后出現yum無法使用的情況,錯誤為No module named yum,請按照如下步驟處理,將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:
添加完再執行python setup.py build可能報以下錯:[root?MySQLdb1-master]$?python?setup.py?build
error:?command?'gcc'?failed?with?exit?status?1
解決方法:[root?MySQLdb1-master]$?yum?install?gcc?python-devel
再執行安裝:[root?MySQLdb1-master]$?python?setup.py?build
[root?MySQLdb1-master]$?python?setup.py?install
基本環境已經安裝OVER了,下面去官網下載開源的管理軟件包:http://www.lepus.cc/soft/index,要注冊賬號的
八、安裝MySQL MTOP系統
監控機創建監控數據庫,并授予權限,導入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
監控機(即MySQL MTOP server)創建監控數據庫,并授予權限,導入SQL文件夾里的SQL文件(表結構和數據文件):[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
對被監控的數據庫進行授權
在python采集數據的過程中,需要連接到需要監控的數據庫服務器采集數據,我們為了安全考慮,在WEB管理里面只要求錄入主機和端口,沒有錄入賬號和密碼。所有需要監控的數據庫請授予相同的用戶密碼記錄在配置文件中。授權如下所示:
grant select,super,process on *.* to 'monitor'@'ip' identified by 'monitor';
九、安裝數據采集和報警系統
修改監控系統配置文件,進到/usr/local/mysqlmtop/mysqlmtop/etc,修改config.ini[root?etc]$?pwd/usr/local/mysqlmtop/mysqlmtop/etc
[root?etc]$?vim?config.ini
授予可執行文件執行權限[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/
測試MySQL連接,報錯了,別慌
[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系統則:
[root?mysqlmtop]$?ln?-s?/usr/local/mysql-5.6.10/lib/libmysqlclient.so.18??/usr/lib64/libmysqlclient.so.1832位系統:
[root?mysqlmtop]$?ln?-s?/usr/local/mysql-5.6.10/lib/libmysqlclient.so.18??/usr/lib/libmysqlclient.so.18
如果是通過socket文件連接MySQL的話 可能會報以下錯: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
再執行測試腳本,看到OK就正常連接成功了:[root?mysqlmtop]$?./test_mysql.py
MySQLDB?OK!
修改下啟動腳本mtopctl(注意路徑),再啟動監控系統(注意:只有監控進程運行時系統才會進行監控和報警)
啟動:[root?mysqlmtop]$?mtopctl??start
nohup:?把輸出追加到"nohup.out"mysql?mtop?start?success!
使用--help查看監控系統進程管理參數,分別有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/
打開application/config/database.php文件,修改PHP連接監控服務器的數據庫信息[root@localhost?config]#?pwd/usr/local/apache/htdocs/application/config
root@localhost?config]#?vim?database.php
修改username填剛剛在MySQL授權用戶,password也就是對應的密碼,mysqlmtop是對應的庫,修改這三個即可
可以通過瀏覽器去訪問了:http://ip
最好把默認的index.html刪除了,這樣才走index.php,默認管理員賬號密碼admin/admin 登錄后請修改密碼,增加普通賬號
看一下功能:
哈哈,是不是很吸引呢,功能非常強大,大家可以研究下
總結:
一、該系統是開源的系統,如果搭建在公網,一定要做好各種訪問控制,做好各方面的安全工作
二、該系統功能比較多,可以幫助MySQL DBA或運維DBA對管理MySQL及查看其性能
三、可能該系統存在一些小bug,例如發不出郵件啊,這些就要根據自己能力去完善了,如果會python,可以去掉沒用的,加上自己想要的功能
詳細參考資料 MySQLMTOP官網:http://www.mtop.cc/
作者:陸炫志
您的支持是對博主最大的鼓勵,感謝您的認真閱讀。本文版權歸作者所有,歡迎轉載,但請保留該聲明。
分
總結
以上是生活随笔為你收集整理的mysql mtop 使用_MYSQLMTOP监控环境搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab多种分配方案_基于MATLA
- 下一篇: js固定表格行列_纯前端表格控件Spre