Lepus3.8数据库监控系统的部署

                                                              Lepus3.8数据库监控系统的部署

      Lepus是一套开源的数据库监控平台,目前已经支持MySQLOracleSQLServerMongoDBRedis等数据库的基本监控和告警(MySQL已经支持复制监控、慢查询分析和定向推送等高级功能)。Lepus无需在每台数据库服务器部署脚本或Agent,只需要在数据库创建授权帐号后,即可进行远程监控,适合监控数据库服务器较多的公司和监控云中数据库,这将为企业大大减化监控部署流程,同时Lepus系统内置了丰富的性能监控指标,让企业能够在数据库宕机前发现潜在性能问题进行处理,减少企业因为数据库问题导致的直接损失。

一、LAMP基础环境的安装

      推荐你使用Xampp集成环境包进行安装,xampp是一个可靠的稳定的lamp套件,目前已被诸多公司用于生产服务器的部署,目前Lepus的开发环境,测试环境以及线上官网的WEB环境,都是运行在xampp环境下面,并且一直都是稳定的。

     Xampp下载地址:https://www.apachefriends.org/download.html

     官方推荐版本:xampp-linux-x64-1.8.2-5-installer.run

    操作系统: CentOS7

    Python版本: 2.7

安装Xampp步骤示例

 

复制代码
[root@localhost software]# wget http://cdn.lepus.cc/cdncache/software/xampp-linux-x64-1.8.2-5-installer.run
[root@localhost software]# chmod +x xampp-linux-x64-1.8.2-5-installer.run 
[root@localhost software]# ./xampp-linux-x64-1.8.2-5-installer.run 
—————————————————————————- 
Welcome to the XAMPP Setup Wizard. 

—————————————————————————- 
Select the components you want to install; clear the components you do not want 
to install. Click Next when you are ready to continue. 

XAMPP Core Files : Y (Cannot be edited) 

XAMPP Developer Files [Y/n] :y 

Is the selection above correct? [Y/n]: y 

—————————————————————————- 
Installation Directory 

XAMPP will be installed to /opt/lampp 
Press [Enter] to continue :

—————————————————————————- 
Setup is now ready to begin installing XAMPP on your computer. 

Do you want to continue? [Y/n]: y 

—————————————————————————- 
Please wait while Setup installs XAMPP on your computer. 

Installing 
0% ______________ 50% ______________ 100% 
######################################### 

—————————————————————————- 
Setup has finished installing XAMPP on your computer.
复制代码

 

其他问题:

1.如果远程访问xampp报下面错误

Access forbidden! New XAMPP security concept:

Access to the requested object is only available from the local network.

This setting can be configured in the file “httpd-xampp.conf”.

打开文件/opt/lampp/etc/extra/httpd-xampp.conf注释掉下面一行

#        Require local

2、配置启用虚拟目录

打开文件/opt/lamp/etc/extra/httpd-vhosts.conf 

打开下面的注释:

# Virtual hosts

3.启动LAMP

[root@localhost lampp]# ./lampp start
Starting XAMPP for Linux 1.8.2-5...
XAMPP: Starting Apache...already running.
XAMPP: Starting MySQL...ok.
XAMPP: Starting ProFTPD...already running

PS:lampp命令支持stop、status、start、restart命令。

二、安装Python基础模块

准备环境

首先安装Python环境(Python版本要求为Python2.6以上,不支持Python3)

 安装数据库连接Pthon的驱动包

1、安装MySQLdb for Python(必须安装) 

MySQLdb为Python连接和操作MySQL的类库,如果您准备使用lepus系统监控MySQL数据库,那么该模块必须安装。

安装步骤如下:

复制代码
装步骤如下:

#wget http://www.lepus.cc/cdncache/software/MySQLdb-python.zip

# unzip MySQLdb-python.zip 

# cd MySQLdb1-master/ 

# which mysql_config 

/usr/local/mysql/bin/mysql_config 

# vim site.cfg 修改如下: 

mysql_config = /usr/local/mysql/bin/mysql_config 
#yum install gcc libffi-devel python-devel openssl-devel urpmi xterm
# python setup.py build 

# python setup.py install 
复制代码

常见错误:

复制代码
[root@localhost MySQLdb1-master]# python setup.py build
Downloading http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz
Traceback (most recent call last):
  File "setup.py", line 10, in <module>
    use_setuptools()
  File "/home/tools/MySQLdb1-master/distribute_setup.py", line 145, in use_setuptools
    return _do_download(version, download_base, to_dir, download_delay)
  File "/home/tools/MySQLdb1-master/distribute_setup.py", line 124, in _do_download
    to_dir, download_delay)
  File "/home/tools/MySQLdb1-master/distribute_setup.py", line 194, in download_setuptools
    src = urlopen(url)
  File "/usr/lib64/python2.7/urllib2.py", line 154, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib64/python2.7/urllib2.py", line 437, in open
    response = meth(req, response)
  File "/usr/lib64/python2.7/urllib2.py", line 550, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib64/python2.7/urllib2.py", line 475, in error
    return self._call_chain(*args)
  File "/usr/lib64/python2.7/urllib2.py", line 409, in _call_chain
    result = func(*args)
  File "/usr/lib64/python2.7/urllib2.py", line 558, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 403: SSL is required
