prometheus(15):Prometheus部署redis-exporter

一 导入第三方软件

在这里插入图片描述

二 安装解压

在这里插入图片描述

三 写service脚本。执行二进制文件

在这里插入图片描述

四 查看获取的监控指标

登录9121端口查看

五 让prometheus获取信息

在这里插入图片描述
加了标签,可以给三个机器的端口加到一个实例标签里面
在这里插入图片描述

六 登录prometheus服务器查看

在这里插入图片描述

七 查PSQL

在这里插入图片描述

八 配grafana出图

在这里插入图片描述
执行时间
在这里插入图片描述

下面给出一个从 0 到可视化的 Prometheus + Redis Exporter 部署方案,涵盖下载、systemd 管理、Prometheus 抓取配置以及 Grafana 使用示例,直接可以在生产或测试环境落地。


1️⃣ 安装 redis_exporter

1. 下载并解压

# 选择最新版本,也可以替换为特定版本
wget https://github.com/oliver006/redis_exporter/releases/latest/download/redis_exporter-v1.66.0.linux-amd64.tar.gz
tar zxvf redis_exporter-v1.66.0.linux-amd64.tar.gz
sudo mv redis_exporter-v1.66.0.linux-amd64/redis_exporter /usr/local/bin/

可选:容器方式

docker run -d --name redis_exporter \
  -p 9121:9121 \
  oliver006/redis_exporter

2️⃣ 启动并配置 systemd

编辑 /etc/systemd/system/redis_exporter.service

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

