DB监控-redis监控
公司的redis业务很多,redis监控自然也是DB监控的一大模块,包括采集、展示、监控告警。本文主要介绍redis监控的主要指标和采集方法。
一、Redis监控系统逻辑
1、DBA通过前台页面添加redis监控,填写ip和端口,配置阈值、负责人等信息
2、前台调用自动调度平台接口将redis监控采集Agent发送到目标机器上的固定文件夹,并添加crond,每分钟运行(采集Agent包含采集程序和ip端口信息文件)
3、redis监控Agent采集相关指标通过http接口上报到mysql服务器(目标机器无法直接连接mysql)
4、前台读取mysql数据进行展示
5、解析程序每分钟通过读取配置信息和Agent上报的数据进行解析并发送告警(Rtx/Wechat/Sms)给指定负责人
二、采集指标和命令
1、redis服务进程 ip-port
约定所有redis服务都必须以ip1(内网ip)来绑定,每个机器只有一个ip1,可以有多个端口,即多个redis实例。采集程序读取ip端口信息文件来判断有多少个实例
ps aux | grep -E "redis-server.*$port"
约定所有redis客户端安装标准路径是
REDISPATH_CLI="/usr/local/redis/bin/redis-cli"
如果发现不是标准路径会有 No such file or directory 的提示,则采集程序会在每天早上10点发送Rtx弹窗给DBA(DBA也可以根据前台页面图表展示来判断该采集器有无上报数据,无上报数据则可以上机查看采集器日志)
采集器使用下面的命令来采集redis实例的所有信息,然后根据信息筛选出需要的指标上报到mysql
$REDISPATH_CLI -h ${agentIp} -p ${port} >&
如果redis实例没有绑定在ip1或者127.0.0.1上面则会提示 Connection refused
2、连接客户数
grep "connected_clients:" ${tmpFile} | awk -F ":" '{print $2}'
3、阻塞连接数
grep "blocked_clients:" ${tmpFile} | awk -F ":" '{print $2}'
4、redis占用内存,单位Byte转成MB
grep "used_memory:" ${tmpFile} | awk -F ":" '{print $2}' | awk '{printf "%.2f",$1/1024/1024}'
5、内存峰值,单位Byte转成MB
grep "used_memory_peak:" ${tmpFile} | awk -F ":" '{print $2}' | awk '{printf "%.2f",$1/1024/1024}'
6、主从角色
grep "role:" ${tmpFile} | awk -F ":" '{print $2}' # master(主),slave(从)
7、master_link_status
grep "master_link_status:" ${tmpFile} | awk -F ":" '{print $2}' # up down
down:Master已经不可访问了,Slave依然运行良好,并且保留有AOF与RDB文件
8、执行命令总数和qps
grep "total_commands_processed:" ${tmpFile} | awk -F ":" '{print $2}'
计算qps需要计算两次 total_commands_processed,然后除以时间差。逻辑是第一分钟将total_commands_processed的值和当时采集该值的时间保存到last.cache中,第二分钟采集的时候获取值和时间,和上次相减得到两个差值相除即可。
9、上报时间
reportTime=`date +'%Y-%m-%d %H:%M:00'`
时间的秒数是0,方便前台画图展示
三、解析告警
分析上报的指标是否异常,根据reportTime判断Agent心跳情况,将状态和异常信息存入mysql,发送告警给相关负责人。数据库分表如下:
redisMonitor库:配置表redisConf、当前状态redisCurrentStatus、异常信息表redisDisplay
历史库按月分库,按照ip分表,保存redis采集器上报数据,Ex: redisStatus167872716
四、前台展示
1、异常页面

2、状态页面

