天兔Lepus数据库监控软件的搭建
Posted ninjawei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了天兔Lepus数据库监控软件的搭建相关的知识,希望对你有一定的参考价值。
第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
[[email protected] ~]# cd /tools [[email protected] tools]# tar xf httpd-2.2.31 [[email protected] tools]# cd httpd-2.2.31 [[email protected] tools]# useradd www -s /sbin/nologin -M
安装必要的软件包zlib
[[email protected] httpd-2.2.31]# yum install zlib zlib-devel -y
执行配置文件并安装
[[email protected] 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 [[email protected] httpd-2.2.31]# make && make install
创建软链接并开启服务
[[email protected] httpd-2.2.31]# ln -s /application/apache2.2.31/ /application/apache [[email protected] httpd-2.2.31]# /application/apache/bin/apachectl start [[email protected] httpd-2.2.31]# netstat -lntup|grep http tcp 0 0 :::80 :::* LISTEN 57310/httpd
3.1.2 基于apache虚拟主机的配置
配置虚拟主机的目的也是为了检测http服务是否可以正常显示主页。
以www.abc.com为例来配置一个主页
[[email protected] apache]# cd /application/apache/htdocs/ [[email protected] apache]# mkdir www
修改页面配置httpd.conf文件
[[email protected] 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
[[email protected] 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>
建立一个首页文件用于测试页面是否正常
[[email protected] htdocs]# echo ‘Apache www‘ >www/index.html
重启服务器刷新配置
[[email protected] apache]# /application/apache/bin/apachectl -t [[email protected] apache]# /application/apache/bin/apachectl graceful
修改客户端的hosts文件添加IP到我们的页面地址,如果通过浏览器访问www.abc.com出现apache www的内容,就说明apache成功搭建完成了。
3.1.3 安装mysql
这里直接以单实例安装的方式完成
[[email protected] apache]# cd /tools [[email protected] tools]# useradd -s /sbin/nologin -M mysql [[email protected] tools]# tar xf mysql-5.5.49-linux2.6-x86_64.tar.gz [[email protected] tools]# mv mysql-5.5.49-linux2.6-x86_64 /application/mysql-5.5.49 [[email protected] tools]# ln -s /application/mysql-5.5.49/ /application/mysql [[email protected] tools]# chown -R mysql:mysql /application/mysql [[email protected] tools]# cd /application/mysql [[email protected] mysql]# ./scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data/ --user=mysql
3.1.4 mysql调试并开启数据库
[[email protected] mysql]# cd bin/ [[email protected] bin]# sed -i ‘s#/usr/local/#/application/#g‘ mysqld_safe [[email protected] bin]# cd ../ [[email protected] mysql]# cp support-files/my-small.cnf /etc/my.cnf [[email protected] mysql]# echo ‘export PATH=/application/mysql/bin:$PATH‘ >>/etc/profile [[email protected] mysql]# . /etc/profile [[email protected] mysql]# sed -i ‘s#/usr/local/#/application/#g‘ support-files/mysql.server [[email protected] mysql]# cp support-files/mysql.server /etc/init.d/mysqld [[email protected] mysql]# chmod +x /etc/init.d/mysqld [[email protected] mysql]# chkconfig --add mysqld [[email protected] mysql]# /etc/init.d/mysqld start
3.1.5 php5.5.32的安装
cd /tools/ [[email protected] tools]# tar xf libiconv-1.14.tar.gz [[email protected] tools]# cd libiconv-1.14 [[email protected] libiconv-1.14]# ./configure --prefix=/usr/local/libiconv [[email protected] libiconv-1.14]# make && make install [[email protected] libiconv-1.14]# cd ../ [[email protected] 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 [[email protected] tools]# tar xf php-5.5.32.tar.gz [[email protected] tools]# cd php-5.5.32 [[email protected] 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 [[email protected] php-5.5.32]# ln -s /application/mysql/lib/libmysqlclient.so.18 /usr/lib64/ [[email protected] php-5.5.32]# touch ext/phar/phar.phar [[email protected] php-5.5.32]# make [[email protected] php-5.5.32]# make install [[email protected] php-5.5.32]# ln -s /application/php5.5.32 /application/php [[email protected] php-5.5.32]# cp php.ini-production /application/php/lib/php.ini [[email protected] php-5.5.32]# cd /application/php/etc [[email protected] etc]# cp php-fpm.conf.default php-fpm.conf [[email protected] etc]# grep libphp5.so /application/apache/conf/httpd.conf [[email protected] etc]# ls /application/apache/modules/ [[email protected] 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
编辑测试文件
[[email protected] etc]# cd /application/apache/htdocs/www [[email protected] www]# echo "<?php phpinfo(); ?>" >test_info.php
在浏览器中输入www.abc.com/test_info.php如果出现php的配置结果页面就说明php与http已经关联了。
3.2.2 http与mysql的结合
同样,在上面的目录中在建立一个mysql测试的文件,文件内容如下
[[email protected] 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数据库监控软件的搭建的主要内容,如果未能解决你的问题,请参考以下文章