Prometheus监控redis

本文介绍了如何在Docker中部署Redis服务,并通过redis_exporter监控其性能,配置Prometheus以收集指标并设置触发器,实现对Redis健康状况的实时监控和报警。
摘要由CSDN通过智能技术生成

Redis 服务 启用

cat >docker-compose.yml<<'EOF'
version: '3'
services:
  redis:
    image: redis:5
    container_name: redis
    command: redis-server --requirepass 123456 --maxmemory 512mb
    restart: always
    volumes:
      - /data/redis/data:/data
    ports:
      - 6379:6379

Redis_exporter

  • docker直接运行
     
docker run -d --name redis_exporter -p 9121:9121 \
oliver006/redis_exporter \
--redis.addr redis://10.19.1.220:6379 \
--redis.password '123456'
  • docker-compose.yml
cd /data/redis/
```
cat >docker-compose.yaml << 'EOF'
version: '3.3'
services:
  redis_exporter:
    image: oliver006/redis_exporter
    container_name: redis_exporter
    restart: always
    environment:
      REDIS_ADDR: "10.19.1.220:6379"
      REDIS_PASSWORD: 123456
    ports:
      - '9121:9121'
EOF

prometheus/prometheus.yml 配置

cat >> prometheus/prometheus.yml << 'EOF'
  - job_name: 'redis_exporter'
    scrape_interval: 30s
    static_configs:
    - targets: ['10.19.1.220:9121']
      labels:
        instance: redis服务器 
EOF

加载配置文件

curl -X POST http://localhost:9090/-/reload

redis常用的监控指标

redis_uptime_in_seconds
rate(redis_cpu_sys_seconds_total[1m])+rate(redis_cpu_user_seconds_total[1m])
redis_memory_used_bytes
redis_memory_max_bytes
delta(redis_net_input_bytes_total[1m])
delta(redis_net_putput_bytes_total[1m])
redis_connected_clients
redis_rejected_connections_total
redis_connected_clients / redis_config_maxclients * 100

触发器设置

prometheus配置
mkdir /prometheus
```

vi prometheus/prometheus.yml
#报警(触发器)配置
rule_files:
  - "alert.yml"
  - "rules/*.yml"
```

redis触发器

cat > prometheus/rules/redis.yml << 'EOF'
groups:
- name: redis
  rules:
  - alert: RedisDown
    expr: redis_up == 0
    for: 0m
    labels:
      severity: critical
    annotations:
      summary: 'Redis Down,实例: {{ $labels.instance }}'
      description: "Redis实例 is down"
  - alert: RedisMissingBackup
    expr: time() - redis_rdb_last_save_timestamp_seconds > 60 * 60 * 24
    for: 0m
    labels:
      severity: critical
    annotations:
      summary: 'Redis 备份丢失,实例: {{ $labels.instance }}'
      description: "Redis 24 小时未备份"
  - alert: RedisOutOfConfiguredMaxmemory
    expr: redis_memory_used_bytes / redis_memory_max_bytes * 100 > 90
    for: 2m
    labels:
      severity: warning
    annotations:
      summary: 'Redis Down,实例: {{ $labels.instance }}'
      description: "Redis实例 is down"
EOF

检查

docker exec -it prometheus promtool check config /etc/prometheus/prometheus.yml
 curl -X POST http://localhost:9090/-/reload
检查
http://10.19.1.206:9090/rules
http://10.19.1.206:9090/alerts?search=)

dashboard

Redis: https://grafana.com/grafana/dashboards/11835

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

石兴稳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值