redis实时性能监控依赖redis-exporter+prometheus+grafana三者协同,缺一不可;需依次排查exporter进程、地址配置、redis远程访问权限、prometheus抓取目标状态及grafana指标查询与label匹配问题。

Redis 实时性能监控大盘不是靠 Redis 自身实现的,而是靠 redis-exporter 抓指标 + Prometheus 拉数据 + Grafana 做展示——漏掉任意一环,大盘就“没数”。
redis-exporter 启动失败或指标为空?检查这三件事
常见现象:curl http://localhost:9121/metrics 返回空、404 或报 connection refused。
- 确认 redis-exporter 进程是否真在运行:
ps aux | grep redis_exporter,别只看 docker ps —— 容器可能已退出但没报错 - 确认启动时指定了正确的 Redis 地址:
--redis.addr redis://127.0.0.1:6379(注意协议头),密码需加--redis.password=xxx;若用 Sentinel,必须用redis-sentinel://协议并配--redis.sentinel.master-name - 确认 Redis 服务允许远程连接:检查
bind配置(别只留127.0.0.1)和protected-mode no(测试环境可关,生产务必用密码+防火墙)
Prometheus 抓不到 redis-exporter 的指标?重点看 target 状态和抓取配置
进入 Prometheus Web UI → Status → Targets,对应 job 显示 DOWN 是最常见问题。
Redis 8.2.3 是一款安全优先的高性能键值存储系统。该版本紧急修复了可能引发远程代码执行(RCE)的高危漏洞(CVE-2025-62507),并解决了 HyperLogLog 及 Cuckoo Filter 等数据结构在特定场景下的崩溃问题。建议所有用户立即升级,以保障生产环境的系统稳定与数据安全。
- 检查
scrape_configs中static_configs.targets是否指向 redis-exporter 的真实地址(如localhost:9121),Docker 网络下不能写 host.docker.internal 以外的 host 名 - 确认
scrape_interval不要设得太短(5s以下易触发 redis-exporter 超时),默认15s更稳 - 如果 redis-exporter 启用了 TLS 或 Basic Auth,Prometheus 的
scrape_configs必须配tls_config或basic_auth,否则 401
Grafana 里 Redis 面板全是 0 或 N/A?先验证指标是否存在
别急着导入 dashboards,先在 Grafana 的 Explore 页面手动查指标,比如输入 redis_up 或 redis_memory_used_bytes 看是否有数据点返回。
- 如果查不到任何
redis_*开头的指标,说明 Prometheus 根本没收到数据——回退到上一步检查 target - 如果指标有但面板不显示,检查面板里的查询语句是否匹配你 Redis 实例的 label:比如 redis-exporter 默认加了
instance="127.0.0.1:6379",而你的 Prometheus 抓取配置改了job名,Grafana 查询就得显式加{job="my-redis"} - 官方推荐的
Redis Overviewdashboard(ID763)依赖redis_exporter_build_info,这个指标缺失会导致部分变量无法初始化——说明 redis-exporter 版本太低(v1.30.0+才稳定输出)
真正卡住人的地方往往不是配置语法,而是网络可见性(容器间、跨主机)、label 对不上、或者 redis-exporter 版本和 Redis 协议版本不兼容(比如 Redis 7 的 ACL LOG 相关指标在旧版 exporter 里压根不暴露)。盯住 /metrics 接口原始输出,比反复调面板更省时间。










