一、开场白

去年的锅,今年才接。时间都耗在了各种业务测试上,上周刚刚把锅甩了,赶紧把以前没完成的事做完。

二、lepus简介

简洁、直观、强大的开源数据库监控系统,MySQL/Oracle/MongoDB/Redis一站式性能监控,让数据库监控更简单。没有memcached。

官网:http://www.lepus.cc/

QQ群:149648217

搭建完成后是这样的

三、lepus3.7搭建

3.8版本已经发布,这里用的是3.7,文末照旧给出所有相关软件下载地址。操作系统CentOS6.4 64位,自带python2.6.6。

依赖软件

1.MySQL 5.0及以上(必须,用来存储监控系统采集的数据)

2.Apache 2.2及以上 (必须,WEB服务器运行服务器)

3.PHP 5.3以上 (必须,提供WEB界面支持)

4.Python2 (必须,推荐2.6及以上版本,执行数据采集和报警任务,不支持Python3)

5.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此模块必须安装)

安装步骤

1.xampp安装

上传安装文件并添加+x执行权限,执行安装

./xampp-linux-x64-5.5.24-0-installer.run

2.安装各数据库python驱动

安装前准备:

yum -y install rpm-build gcc-c++ mysql-devel python-devel

各驱动名称:

Mysql:MySQLdb

Redis:redis

Mongodb:pymongo

安装以上三个:

pip install pymongo redis mysql-python

需要先配置oracle客户端:

下载地址:

http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

下载

instantclient-basic-linux.x64-12.2.0.1.0.zip

instantclient-sdk-linux.x64-12.2.0.1.0.zip

分别解压后:

yum install unzip -y

unzip ***********

cp -R instantclient_12_2 /opt/

配置环境变量:

vi /etc/profile

#在文件末添加:

export ORACLE_HOME=/opt/instantclient_12_2/

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME

确保文件生效

source /etc/profile

创建软链接

cd /opt/instantclient_12_2/

ln -s libclntsh.so.12.1 libclntsh.so

使用pip安装

pip install cx_Oracle

3.创建并配置lepus数据库

解压安装包:

unzip lepus_v3.7.zip

启动lampp

/opt/lampp/lampp start

进入mysql命令行,默认密码为空(直接回车)

/opt/lampp/bin/mysql –uroot –p

创建lepus数据库、账号、修改密码以及访问host

use mysql

create database lepus default character set utf8;

GRANT ALL privileges ON *.* TO 'root'@'localhost' IDENTIFIED BY '123456';

GRANT ALL privileges ON *.* TO 'root'@'%' IDENTIFIED BY '123456';

GRANT ALL privileges ON *.* TO 'lepus'@'localhost' IDENTIFIED BY '123456';

GRANT ALL privileges ON *.* TO 'lepus'@'%' IDENTIFIED BY '123456';

flush privileges;

导入初始化数据:

use lepus

source xxx/xxx/lepus_table.sql

source xxx/xxx/lepus_data.sql

4.安装lepus程序

切换到安装包python目录下执行安装:

cd lepus_v3.7/python

./install.sh

修改配置文件

vi /usr/local/lepus/etc/config.ini

[monitor_server]

host="127.0.0.1" #这个必须是127.0.0.1

port=3306

user="lepus"#数据库用户名,我上面设置的是lepus

passwd="123456"#数据库密码,我上面设置的密码是123456

dbname="lepus"

lepus常用命令:

lepus start/stop/status

查看启动日志:

tail -f /usr/local/lepus/nohup.out

5.安装lepus web

创建文件夹

mkdir /opt/lampp/htdocs/lepus

拷贝安装文件

