1. 程式人生 > >天兔Lepus數據庫監控軟件的搭建

天兔Lepus數據庫監控軟件的搭建

研究 除了 3.1 屬於 我們 加載 access mos mil

第1章 lepus介紹

Lepus是一套開源的數據庫監控平臺,目前已經支持MySQL、Oracle、SQLServer、MongoDB、Redis等數據庫的基本監控和告警(MySQL已經支持復制監控、慢查詢分析和定向推送等高級功能)。Lepus無需在每臺數據庫服務器部署腳本或Agent,只需要在數據庫創建授權帳號後,即可進行遠程監控,適合監控數據庫服務器較多的公司和監控雲中數據庫,這將為企業大大減化監控部署流程,同時Lepus系統內置了豐富的性能監控指標,讓企業能夠在數據庫宕機前發現潛在性能問題進行處理,減少企業因為數據庫問題導致的直接損失。

第2章 軟件安裝的必要需求

軟件需要LAMP環境,需要的核心包如下:

以下軟件包只需要部署在監控機即可。被監控機無需部署。

操作系統為CentOS6.8

1.MySQL5.1及以上(必須,用來存儲監控系統采集的數據)

2.Apache 2.2及以上 (必須,WEB服務器運行服務器)

3.PHP 5.3以上 (必須,提供WEB界面支持,不支持PHP7)

4.Python2 (必須,推薦2.6及以上版本,執行數據采集和報警任務,不支持Python3)

5.Python連接和監控數據庫的相關驅動模塊包:

MySQLdb for python (Python連接MySQl的接口,用於監控MySQL,此模塊必須安裝)

cx_oracle for python (Python連接Oracle的接口,非必須,如果需要監控oracle此模塊必須安裝)

Pymongo for python (Python連接MongoDB的接口,非必須,如果需要監控MongoDB此模塊必須安裝)

redis-py for python (Python連接Redis的接口,非必須,如果需要監控Redis此模塊必須安裝)

本次安裝演示采用如下軟件包搭建

軟件

說明

httpd-2.2.31.tar.gz

LAMP搭建必須

mysql-5.5.49-linux2.6-x86_64.tar.gz

MySQL數據庫

php-5.5.32.tar.gz

php

libiconv-1.14.tar.gz

支持php必要組件

Python-2.7.6.tgz

必要安裝

redis-py-2.10.3.tar.gz

監控redis模塊(選裝)

3.3.4 cx_oracle for python

監控oracle模塊(選裝)

oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm

oracle數據庫必要模塊

oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm

oracle數據庫必要模塊

oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm

oracle數據庫必要模塊

pymongo-2.7.tar.gz

監控mongodb模塊

freetds-0.82

監控SQLServer模塊

Lepus3.7.zip

天兔監控軟件本體

編譯安裝軟件的目錄

/tools 軟件包統一存放目錄

/server/scripts 腳本存放目錄

/application 編譯安裝後軟件所在目錄位置

第3章 軟件安裝

3.1 搭建LAMP環境

3.1.1 編譯安裝httpd服務

解壓目錄並創建一個用於http服務的賬戶www

[root@m02 ~]# cd /tools

[root@m02 tools]# tar xf httpd-2.2.31

[root@m02 tools]# cd httpd-2.2.31

[root@m02 tools]# useradd www -s /sbin/nologin -M

安裝必要的軟件包zlib

[root@m02 httpd-2.2.31]# yum install zlib zlib-devel -y

執行配置文件並安裝

[root@m02 httpd-2.2.31]# ./configure --prefix=/application/apache2.2.31 --enable-deflate --enable-expires --enable-headers --enable-modules=most --enable-so --with-mpm=worker --enable-rewrite

[root@m02 httpd-2.2.31]# make && make install

創建軟鏈接並開啟服務

[root@m02 httpd-2.2.31]# ln -s /application/apache2.2.31/ /application/apache
[root@m02 httpd-2.2.31]# /application/apache/bin/apachectl start
[root@m02 httpd-2.2.31]# netstat -lntup|grep http
tcp        0      0 :::80                       :::*                        LISTEN      57310/httpd  

3.1.2 基於apache虛擬主機的配置

配置虛擬主機的目的也是為了檢測http服務是否可以正常顯示主頁。

以www.abc.com為例來配置一個主頁

[root@m02 apache]# cd /application/apache/htdocs/

