监控Redis集群服务

来源:互联网 发布:香港城市大学 知乎 编辑:程序博客网 时间:2024/05/18 03:37

一、基础环境安装

https://pypi.python.org/packages/source/b/backports.ssl_match_hostname/backports.ssl_match_hostname-3.4.0.2.tar.gz

tar xvzf backports.ssl_match_hostname-3.4.0.2.tar.gz cd backports.ssl_match_hostname-3.4.0.2python setup.py install
  • 1
  • 2
  • 3

https://github.com/facebook/tornado/archive/v3.2.0.tar.gz

tar xvzf tornado-3.2.0.tar.gzcd tornado-3.2.0python setup.py install
  • 1
  • 2

https://pypi.python.org/packages/source/r/redis/redis-2.9.1.tar.gz

tar xvzf redis-py-2.9.1.tar.gzcd redis-py-2.9.1python setup.py install
  • 1
  • 2
  • 3

https://pypi.python.org/packages/source/s/six/six-1.5.2.tar.gz

tar xvzf six-1.5.2.tar.gzcd six-1.5.2python setup.py install
  • 1
  • 2
  • 3

https://pypi.python.org/packages/source/p/python-dateutil/python-dateutil-2.2.tar.gz

tar xvzf python-dateutil-2.2.tar.gzcd python-dateutil-2.2python setup.py install
  • 1
  • 2

https://pypi.python.org/packages/18/dd/e617cfc3f6210ae183374cd9f6a26b20514bbb5a792af97949c5aacddf0f/argparse-1.4.0.tar.gz#md5=08062d2ceb6596fcbc5a7e725b53746f

tar xvzf argparse-1.4.0.tar.gzcd argparse-1.4.0python setup.py install
  • 1
  • 2
  • 3

https://codeload.github.com/nkrode/RedisLive/zip/master

unzip RedisLive-master.zipmv RedisLive-master RedisLivehttp://distfiles.macports.org/py-setuptools/setuptools-36.2.7.zipunzip setuptools-36.2.7.zip
sh setuptools*

二、RedisLive配置
1、安装RedisLive
 
https://github.com/nkrode/RedisLive
tar -xf RedisLive-master.zip -C /data/
cd /data/
mv RedisLive-master RedisLive


其中redis-live.conf.example是作者给出的一个示例配置文件,启动服务之前把.example后缀删掉变成.conf文件,打开redis-live.conf,配置好redis实例的信息:
root@storm-master-01:/home/redis/monitor/RedisLive-master/src#ls
api  dataprovider  db  __init__.py  redis-live.conf  redis-live.conf.example  redis-live.py  redis-monitor.py  util  www
root@storm-master-01:/home/redis/monitor/RedisLive-master/src#more redis-live.conf
{
    "RedisServers":
    [
        {
              "server": "192.168.1.247",
              "port" : 6379
        },
        
        {
              "server": "192.168.1.111",
              "port" : 6379
        }        
    ],

    "DataStoreType" : "sqlite",

    "RedisStatsServer":
    {
        "server" : "192.168.1.247",
        "port" : 6379
    },
    
    "SqliteStatsStore" :
    {
        "path":  "/home/redis/monitor/RedisLive-master/src/db/redislive.sqlite"
    }
}
root@storm-master-01:/home/redis/monitor/RedisLive-master/src#

在RedisServers中设置需要监控的Redis-server;

DataStoreType决定使用那种类型的数据存储,
如果是redis,使用RedisStatsServer作为数据存储的目标;
如果是sqlite,使用SqliteStatsStore作为数据存储的目标。


整个配置实际上是一个json对象,RedisServers是redis服务器的信息,由于是数组类型所以配置多个redis实例。DataStoreType是监控信息的存储方式,有”redis”和” sqlite”两种方式,分别对应下面RedisStatsServer和SqliteStatsStore,编辑完成后保存。

redis-live.py是用来启动web服务的,默认端口是8888 。redis-monitor.py就是redis监控的核心服务。

2、初始化DB
cd dbcat schema.sql | sqlite3 redislive.sqlite
  • 1

3、配置RedisLive的定期监控

*/5 * * * * cd /data/Redis-Monitor/RedisLive/src; ./redis-monitor.py --duration 20 >/dev/null 2>&1

