浅谈Redis服务的集中监控

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介:

开始之前,先来百度下redis是什么?
Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便!

简单来说,redis和memcache这种东西用的好,可以很好的减轻后端数据库的压力,作为DBA,不能一成不变的停留在自己的一亩三分地上啊!

对于memcache和redis这种类似缓存数据库的东西,需要加大监控的力度,memcache的监控相对容易实现,可以借助memcache.php对memcache的使用情况用饼图的方式显示出来,还可以用nagios对memcache的端口或进程做实时监控,同样redis也可以对端口和进程做实时监控,但要看更多的信息,则需要用相应的监控软件,本文主要介绍在centos6.3上redmon和redis-live两款开源软件的使用情况,前者基于ruby,后者则基于python,从部署难度和功能上,我更青睐于后者!

一:redmon的安装和使用
1:安装rvm,rvm是ruby version manager的缩写,ruby语言是鬼子弄出来的,虽然不是程序员,我也一直不待见,真心觉得难用!


 
 
  1. #bash < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)  
  2. # echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile  

2:查看可用的ruby版本


 
 
  1. # /usr/local/rvm/bin/rvm list known 

3:通过rvm安装ruby


 
 
  1. # /usr/local/rvm/bin/rvm install 1.9.2   
  2. # /usr/local/rvm/bin/rvm alias create default ruby-1.9.2-p320  
  3. # /usr/local/rvm/bin/rvm list  
  4. rvm rubies 
  5.  
  6. =* ruby-1.9.2-p320 [ x86_64 ]  
  7.  
  8. # => - current  
  9. # =* - current && default  
  10. #  * - default  
  11.  
  12. # ruby -v  
  13. ruby 1.9.2p320 (2012-04-20 revision 35421) [x86_64-linux] 

4:通过gem安装bundler


 
 
  1. # gem install bundler 

5:通过git获取redmon源代码并安装


 
 
    # git clone https://github.com/steelThread/redmon.git 
    Initialized empty Git repository in /root/redmon/.git/ 
    remote: Counting objects: 975, done. 
    remote: Compressing objects: 100% (506/506), done. 
    remote: Total 975 (delta 483), reused 928 (delta 436) 
    Receiving objects: 100% (975/975), 2.57 MiB | 714 KiB/s, done. 
    Resolving deltas: 100% (483/483), done. 
    # grep -A 4 'option :redis_url' redmon/bin/redmon
      option :redis_url,
        :short       => '-r URL',
        :long        => '--redis URL',
        :default     => 'redis://192.168.1.78:6377',
        :description => "The Redis url for monitor (default: redis://192.168.1.78:6377)"
    # grep -A 9 'class Config' redmon/lib/redmon/config.rb
      class Config
        DEFAULTS = {
          :namespace     => 'redmon',
          :redis_url     => 'redis://192.168.1.78:6377',
          :app           => true,
          :worker        => true,
          :web_interface => ['0.0.0.0', 4567],
          :poll_interval => 10,
          :secure        => false
        }
    # cd redmon/ 
    # bundle exec /root/redmon/bin/redmon 
    >> Maximum connections set to 1024 
    >> Listening on 0.0.0.0:4567, CTRL+C to stop 
    [12-09-25 11:03:20] listening on http#0.0.0.0:4567

6:web接口情况,使用上存在无法添加对多个redis实例的监控 

redmon监控安装参考下列文章,在此感谢作者分享!
http://wangliang.me/?p=84
https://github.com/steelThread/redmon

二:redis-live的安装和使用,同redmon相比,添加多个redis实例监控显得非常容易!而且实时性强,大赞!


 
 
  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  
  7.  
  8. # git clone https://github.com/kumarnitin/RedisLive.git  
  9. Initialized empty Git repository in /root/RedisLive/.git/  
  10. remote: Counting objects: 715, done.  
  11. remote: Compressing objects: 100% (377/377), done.  
  12. remote: Total 715 (delta 338), reused 699 (delta 323)  
  13. Receiving objects: 100% (715/715), 2.59 MiB | 353 KiB/s, done.  
  14. Resolving deltas: 100% (338/338), done.  
  15.  
  16. # cd RedisLive/src  
  17. # cat redis-live.conf   
  18. {  
  19.         "RedisServers":  
  20.         [   
  21.                 {  
  22.                   "server" : "192.168.1.78",  
  23.                   "port"  : 6377  
  24.                 },  
  25.  
  26.                 {  
  27.                   "server" : "192.168.1.78",  
  28.                   "port"  : 6380  
  29.                 },  
  30.                   
  31.                {  
  32.                   "server" : "192.168.1.78",  
  33.                   "port"  : 6381  
  34.                 }  
  35.         ],  
  36.           
  37.  
  38.         "DataStoreType" : "sqlite",  
  39.  
  40.         "RedisStatsServer":  
  41.         {  
  42.                 "server" : "127.0.0.1",  
  43.                 "port" : 6381  
  44.         }  
  45. }  
  46.  
  47. # ./redis-monitor.py --duration  120  &  
  48. # ./redis-live.py  &  
  49. # netstat -ntpl |grep python  
  50. tcp        0      0 0.0.0.0:8888                0.0.0.0:*                   LISTEN      6652/python           
  51. tcp        0      0 :::8888                     :::*                        LISTEN      6652/python 

