天兔插件监控mysql

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
Lepus3.8-天兔mysql数据库监控系统搭建
原创ixhao2016-08-24 02:36:23评论(11)3183人阅读
 Lepus3.8-天兔mysql数据库监控系统搭建
  
lepus是一款开源的数据库监控软件,能详细的监控各种数据库状态,如mysql慢查询和主从状况。
这是web监控页面:
wKiom1e9GEeSfeVhAAEs1WVVdwA795.png
搭建(文中是CentOS 6.7系统环境):
一、安装lamp或lnmp环境:
安装方法很多,有源码包、yum、rpm等安装,这儿就简单的提一下简单的yum安装方法。
需要安装的包:
httpd
httpd-manual
httpd-devel
php
php-mysql
mysql
mysql-server
可以yum安装上面的包:yum install httpd httpd-manual httpd-devel php php-mysql mysql mysql-server -y
 
1).mysql
[root@jk ~]# yum install mysqlmysql-server -y
[root@jk ~]# rpm -qa |grepmysql
 
wKioL1e8lUOBtRQmAAANi8uAxQo736.png
[root@jk ~]# service mysqld start
[root@jk ~]# netstat -anplt|grep mysql  查看mysqld端口是否正常开启,服务是否正常
wKiom1e8lU7y-GeZAAAI1nTzdbY447.png
 
2).apache
 [root@monitoring-45 lepus]# yuminstall httpd httpd-manual httpd-devel -y
 [root@monitoring-45lepus]# rpm -qa |grep http*
wKioL1e8lVjihE0rAAARIgsOP_0688.png
 [root@jk ~]# service httpd start
wKiom1e8lWLz8pw8AAAOQqhsJX8897.png
 上面的:httpd: Could not reliably determine the server's fully qualifieddomain name提示  是apache启动时会验证ServerName的配置,可通过修改hosts文件添加本地解析或者修改httpd.conf  的276行将#ServerName www.example.com:80改为ServerName “主机名”来使其不提醒。
 [root@jk ~]# netstat -anplt | grep httpd  查看mysqld端口是否正常开启,服务是否正常
wKiom1e8lWyiNxvgAAALRZFy2LQ695.png
 
3).php
[root@jk ~]# yum install phpphp-mysql –y
[root@monitoring-45lepus]#  rpm -qa |grep php-5
wKioL1e8lXeRHzSIAAAHQ4WgY64175.png
  
[root@jk ~]# rpm -ql php          查看php相关文件
/etc/httpd/conf.d/php.conf
/usr/lib64/httpd/modules/libphp5.so
/var/lib/php/session
/var/www/icons/php.gif
 
 
4).配置apache,让apache支持php
[root@jk ~]# vim/etc/httpd/conf.d/php.conf  配置php配置文件
wKiom1e8lYLT5c12AAAsCoaKYRk780.png
看是否有动态加载,图下面红框内的是apache支持的首页面
[root@jk ~]# vim/etc/httpd/conf/httpd.conf  配置apache配置文件
AddType applition/x-httpd-php.php         #添加这一行
  
<IfModule dir_module>
    DirectoryIndex index.html index.php   #添加index.php是为了让apache识别php首页
</IfModule>
重启apache
[root@jk ~]# touch/var/www/html/1.php
[root@jk ~]# vim /var/www/html/1.php
 <?php
 phpinfo();
 ?>
浏览器打开http://服务端ip/1.php,出现如下图则表示配置成功:
 
wKioL1e8lbLwyBQDAAByK2lcztM868.png
5).让php支持mysql
[root@jk ~]# yum install -y php-mysql
检查:
[root@jk ~]# vim /var/www/html/1.php
<?php
$link=mysql_connect('127.0.0.1','root','');
if($link)
echo "connect success!";
else
echo 'connect faild!';
?>
重启apache,service httpd restart后
浏览器打开http://服务端ip/1.php,出现
connect success!
则为成功
 
6).设置服务自启:
[root@jk ~]# chkconfig httpd on
[root@jk ~]# chkconfig httpd--list
httpd  0:关闭  1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
[root@jk ~]# chkconfig mysqld on
 
 
二、监控端安装python(文中是2.6.6版本,也推荐使用2.7版本)
  ……
 
