Prometheus exporter for Redis metrics.html
github地址:linux
https://github.com/oliver006/redis_exportergit
線上服務器,自建了6臺Redis實例,須要進行監控。github
下載最新版本:web
登陸到redis服務器,解壓安裝json
tar zxvf redis_exporter-v1.3.5.linux-amd64.tar.gz -C /data mv /data/redis_exporter-v1.3.5.linux-amd64 /data/redis_exporter
redis_exporter 用法vim
解壓後只有一個二進制程序就叫 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
運行 redis_exporter 服務url
## 無密碼 nohup ./redis_exporter redis//192.168.111.11:6379 & ## 有密碼 nohup ./redis_exporter -redis.addr 192.168.111.11:6379 -redis.password 123456 &
添加監控目標
vim /data/prometheus/prometheus.yml
最後一行添加
- job_name: 'redis_exporter' static_configs: - targets: ['192.168.10.147:9121'] labels: instance: 生產實例1 - targets: ['192.168.10.148:9121'] labels: instance: 生產實例2 - targets: ['192.168.10.149:9121'] labels: instance: 生產實例3 - targets: ['192.168.10.150:9121'] labels: instance: 生產實例4 - targets: ['192.168.10.151:9121'] labels: instance: 生產實例5 - targets: ['192.168.10.152:9121'] labels: instance: 生產實例6
運行 redis_exporter 服務,只須要鏈接其中一個節點便可。
## 無密碼 nohup ./redis_exporter redis//192.168.111.11:7000 & ## 有密碼 nohup ./redis_exporter -redis.addr 192.168.111.11:7000 -redis.password 123456 &
最後一行添加
- job_name: 'redis_cluster' static_configs: - targets: - redis://192.168.111.11:7000 - redis://192.168.111.11:7001 - redis://192.168.111.11:7002 - redis://192.168.111.11:7003 - redis://192.168.111.11:7004 - redis://192.168.111.11:7005 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.111.11:9121
重啓prometheus便可。
redis_exporter 在 Grafana 上爲咱們提供好了 Dashboard 模板:https://grafana.com/dashboards/763
下載後在 Grafana 中導入 json 模板就能夠看到官方這樣的示例截圖啦:
注意:Memory Usage這個圖表,一直是N/A。是由於redis_memory_max_bytes 獲取的值爲0
致使 redis_memory_used_bytes / redis_memory_max_bytes 結果不正常。
解決辦法:將redis_memory_max_bytes 改成服務器的真實內存大小。
因此我更改計算公式
redis_memory_used_bytes{instance=~"$instance"} / 8193428
本文參考連接: