Prometheus + Grafana(七)系統監控之Redis


 

前言

利用prometheus監控redis.

github地址:https://github.com/oliver006/redis_exporter

 

技術架構

prometheus通過redis_exporter抓取redis的指標,一個prometheus可以配置很多redis_exporter,一個redis_exporter也可以抓取多個redis。

 

安裝redis_exporter

注:在redis集群下的所有節點上部署。

  • 上傳解壓

從 redis_exporter下載 並上傳redis_exporter-v1.3.5.linux-amd64.tar安裝包並解壓到/usr/local目錄

wget https://github.com/oliver006/redis_exporter/releases/download/v1.3.5/redis_exporter-v1.3.5.linux-amd64.tar.gz
tar -xvf redis_exporter-v1.3.5.linux-amd64.tar cd redis_exporter-v1.3.5.linux-amd64/
  • 配置

使用默認配置

redis_exporter 常用的選項:

-redis.addr:指明一個或多個 Redis 節點的地址,多個節點使用逗號分隔,默認為 redis://localhost:6379
-redis.password:驗證 Redis 時使用的密碼;
-redis.file:包含一個或多個redis 節點的文件路徑,每行一個節點,此選項與 -redis.addr 互斥。
-web.listen-address:監聽的地址和端口,默認為 0.0.0.0:9121
  • 啟動

進入根目錄下,輸入以下命令:

cd redis_exporter-v1.3.5.linux-amd64
nohup ./redis_exporter -redis.addr 10.x.xxx.213:7000 10.x.xxx:7001 10.x.xxx.213:7002 10.x.xxx.213:7003 &
tail -1000f nohup.out

注:-redis.addr 請修改相應環境redis服務地址,如同一台服務器部署了多個實例,全部都要填寫

啟動成功后,可以訪問 http://10.x.xx.100:9121/metrics/  (IP和端口要改成相應環境的)

看抓取的信息如下:

 

Prometheus配置

  • 配置

修改prometheus組件的prometheus.yml加入redis監控:

vi /usr/local/prometheus-2.15.1/prometheus.yml

 

  • 啟動驗證

先kill掉Prometheus進程,用以下命令重啟它,然后查看targets:

cd /usr/local/prometheus-2.15.1
nohup ./prometheus --config.file=prometheus.yml &

 

Grafana配置

  • 導入儀表盤模板

導入標准 redis儀表盤模板,以下是在標准基礎上修改的模板文件(Redis-dashboard.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
  • 預警指標  

序號

預警名稱

預警規則

描述

1

節點數預警

當集群中的節點數達到閾值【!=12】時進行預警

 

2

客戶端連接數預警

當客戶端連接數達到閾值【>900】時進行預警

 

3

內存預警

當內存使用達到閾值【>80%】時進行預警

 

4

拒絕連接預警

因最大客戶端數量限制而被拒絕的連接請求數量達到閾值【>1】時進行預警

 

5

未命中預警

當根據key找不到數據的次數達到閾值【>10000000】時進行預警

 

 

其它

  • 注冊為系統服務開機自動啟動

## 准備配置文件
cat <<\EOF >/etc/systemd/system/redis_exporter.service
[Unit]
Description=Prometheus exporter for Redis metrics.
Documentation=Supports Redis 2.x, 3.x, 4.x, and 5.x

[Service]
ExecStart=/usr/local/redis_exporter/redis_exporter -redis.addr=redis://localhost:6379

[Install]
WantedBy=multi-user.target
EOF


## 啟動並設置為開機自動啟動
systemctl daemon-reload
systemctl enable redis_exporter.service
systemctl stop redis_exporter.service
systemctl start redis_exporter.service
systemctl status redis_exporter.service

 


免責聲明!

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



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