使用Redis Exporter服务监控Redis Droplets

简介

对Redis数据库的有效监控对于保持最佳性能、识别潜在瓶颈以及确保系统整体可靠性至关重要。Redis Exporter服务是一个强大的工具,旨在使用Prometheus监控Redis数据库。

本教程将指导您完成Redis Exporter服务的完整设置和配置,确保您无缝地建立监控解决方案。通过遵循本教程,您将实现一个完全可操作的监控设置,有效监控Redis数据库的性能指标。

注意:本教程的大约设置时间为约25分钟。

先决条件

开始之前,请确保您已准备好以下先决条件:

  • 你需要在一个Ubuntu Droplet上设置并运行Redis数据库服务器。你可以参考我们关于如何在Ubuntu上安装和保护Redis的教程。你希望监控的服务器应该可以从你计划安装Redis导出服务的机器访问。
  • 你将需要SSH访问Redis服务器来安装和配置Redis导出服务。
  • Prometheus MySQL导出器与Prometheus集成以抓取指标和与Grafana集成以可视化。在这里,我们使用来自DigitalOcean Marketplace的PrometheusGrafana镜像来监控数据库Droplet。

注意:在本教程中,我们将介绍两种不同的方法来设置Redis Exporter服务,以监控Redis数据库。您可以选择手动配置和基于脚本的自动化,它们分别适用于不同的偏好和操作要求。按照每种方法的说明,有效地在您的基础设施上部署Redis Exporter服务。这种灵活性让您能够选择最佳的部署策略和操作工作流程方法。

方法1:手动配置

下面我们开始手动配置方法。

创建Prometheus系统和用户组

创建一个名为“prometheus”的系统用户和用户组来管理导出服务。

sudo groupadd --system prometheus
sudo useradd -s /sbin/nologin --system -g prometheus prometheus

下载和安装Redis Exporter

从GitHub下载Redis Exporter的最新版本,解压下载的文件,并将可执行文件移动到/usr/local/bin/目录。

curl -s https://api.github.com/repos/oliver006/redis_exporter/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -
tar xvf redis_exporter-*.linux-amd64.tar.gz
sudo mv redis_exporter-*.linux-amd64/redis_exporter /usr/local/bin/

验证Redis导出器安装

redis_exporter --version

以下是示例输出:

为Redis导出器配置systemd服务

创建一个systemd服务单元文件来管理Redis导出器服务。

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

在文件中添加以下内容:

redis_exporter.service
[Unit]
Description=Prometheus Redis Exporter
Documentation=https://github.com/oliver006/redis_exporter
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=prometheus
Group=prometheus
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/usr/local/bin/redis_exporter \
  --log-format=txt \
  --namespace=redis \
  --web.listen-address=:9121 \
  --web.telemetry-path=/metrics

SyslogIdentifier=redis_exporter
Restart=always

[Install]
WantedBy=multi-user.target

–log-format=txt \

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

–web.listen-address=:9121 \

–web.telemetry-path=/metrics

重新加载systemd并启动Redis导出器服务

cp /etc/prometheus/prometheus.yml /etc/prometheus/prometheus.yml-$(date +'%d%b%Y-%H:%M')

配置Prometheus Droplet(手动方法)

我们现在来手动配置Prometheus droplet。

备份prometheus.yml文件

vi /etc/prometheus/prometheus.yml
prometheus.yml
scrape_configs:
  - job_name: server1_db
    static_configs:
      - targets: ['10.10.1.10:9121']
        labels:
          alias: db1

  - job_name: server2_db
    static_configs:
      - targets: ['10.10.1.11:9121']
        labels:

添加要抓取的Redis Exporter端点

登录到您的Prometheus服务器,并添加要抓取的Redis Exporter端点。

用您的Redis Exporter端点(Redis Exporter服务的默认端口是9121)替换IP地址和端口。

手动配置到此结束。现在,让我们继续使用脚本进行配置。

方法2:使用脚本进行配置

您还可以通过运行两个脚本来实现这一点 – 一个用于目标 Droplets,另一个用于 Prometheus 实例。

wget https://solutions-files.ams3.digitaloceanspaces.com/Redis-Monitoring/DO_Redis_Target_Config.sh

首先,我们来配置目标 Droplets。

chmod +x DO_Redis_Target_Config.sh

通过 SSH 登录目标 Droplets。

./DO_Redis_Target_Config.sh

使用以下命令下载目标配置脚本:

一旦脚本下载完成,运行以下命令确保它具有可执行权限:

运行脚本,使用以下命令:

配置完成。

wget https://solutions-files.ams3.digitaloceanspaces.com/Redis-Monitoring/DO_Redis_Prometheus_Config.sh

注意:如果 redis_exporter.service 文件已存在,脚本将不会运行。

chmod +x DO_Redis_Prometheus_Config.sh

配置 Prometheus 实例(脚本方法)

./DO_Redis_Prometheus_Config.sh

通过 SSH 登录 Prometheus 实例,并使用以下命令下载脚本:

一旦脚本下载完成,运行以下命令确保它具有可执行权限:

运行脚本,使用以下命令:

输入要添加到监控的 Droplets 的数量。

输入主机名和 IP 地址。

配置完成。

添加完成后,通过访问 URL prometheushostname:9090/targets 来检查目标是否已更新。

注意:如果您输入的IP地址已经添加到监控中,系统将要求您再次输入详细信息。另外,如果您没有更多服务器需要添加,可以输入0以退出脚本

配置Grafana

在浏览器上访问Grafana-IP:3000以登录Grafana仪表板。

前往配置 > 数据源

点击添加数据源。

https://solutions-files.ams3.digitaloceanspaces.com/Redis-Monitoring/DO_Grafana-Redis_Monitoring.json

搜索并选择Prometheus。

输入名称为Prometheus,URL(Prometheushostname:9090)并点击“保存 & 测试”。如果您看到“数据源正在工作”,则您已成功添加了数据源。完成后,前往创建 > 导入

您可以手动配置仪表板,也可以通过上传JSON文件来导入仪表板。Redis监控的JSON模板可以在以下链接中找到:

填写字段并导入。

Grafana仪表板准备好了。选择主机并检查指标是否可见。请随时根据需要修改和编辑仪表板。

结论

在本教程中,您学会了如何在服务器上自动化部署 Redis Exporter。脚本首先检查 redis_exporter.service 单元文件是否已经存在,如果存在则退出,以避免重复设置。接着,它创建了一个 Prometheus 系统用户和组,以实现安全的服务的隔离。脚本下载并安装了 Redis Exporter 二进制文件,并将它们放在了 /usr/local/bin/ 标准化的目录中。

Source:
https://www.digitalocean.com/community/tutorials/monitor-redis-droplet-using-redis-exporter