• 监控redis数据库应用状态:python,tornado实现


    公司里最近redis服务器压力越来越大,其大概情况,只能从操作系统层面看,并不详尽,故同事在网上找了一个叫做 redis-live的开源项目,我配合部署了一下,还真有点意思,并解决了其中部分小debug,
    原文来之这里
    
    目前来说,越来越多的使用多了NOSQL的业务,但是这方面的监控缺不多。今天给大家介绍几个专业监控redis服务的工具,便于大家进行redis性能分析。
    
    下面开始介绍安装redis-live:
    因为redis-live是基于python开发的,所以首先要部署所需要的python环境
    
    1.wget http://dl.fedoraproject.org/pub/epel/6/x86_64/python-pip-0.8-1.el6.noarch.rpm
    2.rpm -ivh python-pip-0.8-1.el6.noarch.rpm
    3.pip-python install tornado
    4.pip-python install redis
    5.pip-python install python-dateutil
    6.pip-python install argparse
    环境部署完了之后,就需要开始安装软件了。
    
    git clone https://github.com/kumarnitin/RedisLive.git
    Initialized empty Git repository in /root/RedisLive/.git/
    remote: Counting objects: 715, done.
    remote: Compressing objects: 100% (377/377), done.
    remote: Total 715 (delta 338), reused 699 (delta 323)
    Receiving objects: 100% (715/715), 2.59 MiB | 353 KiB/s, done.
    Resolving deltas: 100% (338/338), done.
    因为没有打包的安装包,所以只能下载安装git的源码。
    安装好之后就可以配置了:
    
    cd RedisLive/src
    vi redis-live.conf
    {
            "RedisServers":
            [
                    {
                      "server" : "127.0.0.1",
                      "port"  : 6379
                    }
            ],
    
            "DataStoreType" : "sqlite",
    
            "RedisStatsServer":
            {
                    "server" : "127.0.0.1",
                    "port" : 6381
            }
    }
    RedisServers这个是redis服务器的配置。
    RedisStatsServer是redis服务器的监控信息可以存放在其他的redis服务器中.也就是RedisStatsServe.
    一般的是把”DataStoreType”改成sqlite类型的,下面的RedisStatsServer就不用配置了.
    
    注:因为有些redis服务器是需要密码进行访问的,所以如果有密码的话,需要在RedisServers里面写上密码:如下:
    
            "RedisServers":
            [
                    {
                      "server" : "127.0.0.1",
                      "port"  : 6379,
                      "password":"xxxxxx"
                    }
            ],
    配置好之后,就可以启动服务了。
    ./redis-monitor.py –duration 120 &
    ./redis-live.py &
    注:启动服务之后,如果访问web页面的话,会在当前终端输出日志,如果不想在终端输出,可以查看redis-live.py的参数
    
    [root@localhost src]# ./redis-live.py --help
    Usage: ./redis-live.py [OPTIONS]
    
    Options:
    
      --help                           show this help information
      --log_file_max_size              max size of log files before rollover
                                       (default 100000000)
      --log_file_num_backups           number of log files to keep (default 10)
      --log_file_prefix=PATH           Path prefix for log files. Note that if you
                                       are running multiple tornado processes,
                                       log_file_prefix must be different for each
                                       of them (e.g. include the port number)
      --log_to_stderr                  Send log output to stderr (colorized if
                                       possible). By default use stderr if
                                       --log_file_prefix is not set and no other
                                       logging is configured.
      --logging=debug|info|warning|error|none
                                       Set the Python log level. If 'none', tornado
                                       won't touch the logging configuration.
                                       (default info)
    可以看到有日志大小,路径,级别等等的选项。
    最后来看下监控效果图:
    

    部署过程中遇到一些问题,
    1,首先api/util/setting.py文件要加载项目根目录下的redis-live.conf,作者的意思,可能是想通过json解析配置文件,并最终load为字典供其它函数调用,但是人为写的配置文件,各种换行,空格,着实解析起来,真有点麻烦.经过分析,反正setting.py文件里函数要调用字典,并访问key我就直接把redis-live.conf配置改为字典,直接供setting.py调用,
      切记: setting.py  import redis_live.py时需要回载项目根目录,要不然找不到字典, import sys; sys.path.append("根目录") 即可.
    
    2,api/controller/BaseController.py 也需要导入根目录下的,dataprovider,也是同样问题,找不到 dataprovider下面所有模块,用同样方法解决,
    
    
    
    
    
  • 相关阅读:
    "无法在证书存储区中找到清单签名证书"的解决办法
    Windows消息ID说明
    ToolBar来的是什么事. (ToolBar 难见的Bug)
    SQL Tips 收集常用的SQL
    郁闷的内存泄露,增加TmfEditFormCmptMgr.OnDstMainSetFieldData惹的祸
    FormDestroy和Destroy中选其一个使用.
    一步步教你优化Delphi字串查找(转载)
    利用SQL建立数据库对象
    数据字典ChangeName引发的问题.
    测试Live Writer
  • 原文地址:https://www.cnblogs.com/shantu/p/4598946.html
Copyright © 2020-2023  润新知