Lepus(天兔)监控数据库

该博文是参考Lepus官方文档撰写的,官方文档蛮详细的,但是有些下载链接失效(这个开源产品的维护者比较忙,所以更新不太及时),也为了以自己的写作风格记录下lepus的使用方法,所以这篇博文就出现了。

Lepus系统特性如下:

  • 无需Agent,远程监视云中数据库
  • WEB直观的管理和监视数据库
  • 实时MySQL健康监视和告警
  • 实时MySQL复制监视和告警
  • 实时MySQL资源监视和分析
  • 实时MySQL缓存等性能监视
  • 实时InnoDB IO性能监控
  • MySQL表空间增长趋势分析
  • 可视化MySQL慢查询在线分析
  • MySQL慢查询自动推送功能
  • MySQL AWR在线性能分析
  • 实时Oracle健康监控和报警
  • 实时Oracle表空间使用监控
  • 实时Oracle性能监控
  • 实时MongoDB健康监控和报警
  • 实时MongoDB索引性能监控
  • 实时MongoDB内存使用监控
  • 实时Redis健康监控和报警
  • 实时Redis性能监控
  • 实时SQLServer健康监控和报警
  • 实时OS主机CPU/内存/磁盘/网络/IO监控
  • 可视化告警系统,邮件发送告警,短信接口支持
  • 严格的权限认证系统
  • 丰富的健康性能分析图表
  • 多维的对比和性能分析

一、环境准备

OS IP 主机名 角色
Cent os 7.5 192.168.20.2 mysql 被监控端
Cent os 7.5 192.168.20.3 redis 被监控端
Cent os 7.5 192.168.20.4 lepus 监控端

部署Lepus需要的核心如下:

  • MySQL5.1及以上(必须,用来存储监控系统采集的数据)。
  • Apache 2.2及以上 (必须,WEB服务器运行服务器)。
  • PHP 5.3以上 (必须,提供WEB界面支持,不支持PHP7)。
  • Python2 (必须,推荐2.6及以上版本,执行数据采集和报警任务,不支持Python3)。
  • 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此模块必须安装)。

注:由于lepus官方文档最后一次更新是在17年,所以官方提供的很多下载链接失效了,我这里下载了所涉及到的所有软件包,版本与官方所用版本完全一致,有需要的话,可以通过我的网盘链接下载,提取码:vofv 。

注:PHP和Python都是跨平台的语言,所以理论上系统应该可以支持在不同的平台上运行。但是由于时间和精力以及资源有限,目前天兔系统只测试完善了Centos/RedHat系统的支持。官方目前提供的技术支持也是只针对于Centos/RedHat系统,其他系统暂不支持技术服务。

二、部署LAMP环境

lepus需要lamp环境的支持,配置lamp环境的方式有很多中,官方采用的是集成环境包Xampp进行部署的,所以这里就以官方为准。

Xampp相关链接:

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

注意:接下来的所有操作,没有特殊声明的话,都是在lepus主机上进行的。

#执行安装脚本
[[email protected] src]# chmod +x xampp-linux-x64-1.8.2-5-installer.run
[[email protected] src]# ./xampp-linux-x64-1.8.2-5-installer.run
#执行后,一路默认回车即可。

出现如下所示,表示安装成功(lampp默认安装在/opt目录下):

1、开启远程访问xampp

部署成功后,就在监听80端口,但是默认只能在本地访问,如需开启远程访问,需进行以下操作:

1)编辑httpd-xampp.conf文件:

[[email protected] ~]# vim /opt/lampp/etc/extra/httpd-xampp.conf
#更改如下:
<LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">
#        Require local      #注释掉该行
       ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>
#设置命令环境变量
[[email protected] bin]# vim /etc/profile  #在末尾添加以下内容
export PATH=/opt/lampp/bin:${PATH}
[[email protected] bin]# source /etc/profile
#重启服务,使更改生效
[[email protected] ~]# httpd -k stop
[[email protected] ~]# httpd -k start

浏览器访问lepus服务器,即可看到如下页面,表示lampp运行成功:

三、安装python基础模块

自行准备python环境,一般Centos系统自带python环境,python环境要求在2.6以上,但不支持python3。

以下几个python链接数据库的驱动包,选择性的安装即可(要监控哪种类型的数据库,就安装哪个包)。

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

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

[[email protected] ~]# yum -y install python-devel
[[email protected] ~]# unzip MySQL-python-1.2.5.zip
[[email protected] bin]# which mysql_config   #查看mysql_config命令的绝对路径
/opt/lampp/bin/mysql_config
[[email protected] ~]# cd MySQL-python-1.2.5/
[[email protected] MySQL-python-1.2.5]# vim site.cfg  #修改以下
mysql_config = /opt/lampp/bin/mysql_config   #指定mysql_config命令的绝对路径
#进行安装
[[email protected] MySQL-python-1.2.5]# python setup.py build
[[email protected] MySQL-python-1.2.5]# python setup.py install

