Lepus3.8数据库监控系统的部署
Lepus3.8数据库监控系统的部署
Lepus是一套开源的数据库监控平台,目前已经支持MySQL
、Oracle
、SQLServer
、MongoDB
、Redis
等数据库的基本监控和告警(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服务。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· 手把手教你更优雅的享受 DeepSeek
· AI工具推荐:领先的开源 AI 代码助手——Continue
· 探秘Transformer系列之(2)---总体架构
· V-Control:一个基于 .NET MAUI 的开箱即用的UI组件库
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现