三、监控端安装数据库连接Python的驱动包
1).安装 MySQLdb for python (如果需要监控MySQL则必须安装)
MySQLdb为Python连接和操作MySQL的类库,如果准备使用lepus系统监控MySQL数据库,那么该模块必须安装。
[root@jk ~]# wget http://cdn.lepus.cc/cdncache/software/MySQLdb-python.zip
[root@jk ~]# unzip MySQLdb-python.zip
[root@jk ~]# cd MySQLdb1-master/
[root@jk ~]# which mysql_config
/usr/local/mysql/bin/mysql_config
  
[root@jk ~]# vim site.cfg 修改如下:
mysql_config = /usr/local/mysql/bin/mysql_config
  
[root@jk ~]# python setup.py build
[root@jk ~]# python setup.py install
 
如果编译python出现如下问题
/usr/bin/ld: cannot find -lpython2.7
collect2: ld returned 1 exit status
error: command 'gcc' failed with exit status1
请按如下步骤处理:
A.检查并安装python-devel包
[root@jk ~]# yum -y install python-devel
 
B.将libpython2.7.so库文件建立软连接到/usr/lib下
32位服务器下执行:
[root@jk ~]# ln -s /usr/local/Python2.7/lib/libpython2.7.so/usr/lib/libpython2.7.so
64位服务器下执行:
[root@jk ~]# ln -s /usr/local/Python2.7/lib/libpython2.7.so/usr/lib64/libpython2.7.so
 
C.检查下/etc/ld.so.conf是否包含/usr/local/Python2.7/lib
[root@jk ~]#  vi /etc/ld.so.conf 添加/usr/local/Python2.7/lib
[root@jk ~]# /sbin/ldconfig
  
 
2).安装cx_oracle for python (如果需要监控Oracle则必须安装,本文暂未用到)
下载安装oracle instant client:
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
如果是64位的,请选择.*x86_64.rpm,否则是.*i386.rpm
如果是oracle 9i或更高,请选择InstantClient 11,如果是88i,请选择Instant Client 10
  
[root@jk ~]# rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
[root@jk ~]# rpm -ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm
[root@jk ~]# rpm -ivh oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm
[root@jk ~]# vim /root/.bash_profile
ORACLE_HOME="/usr/lib/oracle/11.2/client64"
PATH=$PATH:$ORACLE_HOME/bin
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
  
[root@jk ~]#vim /etc/ld.so.conf 加入
/usr/lib/oracle/11.2/client64/lib
  
执行ldconfig生效
[root@jk ~]# ldconfig
 
安装cx_oracle
[root@jk ~]# wget http://cdn.lepus.cc/cdncache/software/cx_Oracle-5.1.2.tar.gz
[root@jk ~]# tar -xvf cx_Oracle-5.1.2.tar.gz
[root@jk ~]# cd cx_Oracle-5.1.2
[root@jk ~]# python setup.py build
[root@jk ~]# python setup.py install
 
3).安装Pymongo for python (如果需要监控Mongodb则必须安装)
pymongo为Python连接和操作MongoDB的类库,如果准备使用lepus系统监控MongoDBs数据库,那么该模块必须安装。
安装步骤如下:
下载pymongo https://pypi.python.org/packages/source/p/pymongo/
[root@jk ~]# wget http://cdn.lepus.cc/cdncache/software/pymongo-2.7.tar.gz
[root@jk ~]# tar -xvf pymongo-2.7.tar.gz
[root@jk ~]# cd pymongo-2.7
[root@jk ~]# python setup.py install
 
4).安装Redis 驱动 (如果需要监控Redis则必须安装)
[root@jk ~]# wget http://cdn.lepus.cc/cdncache/software/redis-py-2.10.3.tar.gz
[root@jk ~]# tar -xvf redis-py-2.10.3.tar.gz
[root@jk ~]# cd redis-2.10.3/
[root@jk ~]# python setup.py install
  
5).测试各个驱动是否正常运行
[root@jk~]# wget http://www.lepus.cc/soft/download/18
[root@jk~]# unzip Lepus数据库企业监控系统3.7版本官方下载.zip
[root@jk~]# cd Lepus_v3.8_beta/
[root@jk~]# python test_driver_mysql.py
MySQL python drivier is ok!
[root@jk ~]# python test_driver_oracle.py
Oracle python drivier is ok!
[root@jk ~]# python test_driver_mongodb.py
MongoDB python drivier is ok!
[root@jk ~]# python test_driver_redis.py
Redis python drivier is ok!
  