2、安装redis相关驱动(如果需要监控Redis则必须安装)

[[email protected] ~]# tar zxf redis-py-2.10.3.tar.gz
[[email protected] ~]# cd redis-py-2.10.3/
[[email protected] redis-py-2.10.3]# python setup.py install

如果需要监控其他数据库,参考官方文档去安装,某些软件包,在我博文的开头网盘链接中也有提供。

四、安装Lepus采集器

注:以下所有操作都是在Lepus主机上进行,涉及到数据库授权等一些操作,也是在Lepus上进行,不用想这台主机没有装MySQL,lampp软件包已经集成了MySQL。

1、下载软件包

[[email protected] ~]# cd /usr/local
[[email protected] local]# git clone https://github.com/ruzuojun/lepus.git

如果git clone命令报错如下:

正克隆到 ‘lepus‘...
fatal: unable to access ‘https://github.com/ruzuojun/lepus.git/‘: SSL certificate problem: unable to get local issuer certificate

请执行下面的指令即可:

[[email protected] local]# git config --global http.sslVerify false

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

[[email protected] lepus]# pwd
/usr/local/lepus
[[email protected] lepus]# chmod +x lepus*
[[email protected] lepus]# ln -sf /usr/local/lepus/lepus /usr/local/bin/
[[email protected] lepus]# ln -sf /usr/local/lepus/lepus_monitor /usr/local/bin/

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

[[email protected] lepus]# ln -sf /opt/lampp/lampp /usr/local/bin
[[email protected] lepus]# lampp start           #启动lamp环境
[[email protected] lepus]# mysql -uroot   #默认数据库无密码
#创建相关库及用户
mysql> create database lepus default character set utf8;
mysql> grant select,insert,update,delete,create on lepus.* to ‘lepus_user‘@‘localhost‘ identified by ‘123.com‘;
mysql> flush privileges;

4、导入SQL目录中的初始化SQL文件(表结构和数据文件)

[[email protected] lepus]# pwd
/usr/local/lepus
[[email protected] lepus]# mysql -uroot lepus < sql/lepus_table.sql
[[email protected] lepus]# mysql -uroot lepus < sql/lepus_data.sql

5、修改配置文件

[[email protected] lepus]# pwd
/usr/local/lepus
[[email protected] lepus]# cat etc/config.ini   #修改配置文件如下
###监控机MySQL数据库连接地址###
[monitor_server]
host="127.0.0.1"
port=3306
user="lepus_user"
passwd="123.com"
dbname="lepus"
#注:上面指定的数据库信息是lepus主机用来存储采集到的信息的,并不是被监控端

6、启动lepus

[[email protected] lepus]# lepus start

如果报错如下:

[[email protected] lepus]# lepus start
/usr/local/bin/lepus: 行 16: 72095 段错误               (吐核)nohup python lepus.py &>logs/lepus.log
lepus server start fail!

则执行以下指令即可:

[[email protected] lepus]# ln -s /opt/lampp/lib/* /usr/lib64/
[[email protected] lepus]# lepus start    #再次启动即可成功
lepus server start success!

7、测试各个数据库驱动是否正常运行(非必须)

[[email protected] lepus]# pwd
/usr/local/lepus
[[email protected] lepus]# python test_driver_mysql.py
MySQL python drivier is ok!
[[email protected] lepus]# python test_driver_redis.py
Redis python drivier is ok!

五、安装web管理台

[[email protected] lepus]# vim /opt/lampp/etc/httpd.conf    #修改主配置文件
<Directory />
    AllowOverride none
    Require all granted   # 214行左右,将原本的denied修改为granted
</Directory>
             ........  #省略部分内容
Include etc/extra/httpd-vhosts.conf   # 488行左右,开启虚拟主机
[[email protected] lepus]# vim /opt/lampp/etc/extra/httpd-vhosts.conf   #修改虚拟主机配置文件如下
<VirtualHost *:80>
    ServerAdmin demo.lepus.cc
    DocumentRoot "/usr/local/lepus/web"
    ServerName demo.lepus.cc
    ServerAlias demo.lepus.cc
    ErrorLog "logs/demo.lepus.cc-error_log"
    CustomLog "logs/demo.lepus.cc-access_log" common