cp -rf lepus_v3.7/php/* /opt/lampp/htdocs/lepus

编辑配置文件

vi /opt/lampp/htdocs/lepus/application/config/database.php

$db['default']['hostname'] = '192.168.200.136';

$db['default']['port'] = '3306';

$db['default']['username'] = 'lepus';

$db['default']['password'] = '123456';

$db['default']['database'] = 'lepus';

$db['default']['dbdriver'] = 'mysql';

重启xampp

/opt/lampp/lampp restart

启动lepus

lepus start

访问http://192.168.200.136/lepus (记得关防火墙或者设置防火墙策略)

默认账号密码admin/Lepusadmin

四、监控mysql

1.添加mysql

2.配置慢查询

被监控机主要有以下几个步骤:mysql基础配置--依赖软件安装---脚本配置--定时任务。

mysql基础配置:

在mysql命令行中执行以下命令:

set global slow_query_log=on;

set global long_query_time=1;#设置记录查询超过多长时间的sql,根据自己情况定

set global slow_query_log_file='/opt/lampp/var/mysql/';#设置mysql慢查询日志路径

断开当前连接然后重新连接进入命令行查询(缓存):

show variables like '%slow%';

show variables like '%long_query_time%';

依赖软件安装:

# yum -y install perl-IO-Socket-SSL

# yum -y install perl-DBI

# yum -y install perl-DBD-MySQL

# yum –y install perl-Time-HiRes

#yum –y install perl-Digest-MD5

或者:

yum install perl* -y

上传percona-toolkit.rpm并安装

rpm -ivh percona-toolkit.rpm

脚本配置:

vi /usr/local/lepus/client/mysql/lepus_slowquery.sh

#config lepus database server lepus服务器

lepus_db_host="192.168.200.136"

lepus_db_port=3306

lepus_db_user="lepus"

lepus_db_password="123456"

lepus_db_database="lepus"

#config mysql server 被监控的mysql

mysql_client="/opt/lampp/bin/mysql"

mysql_host="192.168.200.136"

mysql_port=3306

mysql_user="lepus"

mysql_password="123456"

#config slowqury 慢查询日志

slowquery_dir="/opt/lampp/var/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="/usr/bin/pt-query-digest"

#config server_id 与web上配置中心,mysql列表中的ID对应

lepus_server_id=1

手动运行查看是否正常运行:

sh /usr/local/lepus/client/mysql/lepus_slowquery.sh

定时任务:

查看所有定时任务:

crontab -l

添加定时任务:

crontab -e

*/5 * * * * sh /usr/local/sbin/lepus_slowquery.sh > /dev/null 2>&1

3.配置表空间分析

vi /usr/local/lepus/lepus.py

在monitor_mysql中添加(注意python代码格式):

