使用遠端寫入設定從 Amazon EC2 執行個體擷取指標 - Amazon Managed Service for Prometheus

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用遠端寫入設定從 Amazon EC2 執行個體擷取指標

本節說明如何在 Amazon 彈性運算雲端 (Amazon) 執行個體中使用遠端寫入來執行 Prometheus 伺服器。EC2這會說明如何從使用 Go 編寫的示範應用程式收集指標,並將其傳送到 Amazon Managed Service for Prometheus 工作區。

必要條件

重要

在開始前,您必須安裝 Prometheus v2.26 或更高版本。我們假設您熟悉 Prometheus,Amazon 和 Amazon EC2 Prometheus 的託管服務。有關如何安裝 Prometheus 的訊息,請參閱 Prometheus 網站上的入門

如果您不熟悉 Amazon EC2 或 Amazon Prometheus 的託管服務,我們建議您從閱讀以下各節開始:

為 Amazon 創建IAM角色 EC2

若要串流指標,您必須先建立具有 AWS 受管理原則的IAM角色AmazonPrometheusRemoteWriteAccess。然後,您可以啟動具有角色的執行個體,並將指標串流到 Amazon Managed Service for Prometheus 工作區。

  1. 在開啟IAM主控台https://console.aws.amazon.com/iam/

  2. 從導覽窗格,選擇 Roles (角色),然後選擇 Create role (建立角色)

  3. 對於信任的實體類型,選擇 AWS service (AWS 服務)。針對使用案例,選擇 EC2。選擇下一步:許可

  4. 在搜尋列中,輸入 AmazonPrometheusRemoteWriteAccess。針對「策略名稱」,選取 AmazonPrometheusRemoteWriteAccess,然後選擇「附加策略」。選擇 Next: Add Tags (下一步:新增標籤)

  5. (選擇性) 為您的IAM角色建立IAM標籤。選擇 [下一步:檢閱]

  6. 輸入您的角色名稱。選擇 建立政策

啟動 Amazon EC2 實例

若要啟動 Amazon EC2 執行個體,請依照 Amazon 彈性運算雲端 Linux 執行個體使用者指南中的啟動執行個體中的指示進行

執行示範應用程式

建立IAM角色並啟動具有該角色的執行個EC2體之後,您可以執行示範應用程式來查看其運作狀態。

執行示範應用程式和測試指標
  1. 使用下列範本建立名為 main.go 的 Go 檔案。

    package main import ( "github.com/prometheus/client_golang/prometheus/promhttp" "net/http" ) func main() { http.Handle("/metrics", promhttp.Handler()) http.ListenAndServe(":8000", nil) }
  2. 執行以下命令以安裝正確相依項目。

    sudo yum update -y sudo yum install -y golang go get github.com/prometheus/client_golang/prometheus/promhttp
  3. 執行示範應用程式。

    go run main.go

    展示應用程式應該在連接埠 8000 上運行,並顯示所有暴露的 Prometheus 指標。以下是這些指標的範例。

    curl -s http://localhost:8000/metrics ... process_max_fds 4096# HELP process_open_fds Number of open file descriptors.# TYPE process_open_fds gauge process_open_fds 10# HELP process_resident_memory_bytes Resident memory size in bytes.# TYPE process_resident_memory_bytes gauge process_resident_memory_bytes 1.0657792e+07# HELP process_start_time_seconds Start time of the process since unix epoch in seconds.# TYPE process_start_time_seconds gauge process_start_time_seconds 1.61131955899e+09# HELP process_virtual_memory_bytes Virtual memory size in bytes.# TYPE process_virtual_memory_bytes gauge process_virtual_memory_bytes 7.77281536e+08# HELP process_virtual_memory_max_bytes Maximum amount of virtual memory available in bytes.# TYPE process_virtual_memory_max_bytes gauge process_virtual_memory_max_bytes -1# HELP promhttp_metric_handler_requests_in_flight Current number of scrapes being served.# TYPE promhttp_metric_handler_requests_in_flight gauge promhttp_metric_handler_requests_in_flight 1# HELP promhttp_metric_handler_requests_total Total number of scrapes by HTTP status code.# TYPE promhttp_metric_handler_requests_total counter promhttp_metric_handler_requests_total{code="200"} 1 promhttp_metric_handler_requests_total{code="500"} 0 promhttp_metric_handler_requests_total{code="503"} 0

建立 Amazon Managed Service for Prometheus 工作區

若要建立 Amazon Managed Service for Prometheus 工作區,請按照建立工作區中的指示操作。

執行 Prometheus 伺服器

  1. 使用下列範例YAML檔案做為範本,以建立名為的新檔案prometheus.yaml。對於url,取代 my-region 與您的區域價值和 my-workspace-id 使用適用於 Prometheus 的 Amazon 管理服務為您產生的工作區 ID。對於region,取代 my-region 與您的區域價值。

    範例:YAML檔案

    global: scrape_interval: 15s external_labels: monitor: 'prometheus' scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:8000'] remote_write: - url: https://aps-workspaces.my-region.amazonaws.com/workspaces/my-workspace-id/api/v1/remote_write queue_config: max_samples_per_send: 1000 max_shards: 200 capacity: 2500 sigv4: region: my-region
  2. 執行 Prometheus 伺服器,將示範應用程式的指標傳送至您的 Amazon Managed Service for Prometheus 工作區。

    prometheus --config.file=prometheus.yaml

Prometheus 伺服器現在應該會將示範應用程式的指標傳送到您的 Amazon Managed Service for Prometheus 工作區。