[root@m02 apache]# mkdir www

修改頁面配置httpd.conf文件

[root@m02 htdocs]# vim /application/apache/conf/httpd.conf

搜索/httpd-v,將前面的註釋去除。

# Virtual hosts

Include conf/extra/httpd-vhosts.conf

搜索文件中的Servername將註釋打開,如果有需要就修改內網IP地址。

ServerName 127.0.0.1:80

編輯與配置http頁面文件httpd-vhosts.conf

[root@m02 htdocs]# vim /application/apache/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>

    ServerAdmin 1111111@qq.com #管理員郵箱

    DocumentRoot "/application/apache2.2.31/htdocs/www" #頁面虛擬目錄

    ServerName www.abc.com #域名

    ServerAlias abc.com #別名

    ErrorLog "logs/www_error_log" #錯誤日誌

    CustomLog "logs/www_access_log" common #訪問日誌

</VirtualHost>

建立一個首頁文件用於測試頁面是否正常

[root@m02 htdocs]# echo Apache www >www/index.html

重啟服務器刷新配置

[root@m02 apache]# /application/apache/bin/apachectl -t

[root@m02 apache]# /application/apache/bin/apachectl graceful

修改客戶端的hosts文件添加IP到我們的頁面地址,如果通過瀏覽器訪問www.abc.com出現apache www的內容,就說明apache成功搭建完成了。

3.1.3 安裝mysql

這裏直接以單實例安裝的方式完成

[root@m02 apache]# cd /tools

[root@m02 tools]# useradd -s /sbin/nologin -M mysql

[root@m02 tools]# tar xf mysql-5.5.49-linux2.6-x86_64.tar.gz

[root@m02 tools]# mv mysql-5.5.49-linux2.6-x86_64 /application/mysql-5.5.49

[root@m02 tools]# ln -s /application/mysql-5.5.49/ /application/mysql

[root@m02 tools]# chown -R mysql:mysql /application/mysql

[root@m02 tools]# cd /application/mysql

[root@m02 mysql]# ./scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data/ --user=mysql

3.1.4 mysql調試並開啟數據庫

[root@m02 mysql]# cd bin/

[root@m02 bin]# sed -i s#/usr/local/#/application/#g mysqld_safe

[root@m02 bin]# cd ../

[root@m02 mysql]# \cp support-files/my-small.cnf /etc/my.cnf

[root@m02 mysql]# echo export PATH=/application/mysql/bin:$PATH >>/etc/profile

[root@m02 mysql]# . /etc/profile

[root@m02 mysql]# sed -i s#/usr/local/#/application/#g support-files/mysql.server

[root@m02 mysql]# cp support-files/mysql.server /etc/init.d/mysqld

[root@m02 mysql]# chmod +x /etc/init.d/mysqld

[root@m02 mysql]# chkconfig --add mysqld

[root@m02 mysql]# /etc/init.d/mysqld start

3.1.5 php5.5.32的安裝

cd /tools/

[root@m02 tools]# tar xf libiconv-1.14.tar.gz

[root@m02 tools]# cd libiconv-1.14

[root@m02 libiconv-1.14]# ./configure --prefix=/usr/local/libiconv

[root@m02 libiconv-1.14]# make && make install

[root@m02 libiconv-1.14]# cd ../

[root@m02 tools]# yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel libmcrypt-devel mhash mcrypt openssl-devel pcre-devel -y

[root@m02 tools]# tar xf php-5.5.32.tar.gz

[root@m02 tools]# cd php-5.5.32

[root@m02 php-5.5.32]# ./configure --prefix=/application/php5.5.32 --with-mysql=/application/mysql --with-pdo-mysql=/application/mysql --with-iconv-dir=/usr/local/libiconv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --enable-short-tags --enable-static --with-xsl --with-fpm-user=www --with-fpm-group=www --enable-opcache=no --with-apxs2=/application/apache/bin/apxs --enable-ftp

[root@m02 php-5.5.32]# ln -s /application/mysql/lib/libmysqlclient.so.18  /usr/lib64/

[root@m02 php-5.5.32]# touch ext/phar/phar.phar

[root@m02 php-5.5.32]# make

[root@m02 php-5.5.32]# make install

[root@m02 php-5.5.32]# ln -s /application/php5.5.32 /application/php

[root@m02 php-5.5.32]# cp php.ini-production /application/php/lib/php.ini