原创文章,转载请备注原文地址 http://www.cnblogs.com/lxmhhy/p/6034549.html
知识交流讨论请加qq群:180214441。谢谢合作
DB监控-redis监控的更多相关文章
- Zabbix监控redis status
概述 zabbix采用Trapper方式监控redis status 原理 redis-cli info命令得到redis服务器的统计信息,脚本对信息分两部分处理: (1)# Keyspace部分为Z ...
- DB监控-mysql监控
Mysql监控属于DB监控的模块之一,包括采集.展示.监控告警.本文主要介绍Mysql监控的主要指标和采集方法. Mysql监控和Redis监控的逻辑类似,可参考文章<Redis监控>. ...
- redis监控状态
Redis介绍 Redis是一种高级key-value数据库.它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富.有字符串,链表.哈希.集合和有序集合5种.支持在服务器端计算集合 ...
- 监控 Redis 服务方案
RedisLive easy_install pip wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate python g ...
- Zabbix 监控redis
Zabbix 监控redis 1.监控脚本,github上的 [root@localhost ~]# cat /etc/zabbix/script/redis-status.sh #!/bin/bas ...
- 监控redis性能
注存数据,取数据的功能,即 set,get,非常适合用作缓存服务器,降低后端数据库压力.有时,想确认下数据是否是从 redis 里读的,以及 redis 是怎么取得数据,这时就可以使用 monitor ...
- Prometheus监控 Redis & Redis Cluster 说明
说明 在前面的Prometheus + Grafana 部署说明之「安装」文章里,大致介绍说明了Prometheus和Grafana的一些安装使用,现在开始如何始部署Prometheus+Grafan ...
- [转]细说Redis监控和告警
原文 https://zhuoroger.github.io/2016/08/20/redis-monitor-and-alarm/? 对于任何应用服务和组件,都需要一套完善可靠谱监控方案. 尤其r ...
- Redis 监控
redis 监控有 redis-live 和 redis-stat Redis-Live是一个用来监控redis实例,分析查询语句并且有web界面的监控工具,使用python编写. redis-sta ...
随机推荐
- HTML特殊符号汇总
较常用的飘黄处理了 ´ ´ © © > > µ µ ® ® & & ° ° ¡ ¡ » » ¦ ¦ ÷ ÷ ¿ ¿ ¬ ¬ § § • • ½ ½ « « ¶ ¶ ¨ ...
- AngularJS----服务,表单,模块
AngularJS中的服务 服务是一个函数或对象,AngularJS中可以创建自己的服务或使用内建服务.$http是AngularJS中最常见的服务,服务向服务器发送请求,应用响应服务器传送过来的数据 ...
- 那些年用过的xUnit.net的简单用法
0x01 前言 单元测试,总是伴随着我们的开发过程,优劣自行google.当然呢,不排除有些公司是不做单元测试的, 但是呢,学多一点东西用来防身还是可以的. 0x02 简单的Demo 写个两数求和的方 ...
- jquery实现tab切换完整代码
代码如下,保存到html文件打开: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...
- [WCF编程]8.服务实例的生命周期
一.服务实例的生命周期概览 我们已经直到,通过显式调用Close方法或等待默认的超时时间到来,都可以释放服务实例.但是,在会话连接里,经常需要按一定顺序调用方法. 二.分步操作 会话契约的操作有时隐含 ...
- C#的Socket实现UDP协议通信
今天稍花化了一点时间,利用C#的Socket验证了UDP的通信,为接下来特地利用UDP做个分布式的通信仿真系统打下基础.众所周知,UDP 就是用户数据报协议,在互联网参考模型的第四层——传输层.与TC ...
- 修改MySQL自动递增值
alter table tablename auto_increment=num 其中tablename为表的名称,num为要设置的新的自动递增值,此时再Insert一条数据,自动递增值即为num,不 ...
- ubuntu 12.04 LTS 如何使用更快的更新源
装好ubuntu系统后的第一见事就是替换自带的更新源,原因是系统自带的源有些在中国访问不了,可以访问的速度又特别慢.幸好国内的一些公司和大学提供了速度不错的更新源.下面介绍如何使用更快的更新源 方法/ ...
- (原) 2.3 Curator使用
本文为原创文章,转载请注明出处,谢谢 Curator使用 1.jar包引入,演示版本为2.6.0,非maven项目,可以下载jar包导入到项目中 <dependency> <grou ...
- Idea开发环境中搭建Maven并且使用Maven打包部署程序
1.配置Maven的环境变量 a.首先我们去maven官网下载Maven程序,解压到安装目录,如图所示: b.配置M2_HOME的环境变量,然后将该变量添加到Path中 备注:必须要有JAVA_HOM ...