4、服务启动

RedisLive的功能分两个部分:
一个部分是redis-server状态数据的采集,通过src/redis-monitor.py来执行;
另外一部分功能是提供对状态数据的查询服务,通过src/redis-live.py来提供web服务。

./redis-monitor.py --duration  120  &   
//启动监控,duration是心跳时间
./redis-live.py&
//启动web服务,默认监听8888端口注:./redis-live.py &[root@pro-kibana src]# Traceback (most recent call last):  File "./redis-live.py", line 10, in <module>    from api.controller.ServerListController import ServerListController  File "/data/RedisLive/src/api/controller/ServerListController.py", line 1, in <module>    from BaseController import BaseController  File "/data/RedisLive/src/api/controller/BaseController.py", line 1, in <module>    from dataprovider.dataprovider import RedisLiveDataProvider  File "/data/RedisLive/src/dataprovider/dataprovider.py", line 2, in <module>    import sqliteprovider  File "/data/RedisLive/src/dataprovider/sqliteprovider.py", line 3, in <module>    import sqlite3  File "/usr/local/python2.7/lib/python2.7/sqlite3/__init__.py", line 24, in <module>    from dbapi2 import *  File "/usr/local/python2.7/lib/python2.7/sqlite3/dbapi2.py", line 28, in <module>    from _sqlite3 import *ImportError: No module named _sqlite3解决:安装sqlite    tar -xf setuptools-23.0.0.tar.gzcd sqlite-autoconf-3130000./configure --prefix=/usr/local/sqlite3make && make install
netstat -ntpl |grep python
root@storm-master-01:/home/redis/monitor/RedisLive-master/src#netstat  -anltp|grep pythontcp        0      0 0.0.0.0:8888            0.0.0.0:*               LISTEN      194074/python       tcp        0      0 192.168.1.247:43929     192.168.1.247:3309      ESTABLISHED 126445/python3      tcp        0      0 192.168.1.247:45314     192.168.1.247:3309      ESTABLISHED 192761/python3      tcp        0      0 192.168.1.247:8888      192.168.0.250:65142     ESTABLISHED 194074/python       tcp        0      0 192.168.1.247:8888      192.168.0.250:64907     ESTABLISHED 194074/python       tcp        0      0 192.168.1.247:8888      192.168.0.250:64594     ESTABLISHED 194074/python       tcp        0      0 192.168.1.247:45313     192.168.1.247:3309      ESTABLISHED 192761/python3      tcp        0      0 192.168.1.247:8888      192.168.0.250:63135     ESTABLISHED 194074/python       tcp6       0      0 :::8888                 :::*                    LISTEN      194074/python       root@storm-master-01:/home/redis/monitor/RedisLive-master/src#5、然后在浏览器中打开http://192.168.1.247:8888/index.html,就可以看到监控信息了:6、安装redis-stat卸载老版本:    yum erase ruby ruby-libs ruby-mode ruby-rdoc ruby-irb ruby-ri ruby-docs1)安装ruby 2.0以上    tar -xf ruby-2.1.9.tar.gz cd ruby-2.1.9./configure --prefix=/usr/local/ruby2.0makemake install配置连接:    cd /usr/local/ruby2.0/for i in `ls`;do ln -s /usr/local/ruby2.0/bin/$i /usr/bin/$i;done添加淘宝源:    gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/2)安装redis-stat    cd /data/git clone https://github.com/junegunn/redis-stat.gitcd /data/redis-stat/bin/# ./redis-stat --help

命令行运行:

redis-stat
redis-stat 1
redis-stat 1 10
redis-stat --verbose
redis-stat localhost:6380 1 10
redis-stat localhost localhost:6380 localhost:6381 5
redis-stat localhost localhost:6380 1 10 --csv=/tmp/output.csv --verbose

redis-stat运行为服务:

redis-stat --server
redis-stat --verbose --server=8080 5
# redis-stat server can be daemonized
redis-stat --server --daemon
 
# Kill the daemon
killall -9 redis-stat-daemon

以守护进程模式启动:

redis-stat --verbose --server=8080 5 --daemon

运行其它主机实例:

 ./redis-stat 192.168.1.12 --auth='1234' --verbose --server=8080 5 --daemon
 
原创粉丝点击