prometheus監控redis需要用到redis_exporter。
redis_exporter 項目地址:https://github.com/oliver006/redis_exporter
1、安裝部署
這里則部署在了Prometheus Server之上。
cd /usr/local/src
wget https://github.com/oliver006/redis_exporter/releases/download/v1.6.1/redis_exporter-v1.6.1.linux-amd64.tar.gz
tar -zxv -f redis_exporter-v1.6.1.linux-amd64.tar.gz -C /usr/local/
cd /usr/local/
mv redis_exporter-v1.6.1.linux-arm64/ redis_exporter
2、redis_exporter 用法
解壓后只有一個二進制程序就叫 redis_exporter 通過 -h 可以獲取到幫助信息,下面列出一些常用的選項:
-redis.addr:指明一個或多個 Redis 節點的地址,多個節點使用逗號分隔,默認為 redis://localhost:6379
-redis.password:驗證 Redis 時使用的密碼;
-redis.file:包含一個或多個redis 節點的文件路徑,每行一個節點,此選項與 -redis.addr 互斥。
-web.listen-address:監聽的地址和端口,默認為 0.0.0.0:9121
3,運行 redis_exporter 服務
創建 redis_exporter.service 啟動腳本
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=/usr/local/redis_exporter/redis_exporter -redis.addr 192.168.0.254:6371
Restart=on-failure
[Install]
WantedBy=multi-user.target
注意
:關於redis的相關信息,則在ExecStart
配置項當中進行定義!
1.若是需要修改默認的監聽端口,則修改成:ExecStart=/usr/local/redis_exporter/redis_exporter -redis.addr 192.168.0.254:6371 -web.listen-address 0.0.0.0:9122
2.若是redis集群有密碼,則修改成:ExecStart=/usr/local/redis_exporter/redis_exporter -redis.addr 192.168.0.254:6371 -redis.password -web.listen-address 0.0.0.0:9122
若是修改默認監聽端口的話,則在prometheus.yml文件中也需要做相應的修改
之所以要在啟動命令中配置一個:-redis.addr 192.168.0.254:6371
也就是集群中的隨意一個地址,是因為只要能連接到一個集群的一個節點,自然就能查詢其他節點的指標了。否則不配置這個的話,日志中則會報錯:level=error msg="Couldn't connect to redis instance"
redis_exporter 使用 prometheus 用戶運行,所以需要創建該用戶
groupadd prometheus
useradd -g prometheus -m -d /var/lib/prometheus -s /sbin/nologin prometheus
# 若有用戶,則直接執行這個
chown -R prometheus.prometheus /usr/local/redis_exporter
啟動服務:
systemctl daemon-reload
systemctl start redis_exporter
systemctl status redis_exporter
systemctl enable redis_exporter
ss -tulnp | grep 9121
4、配置 prometheus.yml 添加監控目標
vim /usr/local/prometheus/prometheus.yml
- job_name: 'redis_cluster_targets'
static_configs:
- targets:
- redis://192.168.0.254:6371
- redis://192.168.0.254:6372
- redis://192.168.0.254:6373
- redis://192.168.0.254:6374
- redis://192.168.0.254:6375
- redis://192.168.0.254:6376
metrics_path: /scrape
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 192.168.0.254:9121
## config for scraping the exporter itself
- job_name: 'redis_cluster'
static_configs:
- targets:
- 192.168.0.254:9121
重啟服務。
systemctl restart prometheus
效果圖:
5,配置 Grafana 的模板
redis_exporter 在 Grafana 上為我們提供好了 Dashboard 模板:https://grafana.com/dashboards/763
下載后在 Grafana 中導入 json 模板就可以看到官方這樣的示例截圖啦: