插件窝 干货文章 使用 Redis Exporter 服务监控 Redis Droplet

使用 Redis Exporter 服务监控 Redis Droplet

Redis Exporter 配置 仪表板 722    来源:    2025-03-28

使用 Redis Exporter 监控 Redis Droplet 的完整方案

方案概述

Redis Exporter 是一个 Prometheus 的 exporter,专门用于监控 Redis 实例。通过部署 Redis Exporter,您可以将 Redis 的监控指标暴露给 Prometheus,然后在 Grafana 中进行可视化展示。

实施步骤

1. 安装 Redis Exporter

方法一:直接下载二进制文件

# 下载最新版 Redis Exporter
wget https://github.com/oliver006/redis_exporter/releases/download/v1.50.0/redis_exporter-v1.50.0.linux-amd64.tar.gz

# 解压
tar xvf redis_exporter-v1.50.0.linux-amd64.tar.gz

# 移动到合适位置
sudo mv redis_exporter-v1.50.0.linux-amd64/redis_exporter /usr/local/bin/

方法二:使用 Docker 容器

docker run -d --name redis_exporter -p 9121:9121 oliver006/redis_exporter --redis.addr redis://<REDIS_HOST>:<REDIS_PORT>

2. 配置 Redis Exporter 服务

创建 systemd 服务文件:

sudo nano /etc/systemd/system/redis_exporter.service

添加以下内容(根据您的 Redis 配置调整):

[Unit]
Description=Redis Exporter
After=network.target

[Service]
User=redis
Group=redis
Type=simple
ExecStart=/usr/local/bin/redis_exporter \
  --redis.addr redis://localhost:6379 \
  --redis.password "your-redis-password" \
  --web.listen-address ":9121"
Restart=always

[Install]
WantedBy=multi-user.target

启用并启动服务:

sudo systemctl daemon-reload
sudo systemctl enable redis_exporter
sudo systemctl start redis_exporter

3. 验证 Redis Exporter

检查服务状态:

sudo systemctl status redis_exporter

测试指标收集:

curl http://localhost:9121/metrics

4. 配置 Prometheus 收集指标

在 Prometheus 的配置文件中添加 Redis Exporter 作为目标:

scrape_configs:
  - job_name: 'redis'
    static_configs:
      - targets: ['<REDIS_EXPORTER_IP>:9121']

重启 Prometheus 使配置生效。

5. Grafana 仪表板配置

  1. 导入 Redis 仪表板:

    • 仪表板 ID: 763 (官方 Redis 仪表板)
    • 或从 https://grafana.com/grafana/dashboards/ 搜索 Redis
  2. 配置数据源为您的 Prometheus 服务

6. 安全配置(可选)

基本认证

在 Redis Exporter 启动参数中添加:

--web.config.file=/path/to/web-config.yml

web-config.yml 内容示例:

basic_auth_users:
  admin: "$2y$05$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

TLS 加密

--web.config.file=/path/to/tls-config.yml

tls-config.yml 内容示例:

tls_server_config:
  cert_file: /path/to/cert.pem
  key_file: /path/to/key.pem

7. 高级监控配置

监控多个 Redis 实例

--redis.addr=redis://host1:6379,redis://host2:6379

监控 Redis 集群

--redis.addr=redis://cluster-node1:6379 \
--redis.cluster.enabled=true

自定义指标收集

--include-metrics="metric1,metric2" \
--exclude-metrics="metric3,metric4"

常见监控指标说明

  • redis_up: Redis 实例是否可达 (1=可用, 0=不可用)
  • redis_connected_clients: 已连接的客户端数量
  • redis_memory_used_bytes: Redis 使用的内存量
  • redis_commands_processed_total: 处理的命令总数
  • redis_keyspace_hits_total: 键空间命中次数
  • redis_keyspace_misses_total: 键空间未命中次数
  • redis_cpu_sys_seconds_total: Redis 系统 CPU 使用时间

故障排除

  1. 无法连接到 Redis

    • 检查 Redis 是否运行并监听正确端口
    • 验证密码是否正确
    • 检查防火墙设置
  2. Prometheus 无法抓取指标

    • 确认 Redis Exporter 正在运行 (systemctl status redis_exporter)
    • 检查 Prometheus 配置中的目标地址是否正确
    • 验证网络连通性
  3. 性能问题

    • 减少收集的指标数量 (使用 --include-metrics)
    • 增加 Redis Exporter 的 scrape 间隔

最佳实践

  1. 为生产环境配置适当的警报规则
  2. 定期检查 Redis 内存使用情况,避免 OOM
  3. 监控慢查询 (redis_slowlog_last_execution_duration_seconds)
  4. 为关键指标设置适当的 Grafana 警报

通过以上配置,您将能够全面监控 Redis Droplet 的性能和健康状况,及时发现并解决潜在问题。

下一篇:子查询