前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用zabbix 监控redis

使用zabbix 监控redis

作者头像
用户1278550
发布2018-08-09 14:45:43
2.3K0
发布2018-08-09 14:45:43
举报
文章被收录于专栏:idbaidba

前言

本文算是一篇how to文档,介绍如何利用zabbix监控redis(正好有同学问我,顺手写一篇)。 大致的过程是:

在zabbix创建redis host组以及对应的template 利用zabbix agent 收集并上传监控数据到zabbix server.

准备监控脚本

  1. 对于单机多实例的redis而言,需要先获取所有redis实例的port。 redis.port.discovery.py import os import json res=os.popen("""sudo netstat -tlpn |grep redis-server|grep 0.0.0.0|awk '{print $4}'|awk -F: '{print $2}' """) ports = [] for port in res.readlines(): r = os.path.basename(port.strip()) ports += [{'{#PORT}':r}] print json.dumps({'data':ports},sort_keys=True,indent=1,separators=(',',':')) 该脚本有一定的限制,如果redis的 conf文件写死了bind ip ,获取redis端口的命令就不能运行了。
  2. 收集redis info信息脚本 /usr/local/bin/redis-cli -h 127.0.0.1 -a redis_passwd -p $1 info |grep $2 | cut -d : -f2 没有密码的情况 /usr/local/bin/redis-cli -h 127.0.0.1 -p $1 info |grep $2 | cut -d : -f2

配置zabbix_agent调用的配置文件

在路径/opt/zabbix/etc/zabbix_agentd.conf.d/(不同公司配置可能不同),配置文件 redis.conf

代码语言:javascript
复制
UserParameter=redis.port.discovery,/opt/zabbix/share/zabbix/scripts/redis.port.discovery.py
UserParameter=redis.collect[*],/usr/local/bin/redis-cli -h 127.0.0.1 -p $1 info |grep $2|cut -d : -f2

或者使用具体的脚本来收集redis的统计信息。

代码语言:javascript
复制
UserParameter=redis.port.discovery,/opt/zabbix/share/zabbix/scripts/redis.port.discovery.py
UserParameter=redis[*],(/opt/zabbix/share/zabbix/scripts/redis_stat.sh $1 > /dev/null; echo $?)

Note

其实我们可以自己编写脚本来收集redis相关的信息,计算内存命中率,get,set次数。 redis.port.discovery是发现规则,需要在模板里面用的。

配置zabbix

  1. 创建redis host group,并添加对应的redis机器
  2. 创建监控模板 可以从网上(文末会给出url)下载,然后在zabbix监控的网页选择configuration--> templates 导入。 a 需要注意的是模板的template的名称需要自己定义,trigger定义依赖template的名称 <template>redis_template</template> <name>redis_template</name> b discovery_rule 的名称必须和zabbix_agent config文件配置的一致。 .... <discovery_rule> <name>cip-redis.port.discovery</name> .... <key>cip-redis.port.discovery</key> </discovery_rule>
  3. 绑定机器和监控模板。

最后

  1. 重启angent,检查监控输出。 在zabbix server服务器上执行如下命令 /opt/zabbix/bin/zabbix_get -s 被监控机器的ip -p zabbix监听的端口 -k key的名称 (比如 redis[6379,used_memory]) key的名称和zabbix_agent中配置的获取监控值的名称redis[*]有关。
  2. 可以结合grafna监控来配置监控项的图形展示,具体大家自己调研吧。

自己写了一个redis工具集放在github上面。

https://github.com/yangql/redis-tools

里面有redis监控模板和收集redis的统计信息脚本,有兴趣的朋友可以看看。

https://github.com/yangql/redis-tools/blob/master/zbx_redis_template.xml

https://github.com/yangql/redis-tools/blob/master/redis_stat.sh

上一篇文章 MySQL 事件调度器

相关阅读 Redis 删除1.2亿指定前缀的key

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 准备监控脚本
  • 配置zabbix_agent调用的配置文件
  • 配置zabbix
  • 最后
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档