prometheus监控redis集群
- 监控redis
- 1,在redis机器上安装redis_exporter
- 2,配置prometheus配置文件
- 3,设置redis maxmemory
- 4,导入redis监控模板736
监控redis
1,在redis机器上安装redis_exporter
- 下载,安装redis_exporter
https://prometheus.io/docs/instrumenting/exporters/#databases
tar -xf redis_exporter-v1.50.0.linux-amd64.tar.gz
- 启动redis_exporter
#直接启动,无密码
./redis_exporter redis//172.16.0.9:6379 &
./redis_exporter -redis.addr 172.18.11.138:6379 -redis.password xxxxx &
#有密码
redis_exporter -redis.addr 172.16.0.9:6379 -redis.password 123456
#systemctl启动
vim /usr/lib/systemd/system/redis_exporter.service
[Unit]
Description=redis_exporter
Documentation=https://github.com/oliver006/redis_exporter
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/opt/monitor/redis_exporter/redis_exporter -redis.addr 172.18.2.35:6488
Restart=on-failure
[Install]
WantedBy=multi-user.target
systemctl start redis_exporter
#添加一个redis地址和端口即可所有所有节点数据
2,配置prometheus配置文件
vim prometheus.yaml
- job_name: 'redis_exporter_targets'
static_configs:
- targets:
- redis://192.18.3.34:7000
- redis://192.18.3.34:7001
- redis://192.18.3.35:7002
- redis://192.18.3.35:7003
- redis://192.18.3.36:7004
- redis://192.18.3.36:7005
params:
check-keys: ["metrics:*"]
metrics_path: /scrape
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 172.18.2.35:9121
- job_name: 'redis_exporter'
# scrape_interval: 10s
static_configs:
- targets:
- 172.18.2.35:9121
systemctl start prometheus
#replacement:redis_exporter所在机器的ip
3,设置redis maxmemory
vim redis.conf
maxmemory 128M
./bin/redis-cli -h 172.18.2.36 -p 7005 -a 123
CONFIG set maxmemory 128M
#默认maxmemory为0,意思为不限制内存使用。
maxmemory的默认值是0,也就是不限制内存的使用。
32bit系统如果使用默认配置或配置为maxmemory 0则最大使用3G内存(详见下方源码)。
maxmemory的值没有最小限制(但是如果低于1MB,会打一条WARNING日志)。
如果设置了maxmemory选项(值 >= 1),redis在接收命令时总是会判断当前是否已经超出最大内存限制,如果超过限制会根据驱逐策略去释放内存(如果是同步释放且释放内存很大,则会阻塞其他命令的执行)。
单位问题:
maxmemory 100 裸数字情况:单位是字节。
maxmemory 1K K:代表1000字节。
maxmemory 1KB KB:代表1024字节。
maxmemory 1M M:代表1000000字节。
maxmemory 1MB MB: 代表1048576字节。
maxmemory 1G G:代表1000000000字节。
maxmemory 1GB GB: 代表1073741824字节。
4,导入redis监控模板736
查看granfana监控面板
Uptime:Redis从启动到当前运行的时间
Clients: 当前连接到Redis服务器的客户端数,用于掌握连接情况,判断是否需要调整集群数量或者连接数。
Memory Usage:Redis节点的内存使用率,用于资源消耗评估。
Commands Executed/sec:每秒成功执行的命令数。
Hits/Misses Per Sec:每秒服务器中键命中/非命中的比率,这个值可以用来评估设计是否合理。
Network I/O:网络I/O流量情况,可以用于评估带宽压力。
Expiring vs Not-Expiring Keys:过期的Keys的数量和未过期的Keys数量
完成prometheus监控redis