promethus监控Redis

一、概述

Prometheus exporter for Redis metrics.

github地址:

https://github.com/oliver006/redis_exporter

 

线上服务器,自建了6台Redis实例,需要进行监控。

 

二、安装redis_exporter

下载最新版本:

https://github.com/oliver006/redis_exporter/releases/download/v1.3.5/redis_exporter-v1.3.5.linux-amd64.tar.gz

 

登录到redis服务器,解压安装

tar zxvf redis_exporter-v1.3.5.linux-amd64.tar.gz -C /data
mv /data/redis_exporter-v1.3.5.linux-amd64 /data/redis_exporter

 

redis_exporter 用法

解压后只有一个二进制程序就叫 redis_exporter 通过 -h 可以获取到帮助信息,下面列出一些常用的选项:

-redis.addr:指明一个或多个 Redis 节点的地址,多个节点使用逗号分隔,默认为 redis://localhost:6379
-redis.password:验证 Redis 时使用的密码;
-redis.file:包含一个或多个redis 节点的文件路径,每行一个节点,此选项与 -redis.addr 互斥。
-web.listen-address:监听的地址和端口,默认为 0.0.0.0:9121

 

运行 redis_exporter 服务

## 无密码
nohup ./redis_exporter redis//192.168.111.11:6379 &
## 有密码
nohup ./redis_exporter  -redis.addr 192.168.111.11:6379  -redis.password 123456 &

 

三、配置 prometheus.yml

单机版

添加监控目标

vim /data/prometheus/prometheus.yml

最后一行添加

复制代码
  - job_name: 'redis_exporter'
    static_configs:
    - targets: ['192.168.10.147:9121']
      labels:
        instance: 生产实例1
    - targets: ['192.168.10.148:9121']
      labels:
        instance: 生产实例2
    - targets: ['192.168.10.149:9121']
      labels:
        instance: 生产实例3
    - targets: ['192.168.10.150:9121']
      labels:
        instance: 生产实例4
    - targets: ['192.168.10.151:9121']
      labels:
        instance: 生产实例5
    - targets: ['192.168.10.152:9121']
      labels:
        instance: 生产实例6
复制代码

 

集群版

运行 redis_exporter 服务,只需要连接其中一个节点即可。

## 无密码
nohup ./redis_exporter redis//192.168.111.11:7000 &
## 有密码
nohup ./redis_exporter  -redis.addr 192.168.111.11:7000  -redis.password 123456 &

 最后一行添加

复制代码
  - job_name: 'redis_cluster'
    static_configs:
      - targets:
        - redis://192.168.111.11:7000
        - redis://192.168.111.11:7001
        - redis://192.168.111.11:7002
        - redis://192.168.111.11:7003
        - redis://192.168.111.11:7004
        - redis://192.168.111.11:7005
    metrics_path: /scrape
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 192.168.111.11:9121
复制代码

 

重启prometheus即可。

 

 

四、配置 Grafana 的模板

redis_exporter 在 Grafana 上为我们提供好了 Dashboard 模板:https://grafana.com/dashboards/763

下载后在 Grafana 中导入 json 模板就可以看到官方这样的示例截图啦:

 

注意:Memory Usage这个图表,一直是N/A。是因为redis_memory_max_bytes 获取的值为0

导致 redis_memory_used_bytes / redis_memory_max_bytes 结果不正常。

 

解决办法:将redis_memory_max_bytes 改为服务器的真实内存大小。

所以我更改计算公式

redis_memory_used_bytes{instance=~"$instance"}  / 8193428

 

本文参考链接:

http://www.eryajf.net/2497.html

https://www.cnblogs.com/fsckzy/p/12053604.html

 

posted @   肖祥  阅读(1804)  评论(1编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示