[root@m02 php-5.5.32]# cd /application/php/etc

[root@m02 etc]# cp php-fpm.conf.default php-fpm.conf

[root@m02 etc]# grep libphp5.so /application/apache/conf/httpd.conf

[root@m02 etc]# ls /application/apache/modules/

[root@m02 etc]# /application/php/sbin/php-fpm

3.2 http與php模塊以及mysql的結合

3.2.1 配置httpd.conf文件

在/application/apache/conf/httpd.conf文件的第311行增加如下內容:

AddType application/x-httpd-php .html .htm .php .phtml

AddType application/x-httpd-php-source .html .htm .phps

在168行修改:

DirectoryIndex index.php index.html

在第67行修改:

User www

Group www

編輯測試文件

[root@m02 etc]# cd /application/apache/htdocs/www

[root@m02 www]# echo "<?php phpinfo(); ?>" >test_info.php

在瀏覽器中輸入www.abc.com/test_info.php如果出現php的配置結果頁面就說明php與http已經關聯了。

3.2.2 http與mysql的結合

同樣,在上面的目錄中在建立一個mysql測試的文件,文件內容如下

[root@m02 www]#  vim /application/apache/htdocs/www/test_mysql.php

<?php

        $link_id=mysql_connect(localhost,root,123456) or mysql_error();

        if($link_id){

                echo "MySQL successful by abc !";

            }else {

                echo mysql_error();

        }

?>

請註意mysql登錄的賬號密碼,如果為空請自己設定mysql登錄的賬號密碼。

瀏覽器中輸入www.abc.com/test_mysql.php地址查看數據庫連接狀態。

3.3 安裝Python環境

安裝數據庫連接Python的驅動包。MySQLdb為Python連接和操作MySQL的類庫,如果您準備使用lepus系統監控MySQL數據庫,那麽該模塊必須安裝。

3.3.1 安裝 python (必須安裝)

tar xf Python-2.7.6.tgz

cd Python-2.7.6

./configure --prefix=/application/python2.7.6 #註意:安裝在新目錄,防止覆蓋系統默認的python

make && make install

mv /usr/bin/python /usr/bin/python2.6.6.old

ln -s /application/python2.7.6/bin/python /usr/bin/python

python -V

如果出現Python 2.7.6的提示就說明成功了。

此時由於更新python版本,使用yum命令時會報錯。

修改

vim /usr/bin/yum

#!/usr/bin/python 更換為#!/usr/bin/python2.6.6.old(即為原來的版本鏈接)

3.3.2 python setuptools install

cd /tools

tar xf setuptools-12.0.3.tar.gz

cd setuptools-12.0.3

python setup.py install

3.3.3 安裝mysqldb for python

cd /tools

unzip MySQLdb-python.zip

cd MySQLdb1-master/

which mysql_config

vim site.cfg

mysql_config = /application/mysql/bin/mysql_config #將註釋打開,修改後面which mysql_config

的路徑。

python setup.py build 

python setup.py install

如果mysql_config不存在就先安裝一下setuptools。

3.3.4 安裝Redis 驅動 (如果需要監控Redis則必須安裝)

cd /tools

tar xf redis-py-2.10.3.tar.gz

cd redis-2.10.3/

python setup.py install

3.3.5 安裝cx_oracle for python (如果需要監控Oracle則必須安裝)

安裝oracle instant client,這個模塊很坑爹,在oracle官網上點擊下載直接會跳到讓你登錄註冊界面,於是我直接走捷徑搞到了必要的安裝包

oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm

oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm

oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm

cd /tools

rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm

rpm -ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm

rpm -ivh oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm

vim /root/.bash_profile #編輯全局配置文件

# .bash_profile



# Get the aliases and functions

if [ -f ~/.bashrc ]; then

        . ~/.bashrc

fi



# User specific environment and startup programs

ORACLE_HOME="/usr/lib/oracle/11.2/client64"

PATH=$PATH:$ORACLE_HOME/bin

#PATH=$PATH:$HOME/bin

export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/usr/local/lib

export LD_LIBRARY_PATH

source ~/.bash_profile #命令行加載生效

echo "/usr/lib/oracle/11.2/client64/lib"  >>/etc/ld.so.conf

/sbin/ldconfig #命令行執行生效

3.3.6 安裝cx_Oracle-5.1.2

tar xf cx_Oracle-5.1.2.tar.gz