web接口情况:

 

参考官方文档:http://www.nkrode.com/article/real-time-dashboard-for-redis

本文转自斩月博客51CTO博客,原文链接http://blog.51cto.com/ylw6006/1006313如需转载请自行联系原作者


ylw6006

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
5月前
|
缓存 NoSQL 网络安全
【Azure Redis 缓存】Azure Redis服务开启了SSL(6380端口), PHP如何访问缓存呢?
【Azure Redis 缓存】Azure Redis服务开启了SSL(6380端口), PHP如何访问缓存呢?
|
4月前
|
NoSQL Redis Windows
windows服务器重装系统之后,Redis服务如何恢复?
windows服务器重装系统之后,Redis服务如何恢复?
80 6
|
5月前
|
存储 缓存 NoSQL
【Azure Redis 缓存】关于Azure Cache for Redis 服务在传输和存储键值对(Key/Value)的加密问题
【Azure Redis 缓存】关于Azure Cache for Redis 服务在传输和存储键值对(Key/Value)的加密问题
|
5月前
|
缓存 NoSQL 网络协议
【Azure Redis 缓存】Lettuce 连接到Azure Redis服务,出现15分钟Timeout问题
【Azure Redis 缓存】Lettuce 连接到Azure Redis服务,出现15分钟Timeout问题
【Azure Redis 缓存】Lettuce 连接到Azure Redis服务,出现15分钟Timeout问题
|
5月前
|
NoSQL Unix 网络安全
【Azure Cache for Redis】Python Django-Redis连接Azure Redis服务遇上(104, 'Connection reset by peer')
【Azure Cache for Redis】Python Django-Redis连接Azure Redis服务遇上(104, 'Connection reset by peer')
【Azure Cache for Redis】Python Django-Redis连接Azure Redis服务遇上(104, 'Connection reset by peer')
|
5月前
|
缓存 NoSQL Java
【Azure Redis 缓存】示例使用 redisson-spring-boot-starter 连接/使用 Azure Redis 服务
【Azure Redis 缓存】示例使用 redisson-spring-boot-starter 连接/使用 Azure Redis 服务
|
4月前
|
NoSQL Linux 测试技术
redis的安装步骤及前台,后台redis服务启动
这篇文章介绍了Redis的安装步骤,包括在Linux系统中下载、传输、解压、编译、安装Redis,以及Redis服务的前台和后台启动方法。
redis的安装步骤及前台,后台redis服务启动
|
4月前
|
NoSQL Linux Redis
Linux Redis 服务设置开机自启动
【9月更文挑战第2天】在 Linux 系统中,可使用两种方法设置 Redis 开机自启动:一是通过创建 `redis.service` 文件并利用 systemd 进行管理,包括定义服务参数和启动脚本;二是编辑 `/etc/rc.local` 文件,在其中添加启动命令。推荐使用 systemd 方法,因为它更符合现代 Linux 系统的设计理念。设置完成后,可通过 `sudo systemctl status redis.service` 检查服务状态。
599 3
|
5月前
|
存储 NoSQL Redis
【Azure Developer】一个复制Redis Key到另一个Redis服务的工具(redis_copy_net8)
【Azure Developer】一个复制Redis Key到另一个Redis服务的工具(redis_copy_net8)
|
5月前
|
NoSQL 网络协议 Linux
【AKS+Redis】AKS中客户端(ioredis)遇见Azure Redis服务Failover后链接中断的可能性
【AKS+Redis】AKS中客户端(ioredis)遇见Azure Redis服务Failover后链接中断的可能性