</VirtualHost>
[[email protected] lepus]# httpd -k restart  #重启httpd服务,使更改生效
#修改php连接监控服务器的数据库信息
[[email protected] lepus]# vim /usr/local/lepus/web/application/config/database.php
$db[‘default‘][‘hostname‘] = ‘127.0.0.1‘;
$db[‘default‘][‘port‘]     = ‘3306‘;
$db[‘default‘][‘username‘] = ‘lepus_user‘;
$db[‘default‘][‘password‘] = ‘123.com‘;
$db[‘default‘][‘database‘] = ‘lepus‘;
$db[‘default‘][‘dbdriver‘] = ‘mysql‘;

六、web界面配置

登录到web界面进行登录,默认管理员账号密码为:admin/Lepusadmin,登录后建议修改管理员密码并增加普通用户。

1、登录

2、设置全局配置(设置监控)

全局配置设置比较简单,依次点击如下即可设置,最后点击保存即可。


3、设置告警

进入配置中心-全局设置,在告警标签页面里面可以看到告警设置。

在这里,可以设置是否开启告警,是否发送邮件,是否发送短信等等功能。

告警最大次数和告警休眠时间两个参数用于防止告警泛滥而设置,其含义是当连续告警次数达到告警最大次数则会停止发送告警通知,等侯时间超过告警休眠时间后如果告警未解除,则会继续发送告警。

如下(短信告警这里就不设置了):

4、配置邮件报警

只有当邮件服务器配置成功,才可以正常发送邮件报警。我这里使用qq邮箱为例,其他邮箱服务大同小异。

进入配置中心-全局设置,在邮件标签里面,我们可以看到如下的邮件服务器设置:

注:生成授权码不是这篇博文要说的,如果不会,自行百度解决吧。

若要配置短信报警,请参考官方文档,同时在全局配置中还需要开启短信报警。

5、添加MySQL数据库实例

注:Lepus支持MySQL,Oracle,MongoDB,Redis,SQLServer等数据库的监控。

监控MySQL数据库,无需在被监控端安装任何agent,只需创建一个有相应权限的用户即可。

1)在被监控端创建授权用户

这个用户是要监控哪台主机就在哪台主机上创建,我这里是192.168.20.2这台主机

mysql> grant select,process,super on *.* to ‘lepus_monitor‘@‘192.168.20.%‘ identified by ‘123.com‘;
mysql> flush privileges;

2)web界面添加MySQL监控数据库


保存后,即可看到新增的MySQL实例:


我们可以通过观察日志来观察主机是否添加成功。在没有任何主机的时候,log里面会输出check mysql: not found any servers信息:


[[email protected] lepus]# tail -f logs/lepus.log
2017-04-27 16:45:55 [INFO] check mysql controller started.
2017-04-27 16:45:55 [WARNING] check mysql: not found any servers
2017-04-27 16:45:55 [INFO] check mysql controller finished.

当添加主机后,我们可以看到上面的提示消失了,这种状态说明Lepus采集进程已经发现了我们添加的主机:

2017-04-27 16:47:55 [INFO] check mysql controller started.
2017-04-27 16:48:05 [INFO] check mysql controller finished.
2017-04-27 16:48:44 [INFO] alarm controller started.
2017-04-27 16:48:44 [INFO] alarm controller finished.

最后我们可以在MySQL监控菜单里发现我们添加的主机被监控了。
点击如下,可以看到相应的监控项详细信息:

6、添加Redis监控实例

1)修改redis相关配置

[[email protected] ~]# vim /etc/redis.conf   #修改配置文件如下
bind 0.0.0.0     #监听所有地址
requirepass 123.com    #设置密码
[[email protected] ~]# systemctl restart redis   #重启生效

2)web界面配置如下:


添加redis主机

按常理来说,此时应该已经采集到数据的,但是我测试了一下,数据并没有采集到,搜索一番,得到以下解决办法:

[[email protected] lepus]# pwd
/usr/local/lepus
[[email protected] lepus]# python check_redis.py    #需要手动执行一下这个测试脚本
2020-02-29 21:16:06 [INFO] check redis controller started.
2020-02-29 21:16:07 [INFO] check redis controller finished.

最后数据采集成功:

七、测试邮件报警功能

由于在配置时,都是把链接数的阈值调的比较低,所以只需要多几个客户端去登录MySQL和redis数据库,指定的邮件收件人就可以收到如下邮件了:

MySQL的报警信息如下:

redis的报警信息如下:

原文地址:https://blog.51cto.com/14154700/2474546

时间: 2024-11-04 12:18:33

Lepus(天兔)监控数据库的相关文章

CentOS7.5 安装配置天兔(lepus)监控数据库(一)

CentOS7.5 安装配置天兔(lepus)监控数据库(一) 标签(空格分隔): 运维系列 一: 天兔(lepus) 监控介绍 二: 天兔(lepus) 安装环境配置 三: 天兔(lepus)部署 一: 天兔(lepus) 监控介绍 Lepus(天兔)数据库企业监控系统是一套由专业DBA个人(目前就职于某互联网公司),针对互联网企业开发的一款专业.强大的企业数据库监控管理系统,企业通过Lepus可以对数据库的实时健康和各种性能指标进行全方位的监控.目前已经支持MySQL.Oracle.Mong

Lepus 天兔 监控-增加redis 内存使用报警

Lepus天兔搭建文档 文档连接:http://www.lepus.cc/manual/index 安装需求 PHP和Python都是跨平台的语言,所以理论上系统应该可以支持在不同的平台上运行.但是由于时间和精力以及资源有限,目前天兔系统只测试完善了Centos/RedHat系统的支持.我们目前提供的技术支持也是只针对于Centos/RedHat系统,其他系统暂不支持技术服务. 需要的核心包如下: 以下软件包只需要部署在监控机即可.被监控机无需部署. 1.MySQL 5.0及以上(必须,用来存储

Lepus搭建企业级数据库慢查询分析平台

前言 Lepus的慢查询分析平台是独立于监控系统的模块,该功能需要使用percona-toolkit工具来采集和记录慢查询日志,并且需要部署一个我们提供的shell脚本来进行数据采集.该脚本会自动开启您数据库的慢查询日志,并对慢查询日志进行按小时的切割,并收集慢查询日志的数据到监控机数据库.随后您通过Lepus系统就可以分析慢查询了. 安装 安装 percona-toolkit yum -y install perl perl-devel libaio libaio-devel perl-Tim

Lepus搭建企业级数据库全方位监控系统

前言 Lepus(天兔)数据库企业监控系统是一套由专业DBA针对互联网企业开发的一款专业.强大的企业数据库监控管理系统,企业通过Lepus可以对数据库的实时健康和各种性能指标进行全方位的监控.目前已经支持MySQL.Oracle.MongoDB.Redis数据库的全面监控. Lepus可以在数据库出现故障或者潜在性能问题时,根据用户设置及时将数据库的异常进行报警通知到数据库管理员进行处理和优化,帮助企业解决数据库性能监控问题,及时发现性能和瓶颈,避免由数据库潜在问题造成的直接经济损失. Lepu

lepus 天兔的 搭建过程

天兔``` 安装lamp yum install -y httpd php mariadb mariadb-server php-mysql yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel 测试一下:php是否能连接数据库 /var/www/html/index.php <?php $link=mysql_conne

实时监控数据库的思考

关于监控数据库的思考, 1.最长使用的方式是新建线程,定时查询数据库的记录,实现监控数据库的目的: 但这种方法时效率最低,消耗资源最高的方法: 2.写触发器, 这种方法对数据库的压力比较大,而且,当不同数据库之间传输数据的时候,可能会被影响,但小程序,单数据库的情况下,也是不错的选择. 但百度知道后, 触发器由于是隐藏的,无形中增加系统的复杂性,非DBA管理人员理解起来就会有困难,因为根本感觉不到它的存在. 再有,涉及到复杂的逻辑的时候,触发器的嵌套是避免不了的,如果再涉及几个存储过程,再加上事

验证DDTTool作为网络性能监控数据库是否合适

# vi /etc/yum.repos.d/dag.repo[dag]name=Dag RPM Repository for Red Hat Enterprise Linuxbaseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/daggpgcheck=1gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txtenabled=1 搞定后,直接yum安装如下:#yum i

解答网友,如何监控数据库

帅哥在吗 東子  14:29:25 问个问题, 東子  14:30:56 我在监控服务器有两个监控项,pmp-check-mysql-innodb check_mysql_processlist 这脚本都是监控什么的?我知道这样问你,你看不到脚本也不知道具体监控什么东西, 東子  14:31:22 这脚本都是网上下载的,监控mysql具体什么东西,我有点搞不清楚 昨天,我做了一个梦  16:31:11 command[check_mysql_processlist]=/usr/local/nag

分布式监控系统Zabbix3.2监控数据库的连接数

在 分布式监控系统Zabbix3.2跳坑指南 和 分布式监控系统Zabbix3.2给异常添加邮件报警 已经介绍了如何安装以及报警.此篇通过介绍监控数据库的3306端口连接数来了解如何监控其它端口和配置自定义监控项的过程. 添加监控脚本 在要监控的客户端上新建脚本: /usr/local/zabbix/alertscripts/check_3306_port_num.sh 内容如下: #!/bin/bash ss -an|grep 3306|grep ESTAB|wc -l 这个脚本很简单,就是获