cd cx_Oracle-5.1.2

python setup.py build 

python setup.py install

3.3.7 安裝Pymongo for python (如果需要監控Mongodb則必須安裝)

cd /tools

tar xf pymongo-2.7.tar.gz

cd pymongo-2.7

python setup.py install

3.3.8 安裝SQLServer驅動 (如果需要監控SQLServer則必須安裝)

3.3.8.1安裝freetds

cd /tools

tar xf freetds-0.82.tar.gz

cd freetds-0.82

./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib --enable-dbmfix --with-gnu-ld --enable-shared --enable-static

make

make install

echo "/usr/local/freetds/lib" >>/etc/ld.so.conf.d/freetds.conf

ldconfig -v

3.3.8.2安裝pymssql

cd /tools

tar xf pymssql-2.1.1.tar.gz

cd pymssql-2.1.1

python setup.py install

3.3.9 解壓Lepus3.7軟件檢查各部分驅動是否正常連接

cd /tools

unzip Lepus3.7.zip

cd /tools/lepus_v3.7/python

python test_driver_mysql.py

python test_driver_oracle.py

python test_driver_mongodb.py

python test_driver_redis.py

3.4 安裝lepus采集器

cd /tools/lepus_v3.7/python

chmod +x lepus*

chmod +x install.sh

./install.sh

cd /usr/local/lepus/

3.4.1 在監控機創建監控數據庫並授權

登錄數據庫

create database lepus default character set utf8;

grant all on lepus.* to lepus_user@localhost identified by 123456;

flush privileges;

導入SQL文件夾裏的初始化SQL文件(表結構和數據文件)

cd /tools/lepus_v3.7/sql/

mysql -uroot -p123456 lepus <lepus_table.sql

mysql -uroot -p123456 lepus <lepus_data.sql

3.5 安裝WEB管理臺

復制lepus_v3.7/php文件夾裏的文件到apache對應的網站虛擬目錄,修改配置

cd /tools/lepus_v3.7

cp -rf php/* /application/apache/htdocs/www/

修改lepus的數據庫連接文件

vim /application/apache/htdocs/www/application/config/database.php

$db[default][hostname] = 127.0.0.1;

$db[default][port]     = 3306;

$db[default][username] = lepus_user;

$db[default][password] = 123456;

$db[default][database] = lepus;

$db[default][dbdriver] = mysql;

ServerName要修改成本機127.0.0.1:80

修改虛擬配置文件

/application/apache/conf/extra/httpd-vhosts.conf

重啟apache服務

修改配置文件

vim /usr/local/lepus/etc/config.ini

###監控機MySQL數據庫連接地址###

[monitor_server]

host="127.0.0.1"

port=3306

user="lepus_user"

passwd="123456"

dbname="lepus"

啟動lepus服務

cd /usr/local/lepus/

lepus start

ps -ef|grep lepus

技術分享圖片

因為還沒有添加主機,所以查看日誌會出現警示提示,屬於正常提示。當然這一步也可以在部署完Lepus WEB控制臺後再進行啟動。

第4章 添加MySQL監控實例

Lepus監控數據庫是采用遠程連接方式進去獲取數據,所以無需要在數據庫服務器端部署相關agent或計劃任務。但是需要在數據庫端進行授權訪問,然後在WEB端配置實例就可以了。具體步驟如下所示。

首先我們在被監控的數據庫端執行授權,允許Lepus采集器服務器能連接到數據庫,需要在被監控的數據庫執行如下命令來授權。

在需要被監控的數據庫服務器上授權,我們現在借用10.0.0.51上的多實例數據庫3306來操作測試

grant select,process,super on *.* to lepus_user@10.0.0.% identified by 123456;

flush privileges;

創建完成後,就可以在頁面中配置主機項了

技術分享圖片

作者按:
1.以上文檔借鑒了天兔官網的安裝文檔,筆者自己安裝搭建的,官網上使用的LAMP環境是一個整和包的Xampp,筆者沒有玩明白,搭建完成後在安裝軟件時也都是坑。所以最後一氣之下,自己手動搭建完成了一個LAMP環境。整個安裝過程已經完全排除了大多數坑,如果一步步按照筆者這個文檔百分百一樣,搭建絕對是可以完成的。
2.本文只是一個基礎的搭建文檔,並沒有深入研究該監控軟件的細節。

天兔Lepus數據庫監控軟件的搭建