本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用遠端寫入設定從 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 工作區。
-
在開啟IAM主控台https://console.aws.amazon.com/iam/
。 -
從導覽窗格,選擇 Roles (角色),然後選擇 Create role (建立角色)。
-
對於信任的實體類型,選擇 AWS service (AWS 服務)。針對使用案例,選擇 EC2。選擇下一步:許可。
-
在搜尋列中,輸入 AmazonPrometheusRemoteWriteAccess。針對「策略名稱」,選取 AmazonPrometheusRemoteWriteAccess,然後選擇「附加策略」。選擇 Next: Add Tags (下一步:新增標籤)。
-
(選擇性) 為您的IAM角色建立IAM標籤。選擇 [下一步:檢閱]。
-
輸入您的角色名稱。選擇 建立政策。
啟動 Amazon EC2 實例
若要啟動 Amazon EC2 執行個體,請依照 Amazon 彈性運算雲端 Linux 執行個體使用者指南中的啟動執行個體中的指示進行。
執行示範應用程式
建立IAM角色並啟動具有該角色的執行個EC2體之後,您可以執行示範應用程式來查看其運作狀態。
執行示範應用程式和測試指標
-
使用下列範本建立名為
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) }
-
執行以下命令以安裝正確相依項目。
sudo yum update -y sudo yum install -y golang go get github.com/prometheus/client_golang/prometheus/promhttp
-
執行示範應用程式。
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 伺服器
-
使用下列範例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
-
執行 Prometheus 伺服器,將示範應用程式的指標傳送至您的 Amazon Managed Service for Prometheus 工作區。
prometheus --config.file=prometheus.yaml
Prometheus 伺服器現在應該會將示範應用程式的指標傳送到您的 Amazon Managed Service for Prometheus 工作區。