Home  >  Article  >  Database  >  CentOS 5.9下Redis图形监控工具RedisLive的安装使用

CentOS 5.9下Redis图形监控工具RedisLive的安装使用

WBOY
WBOYOriginal
2016-06-07 16:32:531305browse

一直觉得缓存这东西,一般公司用用就行了,没什么必要做监控吧。可是当有一天缓存越来越重要,缓存挂了,全线崩溃时,监控就是必须的了。 一:安装使用 1 安装,其实安装就是令人发指的简单 pip install tornadopip install redispip install python-dateuti

一直觉得缓存这东西,一般公司用用就行了,没什么必要做监控吧。可是当有一天缓存越来越重要,缓存挂了,全线崩溃时,监控就是必须的了。

一:安装使用

1 安装,其实安装就是令人发指的简单

<code class="python">pip install tornado
pip install redis
pip install python-dateutil
git clone https://github.com/kumarnitin/RedisLive.git
</code>

2 配置使用

<code class="python">a 修改redis-live.conf如下:
cd RedisLive/src/
vim redis-live.conf
{
    "RedisServers":
    [   
        {   
            "server": "127.0.0.1",
            "port" : 6379
        }   
    ],  
    "DataStoreType" : "redis",
    "RedisStatsServer":
    {   
        "server" : "127.0.0.1",
        "port" : 6379
    }   
}
b 开始监控持续120s
./redis-monitor.py --duration=120
把监控加入crontab
*/30 * * * * cd /root/src/RedisLive/src && /usr/local/python2.7/bin/python2.7 redis-monitor.py --duration=120  > /dev/null 2>&1 &
c 开启web服务器
./redis-live.py
d 请访问 http://yourip:8888/index.html
</code>

二:遇到的坑

1 使用sqlite时老是报错

<code class="python">ImportError: No module named _sqlite3
</code>

查资料这个应该是python 2.7.3的一个bug

先安装sqlite-devel,然后重新编译python的方法不可行,最后是下面的方法解决

<code class="python">在网上查了一下解决办法:编辑源码下的connection.c这个文件
vi Python-2.7.3/Modules/_sqlite/connection.c
在
#include "cache.h"
#include "module.h"
#include "connection.h"
#include "statement.h"
#include "cursor.h"
#include "prepare_protocol.h"
#include "util.h"
#include "sqlitecompat.h"
#include "pythread.h"
#define ACTION_FINALIZE 1
#define ACTION_RESET 2
#if SQLITE_VERSION_NUMBER >= 3003008
#ifndef SQLITE_OMIT_LOAD_EXTENSION
#define HAVE_LOAD_EXTENSION
#endif
#endif
下面添加
#ifdef SQLITE_INT64_TYPE
typedef SQLITE_INT64_TYPE sqlite_int64;
typedef unsigned SQLITE_INT64_TYPE sqlite_uint64;
#elif defined(_MSC_VER) || defined(__BORLANDC__)
typedef __int64 sqlite_int64;
typedef unsigned __int64 sqlite_uint64;
#else
typedef long long int sqlite_int64;
typedef unsigned long long int sqlite_uint64;
#endif
typedef sqlite_int64 sqlite3_int64;
typedef sqlite_uint64 sqlite3_uint64;
然后重新编译python问题解决
</code>

三:是时候结束了

自言自语:

这个监控用起来真是令人发指的简单,功能也简单。不过看到使用的技术只能独自叹息,什么时候可以去看看tornado的源码呢?

参考资料:

作者博客:http://www.nkrode.com/article/real-time-dashboard-for-redis

作者github: https://github.com/nkrode/RedisLive

sqlite问题: http://my.oschina.net/541996928/blog/159837

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn