Redis 服务 启用
cat >docker-compose.yml<<'EOF'
version: '3'
services:redis:image: redis:5container_name: rediscommand: redis-server --requirepass 123456 --maxmemory 512mbrestart: alwaysvolumes:- /data/redis/data:/dataports:- 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_exportercontainer_name: redis_exporterrestart: alwaysenvironment:REDIS_ADDR: "10.19.1.220:6379"REDIS_PASSWORD: 123456ports:- '9121:9121'
EOF
prometheus/prometheus.yml 配置
cat >> prometheus/prometheus.yml << 'EOF'- job_name: 'redis_exporter'scrape_interval: 30sstatic_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: redisrules:- alert: RedisDownexpr: redis_up == 0for: 0mlabels:severity: criticalannotations:summary: 'Redis Down,实例: {{ $labels.instance }}'description: "Redis实例 is down"- alert: RedisMissingBackupexpr: time() - redis_rdb_last_save_timestamp_seconds > 60 * 60 * 24for: 0mlabels:severity: criticalannotations:summary: 'Redis 备份丢失,实例: {{ $labels.instance }}'description: "Redis 24 小时未备份"- alert: RedisOutOfConfiguredMaxmemoryexpr: redis_memory_used_bytes / redis_memory_max_bytes * 100 > 90for: 2mlabels:severity: warningannotations:summary: 'Redis Down,实例: {{ $labels.instance }}'description: "Redis实例 is down"
EOF
检查
docker exec -it prometheus promtool check config /etc/prometheus/prometheus.ymlcurl -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