Redis监控

Redis监控

说明

基于Flask + G2实现,监控常用Redis性能指标,如userd_memory、 total_command_processed、connection_clients等等。

源码地址:https://github.com/Kevinsss/redis_monitor

运行截图:

Redis监控_第1张图片

环境要求

Python:2.7.*
Flask:0.12.* , 提供web服务
Redis:要监控的redis
MongoDB或Mysql:用于存储监控数据

安装

在Debian或Ubuntu上:
1. 安装python: sudo apt-get install python
2. 安装Flask: sudo pip install Flask
3. 安装mongodb(推荐)或mysql: sudo apt-get install mongodb
4. 安装python redis包 sudo pip install redis
5. 安装python pymongo: sudo pip install pymongo
6. 安装python MySQLdb包(默认是用mongodb) sudo pip install mysql-python

配置

(如用mysql存储数据,则先需导入数据表结构,脚本文件在sql/mysql.sql)

编辑config.py文件:
* REDIS_SERVERS::要监控的Redis,可配置多个
* DATA_STORE_TYPE:存储到何处,值为mongodbmysql,默认mongodb
* STORE_MONGODB:mongodb参数配置
* STORE_MYSQL:mysql参数配置(选mongodb时可不配置此项)

使用

  1. 启动redis监控脚本:./redis_monitor.py --duration=100 --interval=3(duration:持续时间:interval:隔多少秒监控一次,如用后台执行,在命令后面加&)
  2. 启动flask应用:./app.py
  3. 打开浏览器输入:http://localhost:5000/

Redis常用指标说明

  • Uptime: 持续工作时间,单位秒
  • Max Memory:限制分配的最大内存,在低版本redis上,info命令不显示此信息
  • Used Memory:redis数据已用内存
  • Used Memory Rss:包含UsedMemory,同时也包括自身的开销
  • Used Memory Peak:Used Memory中的最大值
  • Mem Fragmentation Ratio:UsedMemoryPeak/UsedMemory的值,1.5左右为比较好的利用率,太大则说明利用率太低或者内存碎片太多,此时可能会影响Redis的性能
  • Total Commands Processed:命令处理总数(从Redis启动以来),如果Redis反应迟钝或者性能地下,可观察此数据的变化情况,如果某一时刻变化很多,说明redis接收了大量的命令请求,因为Redis是单线程的,只能排队执行,导致后面命令响应速度变慢
  • Total Connection Received:总的连接数,Redis连接不关闭,会导致Redis拒绝连接,当出现时,检查此项是否达到配置的MaxClients
  • Expired Keys:过期的key数量
  • CommadnCount图表Total Commands Processed的变化情况
  • Memroy图表Used MemoryUsed Memory Peak的变化情况

常见问题

  1. 安装mysql-python包时报错mysql_config not found,缺少libmysqld-dev库(apt-get install libmysqld-dev)安装即可
  2. 只用mongodb和mysql其中一种:安装相应的python包(两种包都存在时,可忽略后续步骤),然后修改config.py中的DATA_STORE_TYPE的值,最后注释掉datastore/storefactory中相应的import

你可能感兴趣的:(Python,redis,flask-web)