复制代码

解决方案:

直接下载get-pip.py,然后运行再次编译

wget https://bootstrap.pypa.io/get-pip.py and running python get-pip.py

OK!

(2)、测试驱动是否正常运行

       在lepus的安装文件包Python目录中,可以找到如下测试文件,测试上述驱动是否安装正确。

[root@localhost lepus]# python test_driver_mysql.py 
MySQL python drivier is ok!

注:

[root@lepus1.ops.prod.idc1 lepus]# python test_driver_mysql.py
libmysqlclient.so.20: cannot open shared object file: No such file or directory

 

解决方案:

 

ln -s /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib/libmysqlclient.so.20
如果是64系统则:
ln -s /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib64/libmysqlclient.so.20

 

 

 

2、安装

安装Redis 驱动 (如果需要监控Redis则必须安装)

# wget http://www.lepus.cc/cdncache/software/redis-py-2.10.3.tar.gz

# tar zxvf redis-py-2.10.3.tar.gz 

# cd redis-2.10.3/ 

# python setup.py install 

 

 

三、安装Lepus采集器

   1)下载软件安装包

 

#  cd /usr/local
#  git clone https://github.com/ruzuojun/lepus.git

 注:Centos6.5环境可能没有安装git,具体的安装步骤:https://www.cnblogs.com/lhbryant/p/6928894.html

     2)可对执行文件授权,并创建软链接

#  cd lepus
#  chmod +x lepus*
# ln -s /usr/local/lepus/lepus /usr/local/sbin/lepus
# ln -s /usr/local/lepus/lepus_monitor /usr/local/sbin/lepus_mointor

3)在监控机创建数据库,并授权

mysql> create database lepus default character set utf8;
mysql> grant select,insert,update,delete,create on lepus.* to 'lepus_user'@'%' identified by '123456';
mysql> flush privileges;

4)导入SQL文件夹里的初始化SQL文件(表结构和数据文件)

# mysql -uroot –p  lepus < sql/lepus_table.sql
# mysql -uroot –p  lepus < sql/lepus_data.sql

5)修改配置文件

     进入到安装目录/usr/local/lepus

# cd /usr/local/lepus/

# vim etc/config.ini

    监控MySQL数据库连接地址

[root@localhost etc]# cat config.ini 
###监控机MySQL数据库连接地址###
[monitor_server]
host="192.168.2.10"
port=3306
user="lepus_user"
passwd="123456"
dbname="lepus"

6)启动Lepus

   此时,可以执行启动命令启动Lepus采集器

[root@localhost lepus]# ./lepus start
lepus server start success!
[root@localhost lepus]# ps -ef | grep lepus
root      2343     1  0 10:19 pts/1    00:00:00 /bin/bash ./lepus start
root      2345  2343  0 10:19 pts/1    00:00:00 python lepus.py
root      2346  2345  0 10:19 pts/1    00:00:00 python lepus.py
root      2353  2345  0 10:19 pts/1    00:00:00 python lepus.py
root      2356  2316  0 10:19 pts/1    00:00:00 grep --color=auto lepus

查看lepus的日志,会看到如下的提示,是因为没有添加主机,属于正常提示。

复制代码
[root@localhost logs]# cat lepus.log 
2018-05-30 10:19:23 [INFO] lepus controller start.
2018-05-30 10:19:23 [INFO] check mysql controller started.
2018-05-30 10:19:23 [WARNING] check mysql: not found any servers
2018-05-30 10:19:23 [INFO] check mysql controller finished.
Traceback (most recent call last):
  File "check_redis.py", line 8, in <module>
    import redis
ImportError: No module named redis
2018-05-30 10:19:38 [INFO] check os controller started.
2018-05-30 10:19:38 [WARNING] check os: not found any servers
2018-05-30 10:19:38 [INFO] check os controller finished.
2018-05-30 10:19:41 [INFO] alarm controller started.
2018-05-30 10:19:41 [INFO] alarm controller finished.
tarted.
2018-05-30 10:19:41 [INFO] alarm controller finishe
复制代码

到这里,Lepus采集程序安装完毕!

 

四、安装WEB管理台

      复制lepus/web文件夹里的文件到Apache对应的网站虚拟目录(备注:根据不同的安装方式,这个目录是不一样的,如果采用xampp安装的Apache 环境,则默认程序目录为/opt/lampp/htdocs/)具体步骤如下:

    复制lepus/web文件夹里的文件到Apache对应的网站虚拟目录

