監控Redis集群


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 模板就可以看到官方這樣的示例截圖啦:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM