该博文是参考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系统,其他系统暂不支持技术服务。
lepus需要lamp环境的支持,配置lamp环境的方式有很多中,官方采用的是集成环境包Xampp进行部署的,所以这里就以官方为准。
Xampp相关链接:
- Xampp下载地址
- Xampp帮助文档
官方推荐xampp版本:xampp-linux-x64-1.8.2-5-installer.run。
注意:接下来的所有操作,没有特殊声明的话,都是在lepus主机上进行的。
#执行安装脚本
[root@lepus src]# chmod +x xampp-linux-x64-1.8.2-5-installer.run
[root@lepus src]# ./xampp-linux-x64-1.8.2-5-installer.run
#执行后,一路默认回车即可。
出现如下所示,表示安装成功(lampp默认安装在/opt目录下):
部署成功后,就在监听80端口,但是默认只能在本地访问,如需开启远程访问,需进行以下操作:
[root@lepus ~]# vim /opt/lampp/etc/extra/httpd-xampp.conf
#更改如下:
# Require local #注释掉该行
ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
#设置命令环境变量
[root@lepus bin]# vim /etc/profile #在末尾添加以下内容
export PATH=/opt/lampp/bin:${PATH}
[root@lepus bin]# source /etc/profile
#重启服务,使更改生效
[root@lepus ~]# httpd -k stop
[root@lepus ~]# httpd -k start
浏览器访问lepus服务器,即可看到如下页面,表示lampp运行成功:
自行准备python环境,一般Centos系统自带python环境,python环境要求在2.6以上,但不支持python3。
以下几个python链接数据库的驱动包,选择性的安装即可(要监控哪种类型的数据库,就安装哪个包)。
MySQLdb为Python连接和操作MySQL的类库,如果您准备使用lepus系统监控MySQL数据库,那么该模块必须安装。
[root@lepus ~]# yum -y install python-devel
[root@lepus ~]# unzip MySQL-python-1.2.5.zip
[root@lepus bin]# which mysql_config #查看mysql_config命令的绝对路径
/opt/lampp/bin/mysql_config
[root@lepus ~]# cd MySQL-python-1.2.5/
[root@lepus MySQL-python-1.2.5]# vim site.cfg #修改以下
mysql_config = /opt/lampp/bin/mysql_config #指定mysql_config命令的绝对路径
#进行安装
[root@lepus MySQL-python-1.2.5]# python setup.py build
[root@lepus MySQL-python-1.2.5]# python setup.py install
[root@lepus ~]# tar zxf redis-py-2.10.3.tar.gz
[root@lepus ~]# cd redis-py-2.10.3/
[root@lepus redis-py-2.10.3]# python setup.py install
如果需要监控其他数据库,参考官方文档去安装,某些软件包,在我博文的开头网盘链接中也有提供。
注:以下所有操作都是在Lepus主机上进行,涉及到数据库授权等一些操作,也是在Lepus上进行,不用想这台主机没有装MySQL,lampp软件包已经集成了MySQL。
[root@lepus ~]# cd /usr/local
[root@lepus 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
请执行下面的指令即可:
[root@monitor local]# git config --global http.sslVerify false
[root@lepus lepus]# pwd
/usr/local/lepus
[root@lepus lepus]# chmod +x lepus*
[root@lepus lepus]# ln -sf /usr/local/lepus/lepus /usr/local/bin/
[root@lepus lepus]# ln -sf /usr/local/lepus/lepus_monitor /usr/local/bin/
[root@lepus lepus]# ln -sf /opt/lampp/lampp /usr/local/bin
[root@lepus lepus]# lampp start #启动lamp环境
[root@lepus 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;
[root@lepus lepus]# pwd
/usr/local/lepus
[root@lepus lepus]# mysql -uroot lepus < sql/lepus_table.sql
[root@lepus lepus]# mysql -uroot lepus < sql/lepus_data.sql
[root@lepus lepus]# pwd
/usr/local/lepus
[root@lepus lepus]# cat etc/config.ini #修改配置文件如下
###监控机MySQL数据库连接地址###
[monitor_server]
host="127.0.0.1"
port=3306
user="lepus_user"
passwd="123.com"
dbname="lepus"
#注:上面指定的数据库信息是lepus主机用来存储采集到的信息的,并不是被监控端
[root@lepus lepus]# lepus start
如果报错如下:
[root@lepus lepus]# lepus start
/usr/local/bin/lepus: 行 16: 72095 段错误 (吐核)nohup python lepus.py &>logs/lepus.log
lepus server start fail!
则执行以下指令即可:
[root@lepus lepus]# ln -s /opt/lampp/lib/* /usr/lib64/
[root@lepus lepus]# lepus start #再次启动即可成功
lepus server start success!
[root@lepus lepus]# pwd
/usr/local/lepus
[root@lepus lepus]# python test_driver_mysql.py
MySQL python drivier is ok!
[root@lepus lepus]# python test_driver_redis.py
Redis python drivier is ok!
[root@lepus lepus]# vim /opt/lampp/etc/httpd.conf #修改主配置文件
AllowOverride none
Require all granted # 214行左右,将原本的denied修改为granted
........ #省略部分内容
Include etc/extra/httpd-vhosts.conf # 488行左右,开启虚拟主机
[root@lepus lepus]# vim /opt/lampp/etc/extra/httpd-vhosts.conf #修改虚拟主机配置文件如下
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
[root@lepus lepus]# httpd -k restart #重启httpd服务,使更改生效
#修改php连接监控服务器的数据库信息
[root@lepus 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界面进行登录,默认管理员账号密码为:admin/Lepusadmin,登录后建议修改管理员密码并增加普通用户。
全局配置设置比较简单,依次点击如下即可设置,最后点击保存即可。
进入配置中心-全局设置,在告警标签页面里面可以看到告警设置。
在这里,可以设置是否开启告警,是否发送邮件,是否发送短信等等功能。
告警最大次数和告警休眠时间两个参数用于防止告警泛滥而设置,其含义是当连续告警次数达到告警最大次数则会停止发送告警通知,等侯时间超过告警休眠时间后如果告警未解除,则会继续发送告警。
如下(短信告警这里就不设置了):
只有当邮件服务器配置成功,才可以正常发送邮件报警。我这里使用qq邮箱为例,其他邮箱服务大同小异。
进入配置中心-全局设置,在邮件标签里面,我们可以看到如下的邮件服务器设置:
注:生成授权码不是这篇博文要说的,如果不会,自行百度解决吧。
若要配置短信报警,请参考官方文档,同时在全局配置中还需要开启短信报警。
注:Lepus支持MySQL,Oracle,MongoDB,Redis,SQLServer等数据库的监控。
监控MySQL数据库,无需在被监控端安装任何agent,只需创建一个有相应权限的用户即可。
这个用户是要监控哪台主机就在哪台主机上创建,我这里是192.168.20.2这台主机
mysql> grant select,process,super on *.* to 'lepus_monitor'@'192.168.20.%' identified by '123.com';
mysql> flush privileges;
保存后,即可看到新增的MySQL实例:
我们可以通过观察日志来观察主机是否添加成功。在没有任何主机的时候,log里面会输出check mysql: not found any servers信息:
[root@MyCloudServer 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监控菜单里发现我们添加的主机被监控了。
点击如下,可以看到相应的监控项详细信息:
[root@redis ~]# vim /etc/redis.conf #修改配置文件如下
bind 0.0.0.0 #监听所有地址
requirepass 123.com #设置密码
[root@redis ~]# systemctl restart redis #重启生效
按常理来说,此时应该已经采集到数据的,但是我测试了一下,数据并没有采集到,搜索一番,得到以下解决办法:
[root@lepus lepus]# pwd
/usr/local/lepus
[root@lepus 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.csdn.net/u010725670/article/details/51038630 。