TenSunS监控REDIS:使用一个redis_exporter监控所有的Redis实例


概述

后羿 - TenSunS(原ConsulManager)是一个使用Flask+Vue开发,基于Consul的WEB运维平台,弥补了Consul官方UI对Services管理的不足;并且基于Consul的服务发现与键值存储:实现了Prometheus自动发现多云厂商各资源信息;基于Blackbox对站点监控的可视化维护;以及对自建与云上资源的优雅管理与展示。

仓库地址:https://github.com/starsliao/TenSunS

一、如何在TenSunS中接入redis

1. 接入云厂商的Redis

  1. 新增云账号的情况:目前新增时,支持多选区域,以及选择增加的资源类型,勾选REDIS即可接入自动同步云REDIS,记得设置好同步间隔。

图片

  1. 对已经添加过的账号,增加同步云REDIS资源:点击编辑云资源,选择好需要编辑的厂商、账号及区域,再勾选资源类型REDIS,配置上同步间隔即可增加自动同步云REDIS。

图片

  1. 接入完成后,可手动点击同步按钮,完成首次同步;或者等待设定好的同步周期后会自动同步。

图片

  1. 同步完成后,可在云资源管理-REDIS管理-云REDIS列表,查看同步的云redis信息以及自定义实例监控的IP和端口(再次同步不会覆盖实例自定义的IP端口信息)。 图片

2. 接入自建redis

  1. 进入云资源管理-REDIS管理-自建REDIS管理,即可新增或批量导入自建的redis列表。 图片

二、部署一个支持多实例的redis_exporter

官方仓库:https://github.com/oliver006/redis_exporter

新建一个docker-compose.yml,内容如下:

version: "3.2"
services:
  redis-exporter:
    image: oliver006/redis_exporter
    container_name: redis-exporter
    restart: unless-stopped
    command:
      - "-redis.password-file=/redis_passwd.json"
    volumes:
      - /usr/share/zoneinfo/PRC:/etc/localtime
      - /data/redis-exporter/redis_passwd.json:/redis_passwd.json
    expose:
      - 9121
    network_mode: "host"

新建一个redis的实例地址与密码文件,/data/redis-exporter/redis_passwd.json

{
  "redis://xxxxxxxxxxx.dcs.huaweicloud.com:6379":"",
  "redis://aaaaaaaa.cn-south-1.dcs.myhuaweicloud.com:6379":"q1azw2sx"
}
  • docker-compose中挂载配置文件文件的本地路径注意根据实际情况修改。
  • 配置文件的格式为json,每行一个实例的信息格式为:"redis://实例地址端口":"redis密码"
  • 实例地址端口请查看云REDIS列表自建redis管理实例字段。
  • 如redis无密码,保留空双引号即可""

启动:docker-compose up -d

三、如何接入到Prometheus

点击菜单云资源管理-REDIS管理-prometheus配置: - 在右侧选择需要加入监控的云账号REDIS组,并且输入redisexporter的IP和端口,点击生成配置,即可复制生成的JOB内容到prometheus。 - 由于RedisExporter无法监控到云数据库的CPU、部分资源使用率的情况,所以TenSunS开发了Exporter功能,配置到Prometheus即可直接从云厂商采集到这些指标!选择需要采集指标的REDIS账号区域,TenSunS地址和端口,即可生成Prometheus的JOB配置。

图片

四、参考告警规则

图片

五、参考Grafana看板

GRAFANA:Redis Exporter Dashboard 中文版

图片