Azure VM (44) 使用Azure Monitor Metric Exporter Windows Azure Platform 系列文章目錄

  《Windows Azure Platform 系列文章目錄

 

  1.之前接觸一些客戶,使用Prometheus Cloud Watch Exporter,把AWS監控指標,與Prometheus整合

  https://github.com/prometheus/cloudwatch_exporter

  客戶希望微軟雲Azure也提供類似的功能,能把Azure的監控指標(虛擬機、Redis PaaS等,MySQL PaaS數據等),與Prometheus整合

  2.目前查詢下來,沒有官網提供的Exporter功能,但是查詢到第三方開源的解決方案:

  https://github.com/webdevops/azure-metrics-exporter

  3.該開源方案基於Azure SDK for Go,實現Azure Monitor Metirc Exporter功能。具體的部署方式如下:

  4.創建Service Principle,並賦權,建議授予Azure Contributor權限,給整個訂閱

  5.安裝虛擬機,本文以Azure CentOS 7.9環境爲例。具體創建步驟略。

  6.我們根據上面創建的Service Principle,在CentOS 7.9上設置環境變量。根據實際情況修改下面的內容:

  AZURE_CLIENT_ID=""
  AZURE_TENANT_ID=""
  AZURE_CLIENT_SECRET=""

  7.安裝Prometheus

  我這裏使用Prometheus 2.50.1

  https://github.com/prometheus/prometheus/releases/download/v2.50.1/prometheus-2.50.1.linux-amd64.tar.gz

  具體安裝步驟略。

  8.下載與運行Azure Monitor Metric Exporter項目

  項目文件在:https://github.com/webdevops/azure-metrics-exporter/releases

  我們先下載24.2.0版本:

  https://github.com/webdevops/azure-metrics-exporter/releases/download/24.2.0/azure-metrics-exporter.linux.amd64

  下載後運行:

nohup ./azure-metrics-exporter.linux.amd64 &

 

  9.我們編輯prometheus.yml文件,增加下面的內容

  (1) job_name,設置job名稱

  (2)下面的subscription,是我演示環境的訂閱ID。請按照實際情況修改

  (3)metricNamespace和metric,請按照實際需要的指標名稱進行修改

  (4)請注意下圖使用的地址和端口號,爲localhost:8080

  具體指標可以參考文檔:https://github.com/webdevops/azure-metrics-exporter

  - job_name: azure-metrics-storageaccount-connections
    scrape_interval: 1m
    metrics_path: /probe/metrics/list
    params:
      name: ["my_own_metric_name"]
      subscription:
      - 166157a8-9ce9-400b-91c7-1d42482b83d6
      resourceType: ["Microsoft.Storage/storageAccounts"]
      metricNamespace: ["Microsoft.Storage/storageAccounts/blobServices"]
      metric:
      - BlobCapacity
      interval: ["PT1H"]
      timespan: ["PT1H"]
      aggregation:
      - average
      - count
      # by blobtype (dimension support)
      # metricFilter: ["BlobType eq '*'"]
      metricTop: ["10"]
    static_configs:
    - targets: ["localhost:8080"]

 

  10.我們執行下面的命令,啓動Prometheus

./prometheus --config.file=prometheus.yml

 

  11.Prometheus的默認端口爲:9090

  12.打開瀏覽器,查看http://ip:9090,如下圖。點擊Status, Target

 

  13.下圖展示的azure-metric-storageaccount-connection,就是我們在Step 9中配置的

  

 

  14.我們打開上圖的exporter端口,這裏以我的演示環境爲例。鏈接地址略。

  15.顯示結果爲,包含我訂閱下所有存儲賬戶名稱,及存儲賬戶的容量大小:

# HELP my_own_metric_name Azure monitor insight metric
# TYPE my_own_metric_name gauge
my_own_metric_name{aggregation="average",interval="PT1H",metric="BlobCapacity",resourceGroup="cdn-rg",resourceID="/subscriptions/166157a8-9ce9-400b-91c7-1d42482b83d6/resourcegroups/cdn-rg/providers/microsoft.storage/storageaccounts/leicdnoriginalstorage",resourceName="leicdnoriginalstorage",subscriptionID="166157a8-9ce9-400b-91c7-1d42482b83d6",subscriptionName="leizhang-non-prod",tag_owner="",timespan="PT1H",unit="Bytes"} 33835
my_own_metric_name{aggregation="average",interval="PT1H",metric="BlobCapacity",resourceGroup="cloud-shell-storage-southeastasia",resourceID="/subscriptions/166157a8-9ce9-400b-91c7-1d42482b83d6/resourcegroups/cloud-shell-storage-southeastasia/providers/microsoft.storage/storageaccounts/cs110032002647d220b",resourceName="cs110032002647d220b",subscriptionID="166157a8-9ce9-400b-91c7-1d42482b83d6",subscriptionName="leizhang-non-prod",tag_owner="",timespan="PT1H",unit="Bytes"} 0
my_own_metric_name{aggregation="average",interval="PT1H",metric="BlobCapacity",resourceGroup="fw-hybrid-test",resourceID="/subscriptions/166157a8-9ce9-400b-91c7-1d42482b83d6/resourcegroups/fw-hybrid-test/providers/microsoft.storage/storageaccounts/niostoragetest01",resourceName="niostoragetest01",subscriptionID="166157a8-9ce9-400b-91c7-1d42482b83d6",subscriptionName="leizhang-non-prod",tag_owner="",timespan="PT1H",unit="Bytes"} 0
my_own_metric_name{aggregation="average",interval="PT1H",metric="BlobCapacity",resourceGroup="lab-rg",resourceID="/subscriptions/166157a8-9ce9-400b-91c7-1d42482b83d6/resourcegroups/lab-rg/providers/microsoft.storage/storageaccounts/leiadls",resourceName="leiadls",subscriptionID="166157a8-9ce9-400b-91c7-1d42482b83d6",subscriptionName="leizhang-non-prod",tag_owner="",timespan="PT1H",unit="Bytes"} 1104
my_own_metric_name{aggregation="average",interval="PT1H",metric="BlobCapacity",resourceGroup="lab-rg",resourceID="/subscriptions/166157a8-9ce9-400b-91c7-1d42482b83d6/resourcegroups/lab-rg/providers/microsoft.storage/storageaccounts/leilabstorage01",resourceName="leilabstorage01",subscriptionID="166157a8-9ce9-400b-91c7-1d42482b83d6",subscriptionName="leizhang-non-prod",tag_owner="",timespan="PT1H",unit="Bytes"} 34272

 

  這就是我的環境i的5個存儲對象,如下圖:

 

  16.Azure Monitor Metric Exporter還提供調試的功能,我們可以執行:

nohup ./azure-metrics-exporter.linux.amd64 --development.webui &

 

  17.Azure metric exporter提供web 界面進行查詢。以我的環境爲例,打開鏈接:http://20.52.9.41:8080/query。我們可以在下面進行調試:

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章