lepus搭建

lepus搭建

监控mysql

整体环境:

192.168.1.30 mini1 监控机

192.168.1.31 mini2主 被监控机

192.168.1.32 mini3从 被监控机


监控机mini1上:

1.安装依赖包

yum groupinstall Development tools

yum -y install mysql-devel

yum -y install openssl

2.安装lamp

解压安装包

在/usr/local/apapche/conf/httpd.conf中修改

<IfModule dir_module>

DirectoryIndex index.html index.php

启动httpd

/usr/local/apache/bin/httpd -f /usr/local/apache/conf/httpd.conf &

启动php

./php &

3.安装python2.7

tar -jxvf Python-2.7.13.tar.bz2

#进入解压后的⽬目录

cd Python-2.7.13

#编译和安装

./configure

make

make install

检查是否安装成功

/usr/local/bin/python2.7 -V

#如果出现如下信息代表安装成功

Python 2.7.3

4.建立软连接

#正常情况下即使python2.7安装成功后,系统默认指向的python仍然是2.6.6版本,考虑到yum是基于python2.6.6才能正常⼯工作,

所以不不建议卸载。

#采用下面的方法把系统默认的python修改为2.7.3版本

mv /usr/bin/python /usr/bin/python2.6.6

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

#检测是否成功

python -V

#出现2.7.3版本信息代表成功

Python 2.7.3

5.修改yum源

vi /usr/bin/yum

将#!/usr/bin/python

修改为

#!/usr/bin/python2.6.6

6.安装setuptools

解压

cd setuptools-12.0.3

安装

python setup.py install

7.安装MySQLdb

cd  MySQL-python-1.2.4

python setup.py build

python setup.py install

8.安装MySQL作为监控库

create database lepus default character set utf8;

grant select,insert,update,delete,create on lepus.* to 'lepus'@'%' identified by '123456';

flush privileges;

导入建库语句句

use lepus

mysql -uroot -p lepus < sql/lepus_table.sql

mysql -uroot -p lepus < sql/lepus_data.sql

修改表结构

use lepus

alter table mysql_status modify column max_connect_errors bigint(18);

alter table mysql_status_history modify column max_connect_errors bigint(18);

创建监控账号

grant select,super,process,reload,show databases,replication client on *.* to'lepus_monitor'@'%'

identified by 'lepus_monitor';

flush privileges;

9.初始化python

cd python/

chmod +x install.sh

./install.sh

10.修改python配置文件

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

[monitor_server]

host="192.168.1.30"

port=3306

user="lepus"

passwd="lepus"

dbname="lepus"

拷贝PHP文件到相关目录

