︿
Top

MinIO 教學 (二) 數據監控 feat Prometheus and Grafana

 


雖然 MinIO 在安裝完畢之後能夠提供簡單的數據閱覽,但我們想查看的更多細項卻無法顯示,比如在 Monitoring > Metrics 裡的 Usage、Traffic、Resources 子菜單都是反灰無法點選的,這是因為 MinIO 監控的解決方案預設使用的是 Prometheus,為了能夠看到更多 MinIO 的監控數據,這次我們不僅要額外安裝 Prometheus,更要將這些監控數據餵給 Grafana 來達成對 MinIO 的全方位監控!



測試環境說明

在「MinIO 教學 (一) 安裝部署」一文中的基礎之上,我們於此次測試環境補中齊了第4台主機建立起一個標準的 MinIO 叢集,其中 MinIO 皆安裝於 AlmaLinux 9.4 作業系統,Prometheus 和 Grafana 則安裝於 RockyLinux 8.8 作業系統(參見此篇文章)。

MinIO Server1 IP:192.168.88.136
MinIO Server2 IP:192.168.88.53
MinIO Server3 IP:192.168.88.79
MinIO Server4 IP:192.168.88.81
MinIO Version:RELEASE.2023-07-21T21-12-44Z
Prometheus and Grafana Server IP:192.168.88.98
Grafana Version:grafana-11.1.3-1
Prometheus Version:prometheus-2.53.1



Prometheus 向 MinIO 收集資料

Install mc command Tool on Prometheus Server

[root@prometheus ~]# curl https://dl.min.io/client/mc/release/linux-amd64/mc \
  --create-dirs \
  -o /opt/minio/mc
[root@prometheus ~]# chmod +x /opt/minio/mc
[root@prometheus ~]# mc --help


Add host

Prometheus 稱呼所有可控的物件存儲為 alias,本例要添加的 alias 即為 minio-server(任選一台)

[root@prometheus ~]# mc config host add minio-server http://192.168.88.136:9000 minioadmin minio-secret-keyXXXXXX


List alias

[root@prometheus ~]# mc alias list
local       
  URL       : http://localhost:9000
  AccessKey : 
  SecretKey : 
  API       : 
  Path      : auto

minio-server
  URL       : http://192.168.88.136:9000
  AccessKey : minioadmin
  SecretKey : minio-secret-keyXXXXXX
  API       : s3v4
  Path      : auto

play        
  URL       : https://play.min.io
  AccessKey : Q3AM3UQ867SPQQA43P2F
  SecretKey : zuf+tfteSlswRu7BJ46wekitnifILbZam1KYG3TG
  API       : S3v4
  Path      : auto

s3          
  URL       : https://s3.amazonaws.com
  AccessKey : YOUR-ACCESS-KEY-HERE
  SecretKey : YOUR-SECRET-KEY-HERE
  API       : S3v4
  Path      : dns


生成 Prometheus 所需監控 alias 的 target YML

[root@prometheus ~]# mc admin prometheus generate minio-server
scrape_configs:
- job_name: minio-job
  bearer_token: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJwcm9tZXRoZXVzIiwic3ViIjoibWluaW9hZG1pbiIsImV4cCI6NDg3NjYzODExMX0.TstesQ-wwdHN4dMtx8o78EE0WvIHhRhBcdkH6jaE6LskDM6rkUFFk9biRHvpggELkkoaXdbjzwTIDAHjdrtwPQ
  metrics_path: /minio/v2/metrics/cluster
  scheme: http
  static_configs:
  - targets: ['192.168.88.136:9000']


將 job_name 含以下的 yml code 貼上至 prometheus.yml 中


重啟 Prometheus 服務

[root@prometheus ~]# systemctl restart prometheus


測試 Prometheus 是否能從 Minio 獲取資料

[root@prometheus ~]# curl -v -sSL -H \
'Authorization: Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJwcm9tZXRoZXVzIiwic3ViIjoibWluaW9hZG1pbiIsImV4cCI6NDg3NjYzODExMX0.TstesQ-wwdHN4dMtx8o78EE0WvIHhRhBcdkH6jaE6LskDM6rkUFFk9biRHvpggELkkoaXdbjzwTIDAHjdrtwPQ' \
http://192.168.88.136:9000/minio/v2/metrics/cluster


從 Prometheus UI 查看是否正常收集 MinIO 的資料



Grafana 使用 Prometheus 的資料顯示於儀表板中

將 Prometheus 源加入 data source、

Grafana 使用 MinIO 的官方 dashboard 模板,本例使用的是 Revision 26



Dashboard 成果



MinIO Monitoring 功能補完

MinIO 預設的原生監控即是 prometheus,如果沒有接入 prometheus,那麼在 Monitoring/Metrics 頁面的上方將會提示「Prometheus URL is unreachable

依序在 minio cluster 中所有服務器中添加以下內容至 /etc/default/minio

MINIO_PROMETHEUS_URL="https://prometheus.tomy168.com/"
MINIO_PROMETHEUS_JOB_ID=minio-job


依序重啟所有 minio cluster 中的服務

[root@minio1 ~]# systemctl restart minio
[root@minio2 ~]# systemctl restart minio
[root@minio3 ~]# systemctl restart minio
[root@minio4 ~]# systemctl restart minio


Metrics 原先無法瀏覽的 Traffic、Resources、Info 分頁與其他部分數值皆可完全顯示,甚至可以在 Usage 頁面看到最重要的 Capacity、Used 空間使用...等數據




本文內容參閱以下連結:
MinIO 集群怎麼接入 Prometheus 的資料?(下)
Prometheus监控Minio
MinIO Console Settings
Metrics and Alerts

tomy

來自台灣的系統工程師,一直熱衷於 Open source 相關技術的學習、建置、應用與分享。

  • Image
  • Image
  • Image
  • Image
  • Image

0 Comments:

張貼留言