• MySQL监控系统Lepus的搭建


       现在流行的监控系统很多,选择一个合适自己的就可以了,例如Zabbix、Nagios;监控MySQL为主的有MySQLMTOP、Lepus。本文主要介绍快速部署lepus以及监控MySQL,因为作为DBA我们还是注重MySQL的监控,当然系统状态也非常重要,监控成为我们日常工作不可缺少,废话就不多说了,下面开始环境搭建。

    官方网站:http://www.lepus.cc/page/product

    搭建环境如下:
    Lepus Server    192.168.10.128         Centos 6.2x86_64
    已关闭selinux

    一.基本环境安装

    (1)安装LAMP环境(这里使用yum完成,简单省事,当然安装的MySQL版本会略低,LepusMySQL性能还是有一定的影响的,特别是当我们的被监控端越来越多,监控项也比较多时,建议安装Percona版本)

       如果服务器没有mysql,可以通过以下方式安装LAMP

    yum install mysql-server httpd php  -y

    我用我已经安装好的mysql-5.6.25,所以我就不安装MySQL了(建议用二进制安装的)

     (2)开启httpdmysqld

    chkconfig httpd on
    chkconfig mysqld on

    (3)安装lepus server需要的依赖包

     yum install  gcc python-devel mysql-devel net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xml  -y

    (4)配置httpd并启动

    [root@ lepus-server ~]# grep '^ServerName' /etc/httpd/conf/httpd.conf 
    ServerName 192.168.10.128:80
    [root@ lepus-server ~]# service httpd start
    Starting httpd:                                            [  OK  ]
    [root@ lepus-server ~]#

     (5)配置php

    [root@lepus-server ~]# sed -i "s/;date.timezone =/date.timezone = Asia/Shanghai/g" /etc/php.ini
    [root@lepus-server ~]# sed -i "s#max_execution_time = 30#max_execution_time = 300#g" /etc/php.ini
    [root@lepus-server ~]# sed -i "s#post_max_size = 8M#post_max_size = 32M#g" /etc/php.ini
    [root@lepus-server ~]# sed -i "s#max_input_time = 60#max_input_time = 300#g" /etc/php.ini
    [root@lepus-server ~]# sed -i "s#memory_limit = 128M#memory_limit = 128M#g" /etc/php.ini
    [root@lepus-server ~]# sed -i "/;mbstring.func_overload = 0/ambstring.func_overload = 2
    " /etc/php.ini
    [root@lepus-server ~]# 

    (6)安装Python2.7(不是必须的)

    [root@ lepus-server src]# pwd
    /usr/local/src
    [root@ lepus-server src]#wget  https://www.python.org/ftp/python/2.7.2/Python-2.7.2.tar.bz2
    [root@lepus-server src]# tar  jxf  Python-2.7.2.tar.bz2
    [root@lepus-server src]# cd Python-2.7.2
    [root@lepus-server Python-2.7.2]# ./configure --prefix=/usr/local/python2.7
    [root@lepus-server Python-2.7.2]# make && make install

    (7) 安装MySQLdb-python,解压后,编辑site.cfg,找到mysql_config,#号去掉,并指定mysql_config的路径

    [root@lepus-server Python-2.7.2]# cd /usr/local/src/
    [root@lepus-server src]# wget http://www.mtop.cc/software/MySQLdb-python.zip 
    [root@lepus-server src]# unzip MySQLdb-python.zip 
    [root@lepus-server src]# cd MySQLdb1-master/
    [root@lepus-server MySQLdb1-master]# cat site.cfg |grep "mysql_config"
    mysql_config = /usr/bin/mysql_config
    [root@lepus-server MySQLdb1-master]# python setup.py build
    [root@lepus-server MySQLdb1-master]# python setup.py install

    8)安装redis驱动,如果没有redis需要监控可以跳过此步骤:

    [root@lepus-server MySQLdb1-master]# cd /usr/local/src/
    [root@lepus-server src]# wget https://pypi.python.org/packages/source/r/redis/redis-2.10.3.tar.gz
    [root@lepus-server src]# tar xf redis-2.10.3.tar.gz    
    [root@lepus-server src]# cd redis-2.10.3
    [root@lepus-server redis-2.10.3]# python setup.py install

    二、安装Lepus采集器 

     (1) 下载Lepus软件包下载地址:http://www.lepus.cc/soft/17,然后登录数据库创建lepus数据库和MySQL用户

    [root@lepus-server src]# pwd
    /usr/local/src
    [root@lepus-server src]# ll Lepus3.7.zip 
    -rw-r--r--. 1 root root 6760286 Apr 29 14:21 Lepus3.7.zip
    [root@lepus-server src]# unzip Lepus3.7.zip
    
    #创建lepus库并授权
    [root@lepus-server src]# mysql -uroot -p123456 -e "create database lepus default character set utf8;"
    [root@lepus-server src]# mysql -uroot -p123456 -e "grant select,insert,update,delete,create on lepus.* to 'lepus'@'localhost' identified by 'lepus';"
    [root@lepus-server src]# mysql -uroot -p123456 -e "grant select,insert,update,delete,create on lepus.* to 'lepus'@'127.0.0.1' identified by 'lepus';"
    [root@lepus-server src]# mysql -uroot -p123456 -e "flush privileges"

    (2) 导入lepus数据库初始化数据,建议使用root用户导,进入到lepus解包以后的目录

    [root@lepus-server src]# cd lepus_v3.7/sql/
    [root@lepus-server sql]# mysql -uroot -p123456  lepus <  lepus_table.sql 
    [root@lepus-server sql]# mysql -uroot -p123456  lepus <  lepus_data.sql 
    [root@lepus-server sql]# 

    (3) 安装lepus并,运行脚本install.sh,可以打开看一下,默认安装/usr/local/src下,可以通过修改脚本的路径安装在别的目录下。

    [root@lepus-server python]# pwd
    /usr/local/src/lepus_v3.7/python
    [root@lepus-server python]# sh install.sh 
    [note] lepus will be install on basedir: /usr/local/lepus
    [note] /usr/local/lepus directory does not exist,will be created.
    [note] /usr/local/lepus directory created success.
    [note] wait copy files.......
    [note] change script permission.
    [note] create links.
    [note] install complete.
    [root@lepus-server python]#

     给全部脚本有执行权限,修改lepus连接数据库的配置文件,选项很简单不多说了

    root@lepus-server python]# cd /usr/local/lepus/
    [root@lepus-server lepus]# chmod +x *.sh
    [root@lepus-server lepus]# chmod +x *.py
    [root@lepus-server lepus]# vim etc/config.ini
    ###监控机MySQL数据库连接地址###
    [monitor_server]
    host="127.0.0.1"
    port=3306
    user="lepus"
    passwd="lepus"
    dbname="lepus"

    (4)启动lepus服务,启动时可以看看它的一些使用参数:

    [root@lepus-server lepus]# lepus --help
    lepus help:
    support-site:  www.lepus.cc
    ====================================================================
    start        Start lepus monitor server; Command: #lepus start
    stop         Stop lepus monitor server; Command: #lepus stop
    status       Check lepus monitor run status; Command: #lepus status
    [root@lepus-server lepus]#
    启动:
    
    [root@lepus
    -server lepus]# lepus start nohup: appending output to `nohup.out' lepus server start success! [root@lepus-server lepus]#

    启动成功,如果启动有问题,可以查看nohup.out日志的信息排查问题。经常遇到的问题如下:

    [root lepus]$ lepus start
    nohup: appending output to `nohup.out'
    lepus server start fail!
    [root lepus]$ cat nohup.out 
    Traceback (most recent call last):
      File "lepus.py", line 8, in <module>
        import MySQLdb
      File "/usr/lib64/python2.6/site-packages/MySQL_python-1.2.4-py2.6-linux-x86_64.egg/MySQLdb/__init__.py", line 19, in <module>
        import _mysql
    ImportError: libmysqlclient.so.18: cannot open shared object file: No such file or directory
    
    解决方法:
    [root lepus]$
    ln -sf /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/ [root lepus]$ ln -sf /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/ [root lepus]$ lepus start nohup: appending output to `nohup.out' lepus server start success!

    三、安装WEB管理台

    (1) 去到lepus的解压目录下把php文件夹下的所有文件拷贝/var/www/html下,然后编辑文件/var/www/html/application/config/database.php

    [root@lepus-server lepus]# cp -rf /usr/local/src/lepus_v3.7/php/* /var/www/html/
    [root@lepus-server lepus]# cd /var/www/html/application/config/
    [root@lepus-server config]# vim database.php

    2)重启httpd

    [root@lepus-server config]# /etc/init.d/httpd restart
    Stopping httpd:                                            [  OK  ]
    Starting httpd:                                            [  OK  ]
    [root@lepus-server config]#

     (3)、关闭防火墙(线上自己要添加规则即可,别逗比的把线上的关了

    [root@lepus-server config]# service iptables stop
    iptables: Flushing firewall rules:                         [  OK  ]
    iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
    iptables: Unloading modules:                               [  OK  ]
    
    [root@lepus
    -server config]# setenforce 0

    4)访问lepus,在Firefox输入http://192.168.10.128默认管理员账号密码admin/Lepusadmin登录后请修改管理员密码,增加普通账号(猎豹浏览器缓存太强了,修改的东西,会存在有时不生效的可能),很多人反馈到登录页面就跳转不了,建议不要用IP直接访问,可以用域名:端口或者IP:端口,使用大一点的端口试试,如8080,8090。

    四、常规的配置

    1)、添加一个MySQL server,在添加被监控端的服务器时,在数据库里都要授权监控用户,如果是一个内网网段可以执行(线上不建议给all的权限):

    mysql> grant all privileges on *.* to 'lepus'@'192.168.10.%' identified by 'lepus';
    Query OK, 0 rows affected (0.08 sec)
    
    mysql> flush privileges;
    Query OK, 0 rows affected (0.06 sec)
    
    mysql> 

    添加完比后,点击仪表盘可以看到监控的信息

    2)安装snmp服务

    [root@lepus-server ~]# yum install -y net-snmp net-snmp-utils
    [root@lepus-server ~]# vim /etc/snmp/snmpd.conf

    修改配置文件如下:

    把#号去掉,开启下面这行

    修改下面的为all

    重启服务:

    [root@lepus-server lepus]# /etc/init.d/snmpd start
    Starting snmpd:                                            [  OK  ]
    [root@lepus-server lepus]#

    web端添加os服务器:

    点击最后的图形,可以看监控的具体情况:

    五、监控redis

    redis的安装过程不在这里演示,配置redis的时候要设置密码,监控的时候要输入redis密码的

    [root@lepus-server sql]# netstat -nltp |grep redis
    tcp        0      0 0.0.0.0:7000                0.0.0.0:*                   LISTEN      22658/redis-server  
    tcp        0      0 :::7000                     :::*                        LISTEN      22658/redis-server  
    [root@lepus-server sql]#

     在配置中心找到Redis,新增:

    六、慢查询监控

      进到对应的目录下,找到脚本lepus_slowquery.sh,要把该脚本发送到被监控的DB端,结合任务计划调用,而且被监控端要percona-toolkit

    [root@lepus-server mysql]# cd /usr/local/lepus/client/mysql/
    [root@lepus-server mysql]# ls
    lepus_slowquery.sh
    [root@lepus-server mysql]#

    我以监控Lepus-server为例,所以我就不拷贝监控脚本到别的Lepus-clinet了。我们先安装percona-toolkit

    [root@lepus-server mysql]# cd /usr/local/src/
    [root@lepus-serversrc]#wget https://www.percona.com/downloads/percona-toolkit/2.2.11/RPM/percona-toolkit-2.2.11-1.noarch.rpm
    [root@lepus-server src]# yum install perl-IO-Socket-SSL perl-DBD-MySQL perl-Time-HiRes -y
    [root@lepus-server src]# rpm -ivh percona-toolkit-2.2.11-1.noarch.rpm 
    warning: percona-toolkit-2.2.11-1.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY
    Preparing...                ########################################### [100%]
       1:percona-toolkit        ########################################### [100%]
    [root@lepus-server src]#

    下面配置一下慢查询监控脚本: vim lepus_slowquery.sh(如果运行脚本报错,要用dos2unix 转一下格式)

    开启主机的慢查询功能:

    七、发邮件的配置

    在配置中心----->全局配置

    总结:

         一、Lepus监控系统的监控功能相对来说还是比较强大的,如果是DBA或者运维DBA可以考虑使用。

         二、Lepus MySQL监控系统是一个开源的系统,所以安全性方面要值得注意,做好访问规则。

         三、可以把现成的监控系统修改为自己的监控系统,灵活的增加或者删除一些功能来达满足公司需求的监控系统。

    作者:陆炫志

    出处:xuanzhi的博客 http://www.cnblogs.com/xuanzhi201111

    您的支持是对博主最大的鼓励,感谢您的认真阅读。本文版权归作者所有,欢迎转载,但请保留该声明。

  • 相关阅读:
    MySQL导出数据到文件中
    MySQL表内更新时,自动记录时间
    MySQL实现分页查询
    shell 中执行Oracle查询和执行存储过程
    python调用其他脚本
    hadoop 中ALL Applications 中Tracking 下History查找不到MapReduce Job 日志
    Matplotlib 随机漫步图
    Matplotlib 绘图
    shell中$(( ))、$( )、``与${ }的区别详解
    jquery动画切换引擎插件 Velocity.js 学习01
  • 原文地址:https://www.cnblogs.com/xuanzhi201111/p/5200757.html
Copyright © 2020-2023  润新知