您好,登錄后才能下訂單哦!
Lepus3.8-天兔mysql數(shù)據(jù)庫(kù)監(jiān)控系統(tǒng)搭建
lepus是一款開(kāi)源的數(shù)據(jù)庫(kù)監(jiān)控軟件,能詳細(xì)的監(jiān)控各種數(shù)據(jù)庫(kù)狀態(tài),如mysql慢查詢(xún)和主從狀況。
這是web監(jiān)控頁(yè)面:
搭建(文中是CentOS 6.7系統(tǒng)環(huán)境):
一、安裝lamp或lnmp環(huán)境:
安裝方法很多,有源碼包、yum、rpm等安裝,這兒就簡(jiǎn)單的提一下簡(jiǎn)單的yum安裝方法。
需要安裝的包:
httpd
httpd-manual
httpd-devel
php
php-mysql
mysql
mysql-server
可以yum安裝上面的包:yum install httpd httpd-manual httpd-devel php php-mysql mysql mysql-server -y
1).mysql
[root@jk ~]# yum install mysqlmysql-server -y
[root@jk ~]# rpm -qa |grepmysql
[root@jk ~]# service mysqld start
[root@jk ~]# netstat -anplt|grep mysql 查看mysqld端口是否正常開(kāi)啟,服務(wù)是否正常
2).apache
[root@monitoring-45 lepus]# yuminstall httpd httpd-manual httpd-devel -y
[root@monitoring-45lepus]# rpm -qa |grep http*
[root@jk ~]# service httpd start
上面的:httpd: Could not reliably determine the server's fully qualifieddomain name提示 是apache啟動(dòng)時(shí)會(huì)驗(yàn)證ServerName的配置,可通過(guò)修改hosts文件添加本地解析或者修改httpd.conf 的276行將#ServerName www.example.com:80改為ServerName “主機(jī)名”來(lái)使其不提醒。
[root@jk ~]# netstat -anplt | grep httpd 查看mysqld端口是否正常開(kāi)啟,服務(wù)是否正常
3).php
[root@jk ~]# yum install phpphp-mysql –y
[root@monitoring-45lepus]# rpm -qa |grep php-5
[root@jk ~]# rpm -ql php 查看php相關(guān)文件
/etc/httpd/conf.d/php.conf
/usr/lib64/httpd/modules/libphp5.so
/var/lib/php/session
/var/www/icons/php.gif
4).配置apache,讓apache支持php
[root@jk ~]# vim/etc/httpd/conf.d/php.conf 配置php配置文件
看是否有動(dòng)態(tài)加載,圖下面紅框內(nèi)的是apache支持的首頁(yè)面
[root@jk ~]# vim/etc/httpd/conf/httpd.conf 配置apache配置文件
AddType applition/x-httpd-php.php #添加這一行
<IfModule dir_module>
DirectoryIndex index.html index.php #添加index.php是為了讓apache識(shí)別php首頁(yè)
</IfModule>
重啟apache
[root@jk ~]# touch/var/www/html/1.php
[root@jk ~]# vim /var/www/html/1.php
<?php
phpinfo();
?>
瀏覽器打開(kāi)http://服務(wù)端ip/1.php,出現(xiàn)如下圖則表示配置成功:
5).讓php支持mysql
[root@jk ~]# yum install -y php-mysql
檢查:
[root@jk ~]# vim /var/www/html/1.php
<?php
$link=mysql_connect('127.0.0.1','root','');
if($link)
echo "connect success!";
else
echo 'connect faild!';
?>
重啟apache,service httpd restart后
瀏覽器打開(kāi)http://服務(wù)端ip/1.php,出現(xiàn)
connect success!
則為成功
6).設(shè)置服務(wù)自啟:
[root@jk ~]# chkconfig httpd on
[root@jk ~]# chkconfig httpd--list
httpd 0:關(guān)閉 1:關(guān)閉 2:啟用 3:啟用 4:啟用 5:啟用 6:關(guān)閉
[root@jk ~]# chkconfig mysqld on
二、監(jiān)控端安裝python(文中是2.6.6版本,也推薦使用2.7版本)
……
三、監(jiān)控端安裝數(shù)據(jù)庫(kù)連接Python的驅(qū)動(dòng)包
1).安裝 MySQLdb for python (如果需要監(jiān)控MySQL則必須安裝)
MySQLdb為Python連接和操作MySQL的類(lèi)庫(kù),如果準(zhǔn)備使用lepus系統(tǒng)監(jiān)控MySQL數(shù)據(jù)庫(kù),那么該模塊必須安裝。
[root@jk ~]# wget http://cdn.lepus.cc/cdncache/software/MySQLdb-python.zip
[root@jk ~]# unzip MySQLdb-python.zip
[root@jk ~]# cd MySQLdb1-master/
[root@jk ~]# which mysql_config
/usr/local/mysql/bin/mysql_config
[root@jk ~]# vim site.cfg 修改如下:
mysql_config = /usr/local/mysql/bin/mysql_config
[root@jk ~]# python setup.py build
[root@jk ~]# python setup.py install
如果編譯python出現(xiàn)如下問(wèn)題
/usr/bin/ld: cannot find -lpython2.7
collect2: ld returned 1 exit status
error: command 'gcc' failed with exit status1
請(qǐng)按如下步驟處理:
A.檢查并安裝python-devel包
[root@jk ~]# yum -y install python-devel
B.將libpython2.7.so庫(kù)文件建立軟連接到/usr/lib下
32位服務(wù)器下執(zhí)行:
[root@jk ~]# ln -s /usr/local/Python2.7/lib/libpython2.7.so/usr/lib/libpython2.7.so
64位服務(wù)器下執(zhí)行:
[root@jk ~]# ln -s /usr/local/Python2.7/lib/libpython2.7.so/usr/lib64/libpython2.7.so
C.檢查下/etc/ld.so.conf是否包含/usr/local/Python2.7/lib
[root@jk ~]# vi /etc/ld.so.conf 添加/usr/local/Python2.7/lib
[root@jk ~]# /sbin/ldconfig
2).安裝cx_oracle for python (如果需要監(jiān)控Oracle則必須安裝,本文暫未用到)
下載安裝oracle instant client:
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
如果是64位的,請(qǐng)選擇.*x86_64.rpm,否則是.*i386.rpm
如果是oracle 9i或更高,請(qǐng)選擇InstantClient 11,如果是8或8i,請(qǐng)選擇Instant Client 10
[root@jk ~]# rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
[root@jk ~]# rpm -ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm
[root@jk ~]# rpm -ivh oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm
[root@jk ~]# vim /root/.bash_profile
ORACLE_HOME="/usr/lib/oracle/11.2/client64"
PATH=$PATH:$ORACLE_HOME/bin
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
[root@jk ~]#vim /etc/ld.so.conf 加入
/usr/lib/oracle/11.2/client64/lib
執(zhí)行l(wèi)dconfig生效
[root@jk ~]# ldconfig
安裝cx_oracle
[root@jk ~]# wget http://cdn.lepus.cc/cdncache/software/cx_Oracle-5.1.2.tar.gz
[root@jk ~]# tar -xvf cx_Oracle-5.1.2.tar.gz
[root@jk ~]# cd cx_Oracle-5.1.2
[root@jk ~]# python setup.py build
[root@jk ~]# python setup.py install
3).安裝Pymongo for python (如果需要監(jiān)控Mongodb則必須安裝)
pymongo為Python連接和操作MongoDB的類(lèi)庫(kù),如果準(zhǔn)備使用lepus系統(tǒng)監(jiān)控MongoDBs數(shù)據(jù)庫(kù),那么該模塊必須安裝。
安裝步驟如下:
下載pymongo https://pypi.python.org/packages/source/p/pymongo/
[root@jk ~]# wget http://cdn.lepus.cc/cdncache/software/pymongo-2.7.tar.gz
[root@jk ~]# tar -xvf pymongo-2.7.tar.gz
[root@jk ~]# cd pymongo-2.7
[root@jk ~]# python setup.py install
4).安裝Redis 驅(qū)動(dòng) (如果需要監(jiān)控Redis則必須安裝)
[root@jk ~]# wget http://cdn.lepus.cc/cdncache/software/redis-py-2.10.3.tar.gz
[root@jk ~]# tar -xvf redis-py-2.10.3.tar.gz
[root@jk ~]# cd redis-2.10.3/
[root@jk ~]# python setup.py install
5).測(cè)試各個(gè)驅(qū)動(dòng)是否正常運(yùn)行
[root@jk~]# wget http://www.lepus.cc/soft/download/18
[root@jk~]# unzip Lepus數(shù)據(jù)庫(kù)企業(yè)監(jiān)控系統(tǒng)3.7版本官方下載.zip
[root@jk~]# cd Lepus_v3.8_beta/
[root@jk~]# python test_driver_mysql.py
MySQL python drivier is ok!
[root@jk ~]# python test_driver_oracle.py
Oracle python drivier is ok!
[root@jk ~]# python test_driver_mongodb.py
MongoDB python drivier is ok!
[root@jk ~]# python test_driver_redis.py
Redis python drivier is ok!
四、監(jiān)控端安裝Lepus監(jiān)控系統(tǒng)
1).下載軟件包到監(jiān)控端并解壓縮
(下載鏈接:http://down.51cto.com/data/2237019)
[root@jk~]# wget http://www.lepus.cc/soft/download/18
[root@jk~]# unzip Lepus數(shù)據(jù)庫(kù)企業(yè)監(jiān)控系統(tǒng)3.7版本官方下載.zip
[root@jk~]# cd Lepus_v3.8_beta/
2).在監(jiān)控機(jī)創(chuàng)建監(jiān)控?cái)?shù)據(jù)庫(kù),并授權(quán)。
監(jiān)控端數(shù)據(jù)庫(kù)執(zhí)行:
mysql>create database lepus default character set utf8;
mysql>grant select,insert,update,delete,create on lepus.* to 'lepus_user'@'localhost'identified by '111.test';
mysql>flush privileges;
3).導(dǎo)入Lepus_v3.8_beta 的sql文件夾里的SQL文件(表結(jié)構(gòu)和數(shù)據(jù)文件)
[root@jk~]# mysql -uroot -p lepus < sql/lepus_table.sql
[root@jk~]# mysql -uroot -p lepus < sql/lepus_data.sql
4).安裝Lpeus程序
[root@jk~]#pwd
[root@monitoring-45Lepus_v3.8_beta]# cd python/
[root@monitoring-45Lepus_v3.8_beta]# chmod +x install.sh
修改安裝位置:
[root@monitoring-45python]# vim install.sh 下圖紅色標(biāo)記即為安裝位置
[root@monitoring-45lepus]# vim lepus 修改啟動(dòng)文件
執(zhí)行安裝
[root@monitoring-45Lepus_v3.8_beta]# ./install.sh
[note]lepus will be install on basedir: /date/server/lepus
[note]/date/server/lepus directory does not exist,will be created.
[note]/date/server/lepus directory created success.
[note]wait copy files.......
[note]change script permission.
[note]create links.
[note]install complete.
5).修改配置文件
進(jìn)入到安裝目錄/date/server/lepus,默認(rèn)為/usr/local/lepus
[root@monitoring-45 ~]# cd /date/server/lepus
[root@monitoring-45 lepus]# vim etc/config.ini
###監(jiān)控機(jī)MySQL數(shù)據(jù)庫(kù)連接地址###
[monitor_server]
host="localhost"
port=3306
user=" lepus_user "
passwd="111.test"
dbname="lepus"
6).啟動(dòng)監(jiān)控系統(tǒng)
執(zhí)行以下命令啟動(dòng)系統(tǒng)采集進(jìn)程
[root@monitoring-45 lepus]#lepus start
nohup: appending output to`nohup.out'
lepus monitor start success!
執(zhí)行以下命令關(guān)閉系統(tǒng)采集進(jìn)程
[root@monitoring-45 lepus]#lepus stop
執(zhí)行以下命令監(jiān)控系統(tǒng)是否正常運(yùn)行
[root@monitoring-45 lepus]#lepus status
lepus server is running...
7).將lepus_monitor腳本部署為計(jì)劃任務(wù),該腳本可以監(jiān)控Lepus是否正在運(yùn)行。
打開(kāi)文件/data/server/lepus/lepus_monitor修改里面連接監(jiān)控機(jī)的數(shù)據(jù)庫(kù)連接地址,然后將該腳本部署為計(jì)劃任務(wù)。
[root@monitoring-45 lepus]# crontab -e
*/5 * * * * /data/server/lepus/lepus_monitor >> /tmp/lepus_monitor.log
8)部署網(wǎng)頁(yè)WEB界面
復(fù)制安裝文件夾的php文件夾里的文件到Apache對(duì)應(yīng)的網(wǎng)站根目錄
[root@monitoring-45 lepus]# cp -rf /root/bao/Lepus_v3.8_beta/php/* /var/www/html/
打開(kāi)/var/www/html/application/config/database.php文件修改PHP連接監(jiān)控服務(wù)器的數(shù)據(jù)庫(kù)信息
[root@monitoring-45 lepus]# vim /var/www/html/application/config/database.php
$db['default']['hostname'] ='localhost';
$db['default']['username'] ='lepus_user';
$db['default']['password'] = '111.test';
$db['default']['database'] =lepus;
$db['default']['dbdriver'] ='mysql';
9).重啟apache
[root@monitoring-45 lepus]# service httpd restart
10).登錄進(jìn)行添加主機(jī)和監(jiān)控
通過(guò)瀏覽器輸入IP地址或域名打開(kāi)監(jiān)控界面,即可登錄系統(tǒng)。默認(rèn)管理員賬號(hào)密碼admin/Lepusadmin
登錄后請(qǐng)修改管理員密碼,增加普通賬號(hào),對(duì)需要監(jiān)控的數(shù)據(jù)庫(kù)授權(quán),在WEB添加主機(jī)進(jìn)行監(jiān)控。
四、Lepus監(jiān)控?cái)?shù)據(jù)庫(kù)配置
1).被監(jiān)控端防火墻打開(kāi)允許監(jiān)控端ip的3306端口,mysql添加監(jiān)控賬號(hào):
[root@jk ~]# iptables -A INPUT -s "監(jiān)控端ip" -m state --state NEW -m tcp -p tcp--dport 3306 -j ACCEPT
被監(jiān)控端數(shù)據(jù)庫(kù)執(zhí)行:
[root@jk ~]#
mysql> grant select,process,super on *.* to 'monitor'@'server監(jiān)控端ip' identified by '222.test';
被監(jiān)控端創(chuàng)建完帳號(hào)即可在監(jiān)控端網(wǎng)頁(yè)上添加mysql數(shù)據(jù)庫(kù)監(jiān)控:
稍等幾分鐘便可看到信息。
注意:只有同時(shí)監(jiān)控主庫(kù)和備庫(kù)才能看到主從復(fù)制情況。
2).得不到數(shù)據(jù)庫(kù)表空間分析數(shù)據(jù)的解決方法:
在lepus.py中添加check_mysql_bigtable,如圖
圖中“*120“是設(shè)置時(shí)間間隔,若是網(wǎng)頁(yè)頁(yè)面設(shè)置了1分鐘刷新數(shù)據(jù),這兒改成120。則最終是2小時(shí)才會(huì)監(jiān)控得到新數(shù)據(jù)
五、Lepus監(jiān)控?cái)?shù)據(jù)庫(kù)慢查詢(xún)配置
1).監(jiān)控端配置數(shù)據(jù)庫(kù)帳號(hào),讓被監(jiān)控端寫(xiě)入數(shù)據(jù)
監(jiān)控端數(shù)據(jù)庫(kù)執(zhí)行:
mysql> grantselect,insert,update,delete,create on lepus.* to 'lepus_user'@'被監(jiān)控端ip' identified by '333.test';
2).被監(jiān)控端數(shù)據(jù)庫(kù)添加賬號(hào)允許腳本獲得數(shù)據(jù)庫(kù)信息
被監(jiān)控端數(shù)據(jù)庫(kù)執(zhí)行:
mysql> grantselect,process,super on *.* to 'monitor'@'localhost' identified by '444.test';
3).被監(jiān)控端要安裝pt工具
[root@mysql-master-39~]# yum -y install perl-IO-Socket-SSL perl-DBI perl-DBD-MySQLperl-Time-HiRes 'perl(Time::HiRes)'
下載percona-toolkit:
[root@mysql-master-39~]# wget https://www.percona.com/downloads/percona-toolkit/2.2.6/RPM/percona-toolkit-2.2.6-1.noarch.rpm
[root@mysql-master-39~]# rpm -ivh percona-toolkit-2.2.6-1.noarch.rpm
4).將lepus安裝包里的client目錄里的lepus_slowquery.sh腳本拷貝到被監(jiān)控端
[root@mysql-master-39~]# ls lepus_slowquery.sh
[root@mysql-master-39~]# chomd +x lepus_slowquery.sh
[root@mysql-master-39~]# which mysql
[root@mysql-master-39~]# which pt-query-digest
獲取數(shù)據(jù)庫(kù)id:
[root@mysql-master-39~]# vim lepus_slowquery.sh 標(biāo)紅部分是需要修改的
#!/bin/bash
#****************************************************************#
#ScriptName:/usr/local/sbin/lepus_slowquery.sh
#Create Date:2014-03-25 10:01
#Modify Date:2014-03-25 10:01
#***************************************************************#
#configlepusdatabase server監(jiān)控機(jī)
#設(shè)置監(jiān)控端帳號(hào)信息
lepus_db_host="監(jiān)控端ip"
lepus_db_port=3306
lepus_db_user="lepus_user"
lepus_db_password="333.test"
lepus_db_database="lepus"
#configmysqlserver被監(jiān)控機(jī)
#設(shè)置mysql命令路徑和本地?cái)?shù)據(jù)庫(kù)監(jiān)控帳號(hào)信息
mysql_client="/usr/local/mysql/bin/mysql"
mysql_host="localhost"
mysql_port=3306
mysql_user="monitor"
mysql_password="444.test"
#configslowqury慢日志位置,從my.cnf配置文件中獲取
slowquery_dir="/data/logs/mysql/"
#設(shè)置慢查詢(xún)時(shí)間是多少就被收集
slowquery_long_time=1
slowquery_file=`$mysql_client-h$mysql_host-P$mysql_port -u$mysql_user -p$mysql_password -e "show variables like'slow_query_log_file'"|grep log|awk'{print $2}'`
#設(shè)置pt-query-digest路徑
pt_query_digest="/usr/bin/pt-query-digest"
#configserver_id被監(jiān)控機(jī)id從lepus圖形界面看
lepus_server_id=274
最后注意vi編輯設(shè)置
:set ff?
顯示當(dāng)前的格式,默認(rèn)為dos,這時(shí)不能執(zhí)行的
需要:
:set fileformat=unix
變更為unix后,腳本才可執(zhí)行。
手動(dòng)執(zhí)行一次腳本,便可在網(wǎng)頁(yè)頁(yè)面看到數(shù)據(jù):
5).將腳本拷貝到/usr/local/sbin/下,并添加計(jì)劃任務(wù)定時(shí)執(zhí)行(建議時(shí)間間隔在一小時(shí)內(nèi))
[root@mysql-master-39~]# crontab -e
*/27 * * * * sh /usr/local/sbin/lepus_slowquery.sh > /dev/null 2>&1
6).配置郵箱
配置發(fā)件人:
點(diǎn)擊配置中心-全局設(shè)置,然后如圖,注意告警收件人需要在監(jiān)控項(xiàng)設(shè)置里另外配置。
配置收件人:
注意:發(fā)件人和收件人都要寫(xiě)全。
配置完成后在監(jiān)控服務(wù)端的安裝目錄執(zhí)行
[root@monitoring-45 lepus]# python test_send_mail.py
True
send_mail_status:success
報(bào)成功后就是配置完成了。
7).慢查詢(xún)自動(dòng)推送
定時(shí)將系統(tǒng)收集到的慢查詢(xún)TOP數(shù)據(jù)定時(shí)推送給相應(yīng)開(kāi)發(fā)人員進(jìn)行優(yōu)化,無(wú)需在每臺(tái)數(shù)據(jù)庫(kù)上部署腳本。
MySQL慢查詢(xún)自動(dòng)推送通過(guò)計(jì)劃任務(wù)完成。如果需要推送,則需要在監(jiān)控機(jī)部署如下計(jì)劃任務(wù)。
#crontab -e
00 09 * * * links http://111.com/index.php/task/send_mysql_slowquery_mail > /dev/null 2>&1
計(jì)劃任務(wù)部署完成后,則會(huì)按照計(jì)劃任務(wù)配置的時(shí)間將慢查詢(xún)推送給對(duì)應(yīng)人員。慢查詢(xún)推送的郵件人員需要在MySQL主機(jī)配置里面設(shè)置即可,郵箱留空則該數(shù)據(jù)庫(kù)主機(jī)不會(huì)發(fā)送慢查詢(xún)推送。
六、Lepus監(jiān)控?cái)?shù)據(jù)庫(kù)操作系統(tǒng)信息配置
Lepus使用的是snmp協(xié)議獲取系統(tǒng)信息
1). snmpd 服務(wù)安裝
[root@mysql-master-39~]# yum install -y net-snmp net-snmp-utils
2).修改配置文件允許指定的主機(jī)監(jiān)聽(tīng)自己
[root@mysql-master-39~]# vim /etc/snmp/snmpd.conf
:set nu
41行 將default改為監(jiān)控服務(wù)器ip;將public改成lepus_monitor
(備注: lepus_monitor是在天兔配置文件里配置的通用實(shí)體,如果配置的實(shí)體是其他名稱(chēng),這里要做相應(yīng)的修改)
com2secnotConfigUser 監(jiān)控端ip lepus_monitor
62行 將systemview 改為all,供所有snmp訪(fǎng)問(wèn)權(quán)限
access notConfigGroup "" any noauth exact all none none
85行 將#注釋符號(hào)去掉
view all included .1 80
3).修改snmpd 日志級(jí)別
snmpd 默認(rèn)日志級(jí)別將會(huì)在/var/log/message 寫(xiě)入大量snmp 信息,這樣會(huì)影響我們察看系統(tǒng)日志,所以我們需要更改下配置文件:
注釋原有的OPTINOS,添加下面的一行,重啟snmpd 服務(wù)即可
[root@mysql-master-39~]# vim /etc/init.d/snmpd
#OPTIONS="-Lsd -Lf /dev/null -p /var/run/snmpd.pid -a"
OPTIONS="-LS 4 d -p /var/run/snmpd.pid -a"
4).啟動(dòng) snmpd 服務(wù)
[root@mysql-master-39~]# /etc/init.d/snmpd start
5).驗(yàn)證snmpd 服務(wù)
snmpd 使用tcp/udp161 端口
[root@mysql-master-39~]# grep 'Simple Net Mgmt Proto' /etc/services
snmp 161/tcp # Simple Net Mgmt Proto
snmp 161/udp # Simple Net Mgmt Proto
[root@mysql-master-39~]# lsof -i :161
6).將SNMP服務(wù)設(shè)置開(kāi)機(jī)啟動(dòng)
注意設(shè)置防火墻,允許監(jiān)控端連接被監(jiān)控端的tcp/udp161端口
7).在監(jiān)控端使用snmpwalk 命令驗(yàn)證,在監(jiān)控端上執(zhí)行以下命令
snmpwalk -v 1 -c lepus_monitor 被監(jiān)控端ip
-v是指版本,-c 是指密鑰,獲取到系統(tǒng)信息則正常!
安裝完成后在lepus網(wǎng)頁(yè)配置中心-操作系統(tǒng)欄目配置操作系統(tǒng)信息,SNMP團(tuán)體名填寫(xiě)剛才的密鑰:lepus_monitor。
稍等幾分鐘,或在服務(wù)端lepus安裝目錄執(zhí)行python lepus.py 片刻看到數(shù)據(jù)
參考:
http://www.lepus.cc/post/65
http://suifu.blog.51cto.com/9167728/1770672
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。