job = Process(target = job_run, args = ('check_mysql_bigtable',int(frequency_monitor)*120)

joblist.append(job)

job.start()

修改脚本(非必须)

vi /usr/local/lepus/check_mysql_bigtable.py

bigtable=curs.execute("SELECT table_schema as 'DB',table_name as 'TABLE',CONCAT(ROUND(( data_length + index_length ) / ( 1024 * 1024 ), 2), '') 'TOTAL' , table_comment as COMMENT FROM information_schema.TABLES group by table_name having total > 5 ORDER BY data_length + index_length DESC LIMIT 10;");

以上修改内容表示提取表大小大于5M并且是排名前10的表。

pip install functions

将脚本放到crontab中执行,定期采集数据

crontab -e

*/5 * * * * python /usr/local/lepus/check_mysql_bigtable.py

4.配置表复制监控

主从mysql实例添加到监控后,等一会时间,监控就会有数据产生。

搜索选项的“角色”框中选择SLAVE角色,搜索后就会出现相应的数据。

五、监控mongodb

确保驱动已安装:

python lepus_v3.7/python/test_connect_mongodb.py

试运行check_mongodb.py :

cd /usr/local/lepus/

python check_mongodb.py

运行成功则能正常使用。

我遇到的问题:

Pymongo安装了太新的版本,重新安装pymongo2.4再次运行(不知道lepus3.8有无更新)

这次真看不懂了,留个锅,以后再看。

六、监控redis

输入ip端口即可。

七、监控OS

安装组件:

yum install net-snmp*

编辑配置

vi /etc/snmp/snmpd.conf

#41行 将default改为监控服务器ip; 将public改成lepus (备注: lepus是您在天兔配置文件里配置的通用实体,如果您配置的实体是其他名称,这里要做相应的修改)示例如下:

com2sec notConfigUser 10.0.10.10 lepus

#62行 将systemview 改为all,供所有snmp访问权限

access notConfigGroup "" any noauth exact all none none

#85行 将#注释符号去掉

view all included .1 80

尝试启动:

/etc/init.d/snmpd start

验证是否启动成功:

ps -ef | grep 'snmpd'

修改日志级别

vi /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"

重启服务

/etc/init.d/snmpd restart

八、监控oracle

确保驱动已安装:

python lepus_v3.7/python/test_driver_oracle.py

添加实例,果失败,查看日志:

ORA-00942: table or view does not exist

查到可能有如下原因:

使用数据库管理员账号再次添加实例重试成功。

安利一波我的图

恩 大概就是这样。

九、其它乱起八糟的记录

python2.6升级python2.7

wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2 --no-check-certificate

tar -jxvf Python-2.7.3.tar.bz2

cd Python-2.7.3

mkdir /usr/local/python27

./configure --prefix=/usr/local/python27

make

make install

mv /usr/bin/python /usr/bin/python_old

ln -s /usr/local/python27/bin/python2.7 /usr/bin/python

python -V命令验证

安装pip

wget https://bootstrap.pypa.io/get-pip.py

python get-pip.py

#curl https://bootstrap.pypa.io/get-pip.py | python

yum源更换

升级python为2.7后yum无法正常使用,yum支持的是python2.6版本

vi /usr/bin/yum

将第一行python修改为python2或python2.6

奇葩问题一个:使用yum的时候提示:

GPG key retrieval failed: [Errno 14] PYCURL ERROR 56 - "Failure when receiving data from the peer"

解决办法:

rpm --import http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6

mongodb安装

1、下载mongodb安装包,

2、在/usr/local目录下创建一个mongodb文件夹,然后把mongodb的安装包解压到mongodb文件中

3、创建一个存放数据的文件夹data和日志文件logs

cd /usr/local/mongodb

mkdir data

touch mongodb.logs

4、启动和关闭mongodb

/usr/local/mongodb/bin/mongod -dbpath=/usr/local/mongodb/data/ -logpath=/usr/local/mongodb/mongodb.logs -logappend -port=27017 -fork

/usr/local/mongodb/bin/mongod --shutdown --dbpath /usr/local/mongodb/data/

注:参考文章使用的是配置文件启动。

5.创建管理员以及常用的操作

./mongo

use admin;

db.system.users.find();

show collections;

db.createUser({ user: "root",pwd: "123456",customData:{name:"root"},roles:[{ role: "userAdminAnyDatabase",db: "admin" }]})

db.createUser({user: "myUserAdmin",pwd: "abc123",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})

db.auth('myUserAdmin','abc123'); //本地授权操作1 代表成功

db.createUser({user:"admin",pwd:"123456",roles:[{role:"root",db:"admin"}]})

db.system.users.remove({user:"myUserAdmin"});

db.dropUser('myUserAdmin')

db.dropUser('useradmin')

db.auth('admin','123456');

db.changeUserPassword("username", "xxx")

以上为创建账户

以下为创建库

./mongo // 进入mongo shell

use test // 使用 test 库,如果没有则新建

db.createCollection('test') // 在 test 库中新建一个叫 user 的 collection

db.test.insert({"name":"yuyuy","nums":100});

db.test.find()

6.远程无法登陆的问题

db.system.version.update({"_id":"authSchema"},{$set:{"currentVersion":3}})

默认所有ip都可以访问

新安装的数据没有admin管理员

MongoDB默认情况下不启用访问控制

redis安装

1、下载redis安装包

wget http://download.redis.io/releases/redis-2.8.12.tar.gz

2、安装redis依赖

yum -y install gcc* make tcl

3、编译安装

tar xvf redis-2.8.12.tar.gz

#改名

mv redis-2.8.12 redis

#移动

mv redis /usr/local

cd /usr/local/redis

make

4、使用redis的可执行命令

将redis命令移动到/usr/local/bin目录下,把redis命令放到/usr/local/bin目录下后就可以直接使用redis命令,如果不放到/usr/local/bin也是可以的,直接到/usr/local/redis/src目录下使用即可。

cd /usr/local/redis/src

cp -rf redis-benchmark redis-server redis-cli redis-check-dump redis-check-aof /usr/local/bin

5.启动和关闭redis

redis-server &

redis-cli shutdown

文件编码

windows编码一般是GBK(dos),而linux文件编码是unix UTF-8

如果编码不正确会导致脚本无法运行

首先使用locale命令查看系统编码,如果不是LANG=en_US.UTF-8就修改/etc/sysconfig/i18n文件直到生效

vi fileName

:set fileencoding 查看文件编码

:set fileencoding=utf-8

:set ff=unix 设置为unix

:set ff? 查看系统编码

十、软件下载

天兔监控 oracle,lepus天兔数据库监控系统搭建记录相关推荐

  1. Linux Zabbix——zabbix可视化、监控模板配置、自定义监控参数、自动发现监控下设备、数据库监控、企业proxy分布式监控搭建配置...

    Zabbix可视化.监控模板配置.自定义监控参数.自动发现监控下设备.数据库监控.proxy分布式监控搭建配置- 文章篇幅较长,可以选择目录查看感兴趣的模块. 1.Zabbix可视化 1. 简介 企业 ...

  2. lepus监控oracle数据库_lepus天兔数据库监控系统搭建记录

    一.开场白 去年的锅,今年才接.时间都耗在了各种业务测试上,上周刚刚把锅甩了,赶紧把以前没完成的事做完. 二.lepus简介 简洁.直观.强大的开源数据库监控系统,MySQL/Oracle/Mongo ...

  3. mysql数据库监控程序_mysql数据库监控利器lepus天兔工具安装和部署

    需要的核心包如下: 以下软件包只需要部署在监控机即可.被监控机无需部署. 1.MySQL 5.0及以上(必须,用来存储监控系统采集的数据) 2.Apache 2.2及以上 (必须,WEB服务器运行服务 ...

  4. mysql lepus_MySQL 监控软件lepus天兔

    概述 类别 版本 操作系统 Centos 7.4 数据库版本 MySQL 5.6.49 天兔版本 lepus 3.7 依赖软件 1.MySQL 5.0及以上(必须,用来存储监控系统采集的数据) 2.A ...

  5. MySQL 监控软件lepus天兔

    文章目录 概述 一.基本环境安装 1.1 安装LAMP环境 1.2 开启httpd,mysqld 1.3 安装lepus server需要的依赖包 1.4 配置httpd并启动 1.5 配置php 1 ...

  6. 监控oracle数据io,Prometheus监控Oracle数据库

    背景 本文简单介绍下,Prometheus如何通过exporters监控Oracle数据库,以及应该注意哪些指标. oracledb_exporter oracledb_exporter是一个连接到O ...

  7. 监控mysql的pr,数据库监控指标操作手册

    数据库版本:9.3.1(不同版本数据库相关表列名可能略有不同) 数据库状态信息 数据库状态信息主要体现数据库的当前状态 1.目前客户端的连接数 postgres=# SELECT count(*) F ...

  8. oracle lgwr io100%,数据库服务器系统I/O 100%案例分析

    环境: oracle 10.2.0.5 rac+aix 平台 问题描述: 客户数据库服务器I/O在业务高峰期非常繁忙,达到100%,cpu和内存有剩余. 分析过程: 1:检查操作系统日志,没有什么异常 ...

  9. 腾讯 roomservice php,后台系统搭建记录 - 腾讯Web前端 IMWeb 团队社区 | blog | 团队博客...

    本文作者:IMWeb 莫卓颖 未经同意,禁止转载 背景: 最近一段时候由于需要搭建后台测试系统,因此需要在centos系统下搭建mysql.apache.fastcgi.svn,由于网上的教程比较零散 ...

最新文章

  1. Windows进程与线程学习笔记(三)—— KPCR
  2. python编辑邮件格式_python发送邮件模板
  3. poj 2395 prime的递归实现
  4. 如何在从事前端两年,得到20+K的offer
  5. IntelliJ 一键添加双引号
  6. 利用python将图片版PDF转文字版PDF
  7. 人工智能--遗传算法求解TSP问题
  8. RocketMQ 源码分析 14 事务消息02
  9. Mac终端ssh连接Linux服务器
  10. CentOS 安装 无线USB网卡 RTL8192EU
  11. Zabbix通过SNMP协议监控H3C交换机
  12. css绘制梯形图形,及显示矩形图片
  13. 1分钟利用Excel快速制作随机点名器
  14. 第7章 项目成本管理
  15. 《电机学》第三篇 第10、11、12章 交流旋转电机的共同问题
  16. 北京 社保 减员 操作
  17. 医院无线认证平台怎么样
  18. 华科计算机博导刘云生论文,AAAI 2020线上分享 | 华科Oral论文:点云中3D目标检测的鲁棒性...
  19. 华盈IP PBX UC1910统一网关
  20. 可信平台模块 tpm_如何检查您的计算机是否具有受信任的平台模块(TPM)芯片...

热门文章

  1. oracle去掉0x00,ORACLE数据块转储及RDBA的转换
  2. 华为Quidiway S3300系列交换机如何通过console口恢复出厂设置
  3. Ubuntu16.04安装搜狗输入法,以及解决不能输入中文的办法
  4. 基于统一开发平台的微服务架构转型升级之路 | 某国有大型银行案例
  5. 卡巴斯基发布操作系统Kaspersky OS
  6. 如何学习TRIZ理论将其应用于创新实践当中?
  7. DNF40级冒险团与角色升级经验计算代码
  8. 五星好文·射频功率放大器(RF PA)概述
  9. 红尘陌上,为谁一抹忧伤:QQ伤感日志
  10. 手机音乐转换成mp3格式