四、监控端安装Lepus监控系统
1).下载软件包到监控端并解压缩
(下载链接:http://down.51cto.com/data/2237019
[root@jk~]# wget http://www.lepus.cc/soft/download/18
[root@jk~]# unzip Lepus数据库企业监控系统3.7版本官方下载.zip
[root@jk~]# cd Lepus_v3.8_beta/
 
2).在监控机创建监控数据库,并授权。
监控端数据库执行:
mysql>create database lepus default character set utf8;
mysql>grant select,insert,update,delete,create on lepus.* to 'lepus_user'@'localhost'identified by '111.test';
mysql>flush privileges;
 
3).导入Lepus_v3.8_beta 的sql文件夹里的SQL文件(表结构和数据文件)
[root@jk~]# mysql -uroot -p lepus < sql/lepus_table.sql
[root@jk~]# mysql -uroot -p lepus < sql/lepus_data.sql
  
4).安装Lpeus程序
[root@jk~]#pwd
wKiom1e8libwgj27AAARrTAUvxk692.png
[root@monitoring-45Lepus_v3.8_beta]# cd python/
[root@monitoring-45Lepus_v3.8_beta]# chmod +x install.sh
修改安装位置:
[root@monitoring-45python]# vim install.sh 下图红色标记即为安装位置
wKioL1e8ljThUJbyAAAQUh4BppQ056.png
[root@monitoring-45lepus]# vim lepus    修改启动文件
wKiom1e8lj2jCEBdAAAUZ4oZhew268.png
执行安装
[root@monitoring-45Lepus_v3.8_beta]# ./install.sh
[note]lepus will be install on basedir: /date/server/lepus
[note]/date/server/lepus directory does not exist,will be created.
[note]/date/server/lepus directory created success.
[note]wait copy files.......
[note]change script permission.
[note]create links.
[note]install complete.
  
5).修改配置文件
进入到安装目录/date/server/lepus,默认为/usr/local/lepus
[root@monitoring-45 ~]# cd /date/server/lepus
wKiom1e8lkfDHZkPAAA00JFxRKU072.png
[root@monitoring-45 lepus]# vim etc/config.ini
###监控机MySQL数据库连接地址###
[monitor_server]
host="localhost"
port=3306
user=" lepus_user "
passwd="111.test"
dbname="lepus"
 
