使用redis_exporter和grafana进行redis监控

公众号:MCNU云原生,欢迎微信搜索关注,更多干货,及时掌握!

之前我们讲到使用prometheus和grafana可以实现监控平台,本篇我们以监控redis为例展示如何对中间件进行监控配置。

一、使用redis_exporter进行redis运行指标收集

首先,为了演示,本地启动一个redis节点,默认6379端口。

prometheus生态下提供了很多开箱即用的exporter,其中就有redis exporter,提供redis最重要的运行指标数据收集,部署了redis exporter以后,prometheus会通过redis exporter暴露的端口拉取数据。

redis exporter下载地址:redis_exporter,下载解压以后执行redis_exporter,默认暴露9121端口

tar -zxvf redis_exporter-v1.12.1.linux-386.tar.gz
./redis_exporter

INFO[0000] Providing metrics at :9121/metrics

修改prometheus.yml配置文件,添加redis exporter的job,IP和端口就是redis exporter部署所在的IP和端口

scrape_configs:
  - job_name: 'redis_exporter'
    static_configs:
    - targets: ['192.168.56.11:9121']

重新启动prometheus,在Graph页面输入redis,能看到redis所有的指标,以redis_memory_used_bytes为例,点击查询可以看到以下界面,表明已经采集到了redis运行指标

二、使用redis dashboard配置grafana面板

grafana官方和社区提供了很多的开箱即用的dashboard,下载地址:grafana dashboard,这里选择Redis Dashboard for Prometheus Redis Exporter。

下载对应的JSON文件,在grafana界面上选择+号->Import上传JSON文件

成功以后,可以发现dashboard已经引入成功,页面如下:

可以发现已经成功的对redis的各种运行指标进行了监控,其中Memory Usage没有数据,Edit这个指标发现其Metrics表达式为:

100 * (redis_memory_used_bytes{instance=~"$instance"}  / redis_memory_max_bytes{instance=~"$instance"} )

到prometheus graph页面查看redis_memory_max_bytes的值,发现值为0,说明没有获取到redis节点的最大内存字节数,可以手动修改为redis节点所指定的最大堆内存的字节数,例如修改为如下:

100 * (redis_memory_used_bytes{instance=~"$instance"}  / 104857600)

最终实现监控效果如下图所示:

Redis Dashboard可以提供丰富的监控指标,以下是其中一些常见的指标及其说明:

  • Uptime:Redis从启动到当前运行的时间。
  • Clients: 当前连接到Redis服务器的客户端数,用于掌握连接情况,判断是否需要调整集群数量或者连接数。
  • Memory Usage:Redis节点的内存使用率,用于资源消耗评估。
  • Commands Executed/sec:每秒成功执行的命令数。
  • Hits/Misses Per Sec:每秒服务器中键命中/非命中的比率,这个值可以用来评估设计是否合理。
  • Network I/O:网络I/O流量情况,可以用于评估带宽压力。
  • Expiring vs Not-Expiring Keys:过期的Keys的数量和未过期的Keys数量

猜你喜欢

转载自blog.csdn.net/projim_tao/article/details/129369197