配置 Prometheus 在单一 redis_exporter 抓取多个 Redis 主机

在日常运维支撑中,大多数客户广泛应用 Redis 作为业务的缓存服务,凸显了 Redis 在应用架构中的关键地位。由此可见,对于 Redis 的监控变得至关重要。监控的双重作用在于一方面能够快速发现和定位异常,另一方面,对于持续运行的生产环境,我们可以利用监控数据及时预警,例如内存使用率超过70%、缓存命中率较低等关键指标。

特别是在 Redis 集群模式下,我们可以通过使用 Redis Exporter 实现多个 Redis 实例数据的采集。借助自动发现机制,我们能够更加便捷地完成 Redis 实例的快速采集和监控配置。这种综合监控方案为运维团队提供了全面了解和及时响应 Redis 服务状态的手段。

1 系统初始化配置

# 配置初始化

setenforce 0 && sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config && getenforce  # 关闭 selinux

systemctl disable firewalld && systemctl stop firewalld # 关闭 firewalld

swapoff -a  # 关闭 swap

vim /etc/fstab  # 注释swap开机挂载

useradd -s /sbin/nologin prometheus  # 创建 Prometheus用户

2 redis_exporter 安装 与 配置

wget https://github.com/oliver006/redis_exporter/releases/download/v1.51.0/redis_exporter-v1.51.0.linux-amd64.tar.gz  # Github 下载代码包

tar xf redis_exporter-v1.51.0.linux-amd64.tar.gz # 解压代码包

mv redis_exporter-v1.51.0.linux-amd64 /usr/local/redis_exporter/ # 移动目录

chown prometheus.prometheus -R /usr/local/redis_exporter/  # 赋予 Prometheus 用户权限

3 redis_exporter 配置开机启动服务 (systemd)

--redis.password-file 指定 Redis 密码信息

--web.listen-address Prometheus采集端口信息

--redis-only-metrics  只采集 redis 相关数据

  vim /usr/lib/systemd/system/redis_exporter.service

# vim /usr/lib/systemd/system/redis_exporter.service
[Unit]
Description=redis_exporter
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
User=prometheus
Group=prometheus
ExecStart=/usr/local/redis_exporter/redis_exporter   --redis.password-file=/usr/local/redis_exporter/config/pwd-file.json   --web.listen-address=:9121   --redis-only-metrics
Restart=on-failure
[Install]
WantedBy=multi-user.target

4 配置 Prometheus Redis 监控规则

  - job_name: 'redis_ds'
    file_sd_configs:
      - files:
        - /usr/local/prometheus/sd/redis-instances.json  # 自动发现-文件模式
    metrics_path: /scrape
    relabel_configs:
      - source_labels: [__address__]  # 增加 instance 标签
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - source_labels: ['__address__']  # 增加 hostip 标签, 用于与node_exporter采集的指标进行匹配
        regex: 'redis://(.+):(\d+)'
        replacement: '${1}'
        target_label: 'hostip'  
      - target_label: __address__
        replacement: 127.0.0.1:9121

5 配置多 Redis 的文件发现规则

# vim /usr/local/prometheus/sd/redis-instances.json
[
  {
    "targets": ["redis://127.0.0.2","redis://127.0.0.1:6379"],
    "labels": {
      "env": "prod",
      "app": "redis-cluster"
    }
  }
]

6 配置多 Redis 权限

{
"redis://127.0.0.1:6379":"123123123",
"redis://127.0.0.2:6379":"321312321"
}

7 启动 & 开机启动

systemctl start redis_exporter.service
systemctl enable redis_exporter.service

8 参考资料

多redis实例配置方式

https://github.com/oliver006/redis_exporter?tab=readme-ov-file#prometheus-configuration-to-scrape-multiple-redis-hosts
 

🚀 炸鸡物料库 🚀

🔍 内容定位: IT技术领域,云计算、云原生、DevOps 和 AI 等相关的技术资讯、实践和经验分享。面向开发、系统和云计算,提供实用的技术内容。

🎯 目标受众: 面向开发者、系统管理员和云计算从业者,提供实用的技术内容。

🗓️ 更新频率:每周更新,每次分享都为您带来有价值的技术内容。

🤝 互动与反馈: 鼓励读者留言、评论,有问题随时提问,我们将积极互动并提供帮助。

💌 订阅方式: 扫描二维码或搜索“炸鸡物料库”关注,不错过每一篇精彩内容。

🌐 合作与分享: 如果您有技术分享或合作计划,欢迎联系我们,共同成长!

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值