cp -rf /usr/local/lepus/web/*  /opt/lampp/htdocs/

   修改/opt/lampp/etc/httpd.conf文件,将下面的denied修改为granted

<Directory />
    AllowOverride none
    Require all granted
</Directory>

   修改/opt/lampp/etc/extra/httpd-vhosts.conf 文件,配置虚拟目录,示例如下:

<VirtualHost *:80>
    ServerAdmin demo.lepus.com
    DocumentRoot "/usr/local/lepus/web"
    ServerName demo.lepus.com
    ServerAlias demo.lepus.com
    ErrorLog "logs/demo.lepus.com-error_log"
    CustomLog "logs/demo.lepus.com-access_log" common
</VirtualHost>

修改完成后重启apache服务

[root@localhost bin]# pwd
/opt/lampp/bin
[root@localhost bin]# ./apachectl start

   打开application\config\database.php文件,修改PHP连接监控服务器的数据库信息

复制代码
$db['default']['hostname'] = '192.168.2.10';
$db['default']['port']     = '3306';
$db['default']['username'] = 'lepus_user';
$db['default']['password'] = '123456';
$db['default']['database'] = 'lepus';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
复制代码

登录进行添加主机和监控

通过浏览器输入IP地址或域名打开监控界面,即可登录系统。.默认管理员账号密码admin/Lepusadmin登录后请修改管理员密码,增加普通账号。

登录界面如下所示:

 登录后请修改管理员密码,增加普通账号,对需要监控的数据库授权,在WEB添加主机进行监控。

五、Lepus监控数据库配置

1)被监控端防火墙打开运行监控端ip的数据库端口,MySQL添加监控账号:

被监控端数据库执行:

mysql>grant select,process,super on *.* to 'lepus_monitor'@'server监控端ip' identified by '123456';

被监控端创建完账号既可以在监控短网页上添加mysql数据库监控:

Lepus MySQL主从复制:

Lepus提供了一个直观的WEB界面来监视当前MySQL的复制状态。无需在添加主机时配置MySQL的主从信息,Lepus会自动发现您数据库里的主从拓扑结构。并实时监控MySQL复制进程状态,复制延时,主从binlog位置,主库binlog磁盘大小等信息。目前已经支持配置为GTID模式的数据库复制监控。

点击MySQL Monitor > Replication Monitor即可进入Replication监控WEB界面。界面如下所示:

 

Lepus mysql主从复制选项问题:、

  Lepus监控复制项没有数据:

Lepus监控复制项没有数据:

使用Lepus3.8监控MySQL5.7,为什么复制监控那一块显示不了结果呢?主从同步是正常的。

日志文件主要出现这种错误:

2018-05-30 14:35:34 [WARNING] check mysql 172.16.11.42:3307 failure: -1 error totally whack
2018-05-30 14:35:34 [WARNING] check mysql 172.16.11.42:3307 failure: sleep 3 seconds and check again.
2018-05-30 14:35:34 [WARNING] check mysql 172.16.11.40:3307 failure: -1 error totally whack
2018-05-30 14:35:34 [WARNING] check mysql 172.16.11.40:3307 failure: sleep 3 seconds and check again.
2018-05-30 14:35:43 [INFO] check mysql controller finished.

被监控端机器设置如下:

set global show_compatibility_56=on;就好啦应该,是因为check.mysql.py中show_compatibility_56 mysql 5.7不再支持

2、复制模块打开没有权限:

解决方法(监控端):find   /  -name  lp_mysql.php

[root@localhost lepus]# find   /  -name  lp_mysql.php
/home/tools/lepus/web/application/controllers/lp_mysql.php
/usr/local/lepus/web/application/controllers/lp_mysql.php
/opt/lampp/htdocs/application/controllers/lp_mysql.php
复制代码
vi lp_mysql.php
注释掉这个文件的337行就可以了
 public function replication_chart(){
        # parent::check_privilege('parent::check_privilege()');
        $server_id = $this->uri->segment(3);
        $server_id=!empty($server_id) ? $server_id : "0";
        $begin_time = $this->uri->segment(4);
        $begin_time=!empty($begin_time) ? $begin_time : "60";
        $time_span = $this->uri->segment(5);
        $time_span=!empty($time_span) ? $time_span : "hour";
复制代码

然后再次刷新:

通过顶部搜索栏,您可以按应用进行分组查看,或者按各种指标进行排序查看,如下所示可以按照binlog大小倒序排序。

通过点击备库的图标,您还可以看到当前库历史延时图表。

2)得不到数据库表空间分析数据的解决方法:

在Lepus.py中添加check_mysql_bigtable,如下:

if monitor=="1":
        if monitor_mysql=="1":
            job = Process(target = job_run, args = ('check_mysql',frequency_monitor))
            joblist.append(job)
            job.start()
            job = Process(target = job_run, args = ('check_mysql_bigtable',int(frequency_monitor)*120))
            joblist.append(job)
            job.start()

图中“*120“是设置时间间隔,若是网页页面设置了1分钟刷新数据,这儿改成120。则最终是2小时才会监控得到新数据。重启lepus服务。

 

posted @   bianxiaobian  阅读(893)  评论(0编辑  收藏  举报
编辑推荐:
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
阅读排行:
· 手把手教你更优雅的享受 DeepSeek
· AI工具推荐:领先的开源 AI 代码助手——Continue
· 探秘Transformer系列之(2)---总体架构
· V-Control:一个基于 .NET MAUI 的开箱即用的UI组件库
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现
点击右上角即可分享
微信分享提示