6).启动监控系统
执行以下命令启动系统采集进程
[root@monitoring-45 lepus]#lepus start
nohup: appending output to`nohup.out'
lepus monitor start success!
  
执行以下命令关闭系统采集进程
[root@monitoring-45 lepus]#lepus stop
  
执行以下命令监控系统是否正常运行
[root@monitoring-45 lepus]#lepus status
lepus server is running...
  
7).将lepus_monitor脚本部署为计划任务,该脚本可以监控Lepus是否正在运行。
打开文件/data/server/lepus/lepus_monitor修改里面连接监控机的数据库连接地址,然后将该脚本部署为计划任务。
[root@monitoring-45 lepus]# crontab -e
*/5 * * * * /data/server/lepus/lepus_monitor >> /tmp/lepus_monitor.log
  
8)部署网页WEB界面
复制安装文件夹的php文件夹里的文件到Apache对应的网站根目录
[root@monitoring-45 lepus]# cp -rf /root/bao/Lepus_v3.8_beta/php/* /var/www/html/
打开/var/www/html/application/config/database.php文件修改PHP连接监控服务器的数据库信息
[root@monitoring-45 lepus]# vim /var/www/html/application/config/database.php
$db['default']['hostname'] ='localhost';
$db['default']['username'] ='lepus_user';
$db['default']['password'] = '111.test';
$db['default']['database'] =lepus;
$db['default']['dbdriver'] ='mysql';
  
9).重启apache
[root@monitoring-45 lepus]# service httpd restart
 
10).登录进行添加主机和监控
通过浏览器输入IP地址或域名打开监控界面,即可登录系统。默认管理员账号密码admin/Lepusadmin
wKioL1e8lpSAPe5uAAAhMQx1aJ8410.png
登录后请修改管理员密码,增加普通账号,对需要监控的数据库授权,在WEB添加主机进行监控。
  
四、Lepus监控数据库配置
1).被监控端防火墙打开允许监控端ip的3306端口,mysql添加监控账号:
[root@jk ~]# iptables -A INPUT -s "监控端ip" -m state --state NEW -m tcp -p tcp--dport 3306 -j ACCEPT
被监控端数据库执行:
[root@jk ~]#
mysql> grant select,process,super on *.* to 'monitor'@'server监控端ip' identified by '222.test';
 
被监控端创建完帐号即可在监控端网页上添加mysql数据库监控:
wKioL1e8lq3h_w44AABcZMrp8Ng759.png
稍等几分钟便可看到信息。
注意:只有同时监控主库和备库才能看到主从复制情况。
 
2).得不到数据库表空间分析数据的解决方法:
在lepus.py中添加check_mysql_bigtable,如图
wKiom1e8lrnAdbx4AAAgDJBekcA956.png
图中“*120“是设置时间间隔,若是网页页面设置了1分钟刷新数据,这儿改成120。则最终是2小时才会监控得到新数据
wKiom1e8lsKiEfeXAAAnEscZ2uw021.png
 
  
五、Lepus监控数据库慢查询配置
1).监控端配置数据库帐号,让被监控端写入数据
监控端数据库执行:
mysql> grantselect,insert,update,delete,create on lepus.* to 'lepus_user'@'被监控端ip' identified by '333.test';
 
2).被监控端数据库添加账号允许脚本获得数据库信息
被监控端数据库执行:
mysql> grantselect,process,super on *.* to 'monitor'@'localhost' identified by '444.test';
 
3).被监控端要安装pt工具
[root@mysql-master-39~]# yum -y install perl-IO-Socket-SSL perl-DBI perl-DBD-MySQLperl-Time-HiRes  'perl(Time::HiRes)'
 
下载percona-toolkit:
[root@mysql-master-39~]# wget https://www.percona.com/downloads/percona-toolkit/2.2.6/RPM/percona-toolkit-2.2.6-1.noarch.rpm
 
[root@mysql-master-39~]# rpm -ivh percona-toolkit-2.2.6-1.noarch.rpm
 
4).将lepus安装包里的client目录里的lepus_slowquery.sh脚本拷贝到被监控端
[root@mysql-master-39~]# ls lepus_slowquery.sh
[root@mysql-master-39~]# chomd +x lepus_slowquery.sh
[root@mysql-master-39~]# which mysql
wKioL1e8ltDjeo2GAAAGs5rbtXQ743.png
[root@mysql-master-39~]# which pt-query-digest
wKiom1e8ltnyCFbcAAAHU3MP00c240.png
获取数据库id
wKioL1e8luGgNUtNAABa2t87Ntg104.png
[root@mysql-master-39~]# vim lepus_slowquery.sh    标红部分是需要修改的
#!/bin/bash
#****************************************************************#
#ScriptName:/usr/local/sbin/lepus_slowquery.sh
#Create Date:2014-03-25 10:01
#Modify Date:2014-03-25 10:01
#***************************************************************#
#configlepusdatabase server监控机
#设置监控端帐号信息
lepus_db_host="监控端ip"
lepus_db_port=3306
lepus_db_user="lepus_user"
lepus_db_password="333.test"
lepus_db_database="lepus"
  
#configmysqlserver被监控机
#设置mysql命令路径和本地数据库监控帐号信息
mysql_client="/usr/local/mysql/bin/mysql"
mysql_host="localhost"
mysql_port=3306
mysql_user="monitor"
mysql_password="444.test"
  
#configslowqury慢日志位置,从my.cnf配置文件中获取
slowquery_dir="/data/logs/mysql/"
#设置慢查询时间是多少就被收集
slowquery_long_time=1
slowquery_file=`$mysql_client-h$mysql_host-P$mysql_port -u$mysql_user -p$mysql_password -e "show variables like'slow_query_log_file'"|grep log|awk'{print $2}'`
#设置pt-query-digest路径
pt_query_digest="/usr/bin/pt-query-digest"
#configserver_id被监控机id从lepus图形界面看
lepus_server_id=274
  
最后注意vi编辑设置
:set ff?
显示当前的格式,默认为dos,这时不能执行的
需要:
:set fileformat=unix
变更为unix后,脚本才可执行。
手动执行一次脚本,便可在网页页面看到数据:
wKioL1e8lvXRqWHiAABxwwOsTvU673.png
 
5).将脚本拷贝到/usr/local/sbin/下,并添加计划任务定时执行(建议时间间隔在一小时内)
[root@mysql-master-39~]# crontab -e
*/27 * * * * sh /usr/local/sbin/lepus_slowquery.sh > /dev/null 2>&1
 
6).配置邮箱
配置发件人:
点击配置中心-全局设置,然后如图,注意告警收件人需要在监控项设置里另外配置。
 
wKioL1fSZJfQkIyiAABcvkTVEbU486.jpg
 
wKiom1fSZ1LxA1SWAAA-F7gSffE044.jpg
 
配置收件人:
wKioL1fSZ77Q_O4cAACXHwF262o545.png
 
wKiom1fSZ3WwKP7cAACqKici8Hc876.png
 
注意:发件人和收件人都要写全。
配置完成后在监控服务端的安装目录执行
[root@monitoring-45 lepus]# python test_send_mail.py
True
send_mail_status:success
报成功后就是配置完成了。
 
7).慢查询自动推送
定时将系统收集到的慢查询TOP数据定时推送给相应开发人员进行优化,无需在每台数据库上部署脚本。
MySQL慢查询自动推送通过计划任务完成。如果需要推送,则需要在监控机部署如下计划任务。
 
#crontab -e
00 09 * * * links http://111.com/index.php/task/send_mysql_slowquery_mail > /dev/null 2>&1
 
计划任务部署完成后,则会按照计划任务配置的时间将慢查询推送给对应人员。慢查询推送的邮件人员需要在MySQL主机配置里面设置即可,邮箱留空则该数据库主机不会发送慢查询推送。
  
 
六、Lepus监控数据库操作系统信息配置
Lepus使用的是snmp协议获取系统信息
1). snmpd 服务安装
[root@mysql-master-39~]# yum install -y net-snmp net-snmp-utils
 
2).修改配置文件允许指定的主机监听自己
[root@mysql-master-39~]# vim /etc/snmp/snmpd.conf
:set nu
 
41行 将default改为监控服务器ip;将public改成lepus_monitor
(备注: lepus_monitor是在天兔配置文件里配置的通用实体,如果配置的实体是其他名称,这里要做相应的修改)
com2secnotConfigUser  监控端ip      lepus_monitor
 
62行 将systemview 改为all,供所有snmp访问权限
access  notConfigGroup ""      any      noauth    exact  all none none
 
85行 将#注释符号去掉
view all    included .1                              80
 
 
3).修改snmpd 日志级别
snmpd 默认日志级别将会在/var/log/message 写入大量snmp 信息,这样会影响我们察看系统日志,所以我们需要更改下配置文件:
注释原有的OPTINOS,添加下面的一行,重启snmpd 服务即可
[root@mysql-master-39~]# vim /etc/init.d/snmpd
#OPTIONS="-Lsd -Lf /dev/null -p /var/run/snmpd.pid -a"
OPTIONS="-LS 4 d -p /var/run/snmpd.pid -a"
 
4).启动 snmpd 服务
[root@mysql-master-39~]# /etc/init.d/snmpd start
  
5).验证snmpd 服务
snmpd 使用tcp/udp161 端口
 
[root@mysql-master-39~]# grep 'Simple Net Mgmt Proto' /etc/services 
snmp        161/tcp            # Simple Net Mgmt Proto
snmp        161/udp            # Simple Net Mgmt Proto
  
[root@mysql-master-39~]# lsof -i :161
 
6).将SNMP服务设置开机启动
注意设置防火墙,允许监控端连接被监控端的tcp/udp161端口
 
7).在监控端使用snmpwalk 命令验证,在监控端上执行以下命令
snmpwalk -v 1 -c lepus_monitor  被监控端ip
-v是指版本,-c 是指密钥,获取到系统信息则正常!
 
安装完成后在lepus网页配置中心-操作系统栏目配置操作系统信息,SNMP团体名填写刚才的密钥:lepus_monitor。
wKioL1e8lwCT3NnvAABJYGK7tQw779.png
   wKiom1fOd-LAE55kAABUiUpSpF8162.png
 
稍等几分钟,或在服务端lepus安装目录执行python lepus.py 片刻看到数据

 

posted @   滴滴滴  阅读(580)  评论(1编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示