[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis_exporter \
  --redis.addr=redis://127.0.0.1:6379 \
  --redis.password=your_password
Restart=on-failure

[Install]
WantedBy=multi-user.target

加载并启动:

sudo systemctl daemon-reload
sudo systemctl enable --now redis_exporter

默认监听端口:9121
验证:

curl http://localhost:9121/metrics | head

3️⃣ 配置 Prometheus 抓取

prometheus.yml 增加 job:

scrape_configs:
  - job_name: 'redis'
    static_configs:
      - targets:
          - 192.168.10.21:9121    # redis_exporter 所在主机
        labels:
          env: production
          app: redis

检查配置:

promtool check config /etc/prometheus/prometheus.yml
sudo systemctl restart prometheus

Prometheus UI (http://<prometheus_host>:9090) → Status → Targets 应看到 redis job 状态为 UP


4️⃣ Grafana 可视化

  1. Grafana → Connections → Add data source → Prometheus
    URL: http://<prometheus_host>:9090

  2. 导入社区 Redis Dashboard(推荐 ID 11835763

    • Dashboard → Import → 输入 ID → 选择数据源。

这些模板包含内存使用、命中率、连接数、CPU、慢查询等常见面板,可直接使用。


5️⃣ 告警示例 (可选)

/etc/prometheus/rules/redis_rules.yml

groups:
- name: redis_alerts
  rules:
  - alert: RedisMemoryHigh
    expr: redis_memory_used_bytes / redis_memory_max_bytes > 0.8
    for: 5m
    labels:
      severity: warning
    annotations:
      summary: "Redis memory >80% on {{ $labels.instance }}"

prometheus.yml 中添加:

rule_files:
  - "/etc/prometheus/rules/redis_rules.yml"

6️⃣ 生产环境建议

方向建议
安全如需公网访问,在 exporter 前加 Nginx + basic_auth 或防火墙
高可用多节点 Redis 建议每台都部署 exporter,并用 service_discovery
监控指标常用:redis_connected_clientsredis_keyspace_hits_totalredis_mem_fragmentation_ratioredis_memory_used_bytes
升级exporter 与 Redis 升级可独立进行,推荐版本 >= v1.5+

总结流程
Redis → 部署 redis_exporter(端口9121) → Prometheus 抓取并打标签 → Grafana 导入 Dashboard →(可选)Prometheus Rule 告警。
按以上步骤即可快速搭建 Prometheus 监控 Redis 的完整体系。

<think>我们正在分析用户提供的Redis Docker Compose配置,并解释各个参数的作用。用户提供的配置片段来自引用[1]和[2],但用户又额外提到了一些配置项(如command中的--maxmemory 2gb --maxmemory-policy volatile-lfu),我们将结合这些进行解释。 用户问题:解释Redis容器配置及其各个参数的作用,包括image, command, ports, volumes, networks等。 注意:用户提供的配置示例中,有些是直接写在docker-compose.yml中的,有些是在command中指定的。我们将逐一解释。 1. image: 指定使用的Redis镜像版本。 2. command: 覆盖容器启动时执行的命令,可以用于传递配置参数。 3. ports: 端口映射,将容器内的端口映射到宿主机。 4. volumes: 卷映射,用于持久化数据和配置文件。 5. networks: 配置容器网络(虽然用户没有提供具体网络配置,但会简要说明)。 另外,用户还提到了`redis-server --maxmemory 2gb --maxmemory-policy volatile-lfu`,这是在command中传递的Redis配置参数。 下面进行详细解释:</think>### Redis Docker配置详解 以下是Redis容器配置中各参数的作用解析: #### 1. **镜像配置 (`image`)** ```yaml image: redis:7.0.9-alpine ``` - **`redis:7.0.9`**:指定Redis版本(7.0.9),建议使用官方镜像确保兼容性 - **`alpine`**:基于Alpine Linux的轻量级镜像(约5MB),资源占用低但功能完整[^1] - 替代方案:`redis:bullseye`(Debian基础,约100MB),适合需要更多工具的场景 #### 2. **内存管理配置 (`command`)** ```yaml command: redis-server --maxmemory 2gb --maxmemory-policy volatile-lfu ``` | 参数 | 作用 | 推荐值 | |------|------|--------| | `--maxmemory 2gb` | 限制Redis最大内存使用量 | 物理内存的60%-70% | | `--maxmemory-policy volatile-lfu` | 内存满时的淘汰策略 | `volatile-lfu`(淘汰最少使用的过期键)<br>其他策略:`allkeys-lru`(无差别淘汰) | #### 3. **端口映射 (`ports`)** ```yaml ports: - "6379:6379" ``` - **左侧`6379`**:宿主机监听端口(可改为`6380:6379`避免冲突) - **右侧`6379`**:容器内Redis默认端口 - 生产建议:仅暴露给内部网络,如`- "172.18.0.100:6379:6379"` #### 4. **数据持久化 (`volumes`)** ```yaml volumes: - ./data:/data # 持久化RDB/AOF文件 - ./conf/redis.conf:/etc/redis/redis.conf # 自定义配置 - ./logs:/logs # 日志目录 ``` - **数据目录**:映射`/data`确保重启后数据不丢失 - **配置文件**:通过挂载自定义配置(如调整超时时间、集群设置) - **日志目录**:存储Redis运行日志(需在配置中设置`logfile /logs/redis.log`) #### 5. **网络配置 (`networks`)** ```yaml # docker-compose.yml示例 networks: redis-net: driver: bridge services: redis: networks: - redis-net ``` - **自定义网络**:实现容器间通信(如Web应用连接Redis- **安全隔离**:限制外部访问,仅允许指定服务连接 - **DNS解析**:容器间可通过服务名访问(如`ping redis`) #### 6. **其他关键参数** ```yaml environment: - TZ=Asia/Shanghai # 设置容器时区 restart: always # 故障时自动重启 privileged: true # 授予高权限(谨慎使用) container_name: docker_redis # 指定容器名称 ``` ### 配置示例 ```yaml version: '3.9' services: redis: image: redis:7.0.9-alpine container_name: docker_redis command: redis-server --maxmemory 2gb --maxmemory-policy volatile-lfu ports: - "6379:6379" volumes: - ./redis_data:/data - ./conf/redis.conf:/etc/redis/redis.conf networks: - backend-network restart: unless-stopped networks: backend-network: driver: bridge ``` > **最佳实践提示** > 1. 生产环境务必启用密码验证:在`redis.conf`添加`requirepass yourpassword` > 2. 定期备份:通过`cron`任务执行`redis-cli bgsave`备份RDB文件 > 3. 监控工具:集成`redis-exporter`+Prometheus实现性能监控[^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值