当前位置:Gxlcms > 数据库问题 > 天兔插件监控mysql

天兔插件监控mysql

时间:2021-07-01 10:21:17 帮助过:29人阅读

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

 

天兔插件监控mysql

标签:nes   www   and   重启   慢日志   识别   wget   pwd   admin   

人气教程排行