Prometheus 和 Grafana 与 Redis Cloud
使用 Prometheus 和 Grafana 收集和可视化 Redis Cloud 指标。
您可以使用 Prometheus 和 Grafana 收集和可视化您的 Redis Cloud 指标。
- Prometheus 是一款开源系统监控和告警工具包,可以从不同来源抓取指标。
- Grafana 是一款开源指标可视化工具,可以处理 Prometheus 数据。
Redis Cloud 通过 Prometheus 端点暴露其指标。您可以将 Prometheus 服务器配置为从您 Redis Cloud 订阅的 8070 端口抓取指标。
Redis Cloud Prometheus 端点在 Redis Cloud 的内部网络上暴露。要访问此网络,请启用 VPC 对等连接 或 私有服务连接。这两种选项仅适用于 Redis Cloud Pro。您不能将 Prometheus 和 Grafana 与 Redis Cloud Essentials 一起使用。
有关 Prometheus 如何与 Redis Enterprise 集群通信的更多信息,请参阅 Prometheus 与 Redis Enterprise Software 的集成。
快速入门
您可以使用 Prometheus 和 Grafana Docker 镜像快速设置 Prometheus 和 Grafana 进行测试。
先决条件
-
创建一个 Redis Cloud Pro 数据库。
-
设置 VPC 对等连接。
-
从数据库的私有端点中提取 Prometheus 端点。私有端点可在 Redis Cloud 控制台 中数据库的 配置选项卡 下找到。Prometheus 端点位于内部服务器的 8070 端口。
例如,如果您的私有端点是
redis-12345.internal.<cluster_address>:12345
Prometheus 端点是
internal.<cluster_address>:8070
-
在与您的 Redis Cloud 订阅相同的云提供商上(例如 Amazon Web Services 或 Google Cloud)创建一个实例来运行 Prometheus 和 Grafana。此实例必须
-
与您的 Redis Cloud 订阅位于同一区域。
-
连接到与您的 Redis Cloud 订阅对等连接的 VPC 子网。
-
允许出站连接到 8070 端口,以便 Prometheus 可以从 Redis Cloud 服务器抓取数据。
-
允许入站连接到 9090 端口(用于 Prometheus)和 3000 端口(用于 Grafana)。
-
位于 RFC-1918 内部 IP 标准的 CIDR 范围之一内,该标准包含三个 CIDR 范围
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
Prometheus 端点根据此标准受到白名单限制。
-
设置 Prometheus
要在 Docker 上使用 Prometheus 进行自定义监控,请执行以下步骤:
-
在 Prometheus 实例上创建一个名为
prometheus
的目录,并在该目录中创建一个prometheus.yml
文件。 -
将以下内容添加到
prometheus.yml
文件中。将<prometheus_endpoint>
替换为 Prometheus 端点。global: scrape_interval: 15s evaluation_interval: 15s # Attach these labels to any time series or alerts when communicating with # external systems (federation, remote storage, Alertmanager). external_labels: monitor: "prometheus-stack-monitor" # Load and evaluate rules in this file every 'evaluation_interval' seconds. #rule_files: # - "first.rules" # - "second.rules" scrape_configs: # scrape Prometheus itself - job_name: prometheus scrape_interval: 10s scrape_timeout: 5s static_configs: - targets: ["localhost:9090"] # scrape Redis Cloud - job_name: redis-cloud scrape_interval: 30s scrape_timeout: 30s metrics_path: / # For v2, use /v2 scheme: https static_configs: - targets: ["<prometheus_endpoint>:8070"]
-
创建一个
docker-compose.yml
文件,其中包含设置 Prometheus 和 Grafana Docker 镜像的说明。version: '3' services: prometheus-server: image: prom/prometheus ports: - 9090:9090 volumes: - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml grafana-ui: image: grafana/grafana ports: - 3000:3000 environment: - GF_SECURITY_ADMIN_PASSWORD=secret links: - prometheus-server:prometheus
-
要启动容器,请运行
$ docker compose up -d
-
要检查所有容器是否已启动,请运行:
docker ps
-
在您的浏览器中,登录 Prometheus(地址为
http://localhost:9090
),以确保服务器正在运行。 -
选择 Status(状态),然后选择 Targets(目标),以检查 Prometheus 是否正在从 Redis Cloud 集群收集数据。
如果 Prometheus 已连接到集群,您可以在 Prometheus 主页的“Expression”(表达式)字段中输入 node_up 来查看集群指标。
有关 Prometheus 从 Redis Enterprise 集群收集的指标列表,请参阅 Prometheus 指标。
设置 Grafana
一旦 Prometheus 和 Grafana Docker 容器正在运行,并且 Prometheus 已连接到您的 Redis Cloud 订阅,您就可以设置您的 Grafana 仪表板。
-
登录 Grafana。如果您使用 Docker 安装了 Grafana,请访问
http://localhost:3000
并使用以下凭据登录:- 用户名:
admin
- 密码:
secret
- 用户名:
-
在 Grafana 配置菜单中,选择 Data Sources(数据源)。
-
选择 Add data source(添加数据源)。
-
从数据源类型列表中选择 Prometheus。
-
输入 Prometheus 配置信息
- 名称:
redis-cloud
- URL:
http://prometheus-server:9090
- 访问:
Server
(服务器)
注意- 如果 Grafana 服务器无法访问网络端口,请从“Access”(访问)菜单中选择 Browser(浏览器)选项。
- 在测试环境中,您可以选择 Skip TLS verification(跳过 TLS 验证)。
- 名称:
-
添加您的订阅和数据库指标仪表板。要添加预配置的仪表板,请执行以下步骤:
适用于 Redis Cloud 的 Grafana 仪表板
Redis 发布了适用于 Redis Cloud 和 Grafana 的预配置仪表板
- 订阅状态仪表板 提供了您的 Redis Cloud 订阅概览。
- 数据库状态仪表板 显示特定数据库指标,包括延迟、内存使用、每秒操作数和键数量。
- Active-Active 仪表板 显示特定于Active-Active 数据库 的指标。
这些仪表板是开源的。有关更多仪表板选项或提交问题,请参阅 Redis Enterprise 可观测性 Github 仓库。
有关配置 Grafana 仪表板的更多信息,请参阅 Grafana 文档。