cp -r php/* /usr/local/apache/htdocs

11.修改php配置文件

vi /usr/local/apache/htdocs/application/config/database.php

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

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

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

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

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

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

12.开启lepus

cd /usr/local/lepus/

lepus start

日志目录

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

tail -f /usr/local/lepus/logs/lepus.log

13.设置访问域名

vi /usr/local/apache/etc/extra/httpd-vhosts.conf

<VirtualHost*:80>

AddDefaultCharset UTF-8

DocumentRoot "/usr/local/apache/htdocs"

ServerName mysqlmtop.tomato.com

Options FollowSymLinks

AllowOverride All

Order allow,deny

Allow from All

ErrorLog"|/usr/local/apache/bin/rotatelogs /home/logs/apache/php_%Y%m%d_error.log86400 480"

CustomLog"|/usr/local/apache/bin/rotatelogs /home/logs/apache/php_%Y%m%d_access.log86400 480"

common

</VirtualHost>

14.修改hosts

127.0.0.1 localhost.localdomain localhost

::1 localhost6.localdomain6 localhost6

192.168.1.30 mini1 mysqlmtop.tomato.com

15.访问主页 默认账号密码

账号 admin

密码Lepusadmin


监控redis/mongodb

若要监控redis 和mongodb,则需要安装相关依赖

1.安装Redis模块(监控Redis所需)

[root@vpn lepus]# tar zxvf redis-py-2.10.3.tar.gz

[root@vpn lepus]# cd redis-2.10.3/

[root@vpn redis-2.10.3]# python setup.py install

安装pymongo模块(监控Mongodb所需)

[root@vpn lepus]# tar zxvf pymongo-2.7.tar.gz

[root@vpn lepus]# cd pymongo-2.7

[root@vpn pymongo-2.7]# python setup.py install

2.测试各个模块安装是否正常运行(测试文件在 /root/lepus/lepus_v3.7/python/下)

[root@vpn pymongo-2.7]# cd /root/lepus/lepus_v3.7/python/

[root@vpn pymongo-2.7]# pwd

/root/lepus/lepus_v3.7/python

[root@vpn python]# python test_driver_mysql.py

MySQL python drivier is ok!

[root@vpn python]# python test_driver_redis.py

Redis python drivier is ok!

[root@vpn python]# python test_driver_mongodb.py

MongoDB python drivier is ok!

3.修改redis的配置文件

ln -s /software/redis-3.xxx/redis.conf /etc/redis.conf

vi /etc/redis.conf

bind 0.0.0.0

redis 可以没有密码连入天兔

cd /usr/local/lepus

修改check_mongodb.py中的 db.authenticate(user,passwd)注释掉即可登录无需用户名密码的MongoDB

4.打开天兔的全局配置项,redis,mongodb

5.重启lepus

6.输入被监控端redis的IP,端口,标签即可,不用填密码,刷新

  输入被监控端mongo的IP,端口,标签即可,不用填用户密码,刷新



监控操作系统OS


1 什么是snmp 协议?

简单网络管理协议(SNMP,Simple Network Management Protocol)构成了互联网工程工作小组(IETF,Internet Engineering Task Force)定义的internet协议簇的一部分。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。它由一组网络管理的标准组成,包含一个应用层协议(application layer protocol)、数据库模型(database schema),和一组资料物件。

2 在需要监控的linux系统下snmp服务配置

2.1 snmpd 服务安装

yum install net-snmp*

2.2 编辑snmpd.conf 配置文档

vim /etc/snmp/snmpd.conf

41行 将default改为监控服务器ip;2 将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

2.3 启动 snmpd 服务

/etc/init.d/snmpd start

2.4 验证snmpd 服务

//snmpd 使用 tcp/udp 161 端口

grep 'Simple Net Mgmt Proto' /etc/services 

snmp        161/tcp            # Simple Net Mgmt Proto

snmp        161/udp            # Simple Net Mgmt Proto

lsof -i :161

COMMAND  PID USER  FD  TYPE DEVICE SIZE NODE NAME

snmpd  3734 root  11u  IPv4  13174      UDP *:snmp 

ps -ef | grep 'snmpd'

root      3734    1  0 09:34 ?        00:00:00 /usr/sbin/snmpd -Lsd -Lf /dev/null -p /var/run/snmpd.pid -a

2.5 修改snmpd 日志级别

//以上操作能够满足snmpd 服务正常使用,不过snmpd 默认日志级别将会在/var/log/message 写入大量snmp 信息,这样会影响我们察看系统日志,所以我们需要更改下!

Mar  1 09:55:01 monitor snmpd[3734]: Connection from UDP: [127.0.0.1]:37535 

Mar  1 09:55:01 monitor snmpd[3734]: Received SNMP packet(s) from UDP: [127.0.0.1]:37535 

Mar  1 09:55:01 monitor snmpd[3734]: Connection from UDP: [127.0.0.1]:47836 

Mar  1 09:55:01 monitor snmpd[3734]: Received SNMP packet(s) from UDP: [127.0.0.1]:47836 

//注释原有的OPTINOS,添加下面的一行,重启snmpd 服务即可。

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"

/etc/init.d/snmpd restart

Stopping snmpd:                                            [  OK  ]

Starting snmpd:                                            [  OK  ]

2.6将SNMP服务设置开机启动

2.7 使用snmpwalk 命令验证,在监控机上执行以下命令

snmpwalk -v 1 -c lepus  192.168.1.31

snmpwalk -v 2c -c lepus  192.168.1.32

-v是指版本,-c 是指密钥,获取到系统信息则正常!

至此,您已经成功地开启了SNMP服务。

验证snmp服务

[root@HE1 bin]# ps-ef | grep 'snmpd'

root    26100    1  0 11:20 ?        00:00:00 /usr/sbin/snmpd -LS 4 d -p/var/run/snmpd.pid -a

root    26114 25540  0 11:30 pts/0    00:00:00 grep snmpd

监控机修改lepus配置文件添加44,45,46行内容

[root@HE3lepus]# vi /usr/local/lepus/check_os.sh

在43行后添加44,45,46行内容

    40    mem_buffered=`/usr/bin/snmpwalk -v1 -c ${community}  ${ip} UCD-SNMP-MIB::memBuffer.0 |cut -d= -f2 |awk -F ' ' '{print $2}'`

    41    mem_cached=`/usr/bin/snmpwalk -v1 -c ${community}  ${ip} UCD-SNMP-MIB::memCached.0 |cut -d= -f2 |awk -F ' ' '{print $2}'`

    42    mem_usage_rate=`/usr/bin/snmpdf -v1 -c ${community}  ${ip} |grep "Physical"|awk '{print $6}'`

    43    mem_available=$[$mem_free+$mem_buffered+$mem_cached]

if [ -z $mem_shared ]; then

mem_shared=0

fi

[root@HE3 lepus]#python check_os.py

安装完成后即可在天兔系统配置需要监控的主机。


监控mysql慢日志

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

1.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%';

2.依赖软件安装:

# 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

上传percona-toolkit.rpm并安装

rpm -ivh percona-toolkit.rpm

3.脚本配置:

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

#config lepus database server  lepus服务器

lepus_db_host="192.168.1.30"

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.31"

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

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

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

报错:/bin/sh^M: bad interpreter: No such file or directory

利用如下命令修改文件格式

:set ff=unix 或 :set fileformat=unix

:wq (存盘退出)

最后再执行文件

#sh>./filename

定时任务:

查看所有定时任务:

crontab -l

添加定时任务:

crontab -e

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


复制监控没有数据显示

在被监控的mysql数据库

show variables like 'show_compatibility_56';

+-----------------------+-------+

| Variable_name        | Value |

+-----------------------+-------+

| show_compatibility_56 | OFF  |

+-----------------------+-------+

set global show_compatibility_56=on;

Query OK, 0 rows affected (0.00 sec)

---MySQL复制监控中无法看图形

vi /opt/lampp/htdocs/application/controllers/lp_mysql.php

337行,去掉'mysql/replication',改为parent::check_privilege();

原来为parent::check_privilege('mysql/replication');

刷新天兔

配置表空间分析

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

配置邮件发送

去申请一个新的126邮箱,选择设置-POP3/SMTP/IMAP-客户端授权密码

在天兔上设置,SMTP账号就是申请的126邮箱账号,SMTP密码就是你刚刚开启的客户端授权密码,邮件发件人就是126邮箱地址

[root@HE3]# python test_send_mail.py

True

send_mail_status:success

编译通过

在全局配置里面的邮件那配置邮箱,还有各个小项的邮箱配好收件箱即可。

备注:资料有整合,请忽略主机名

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,723评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,485评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,998评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,323评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,355评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,079评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,389评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,019评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,519评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,971评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,100评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,738评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,293评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,289评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,517评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,547评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,834评论 2 345

推荐阅读更多精彩内容