本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 Amazon MSK 的受管 Prometheus 收集器
若要使用 Amazon Managed Service for Prometheus 收集器,您可以建立抓取器,在 Amazon Managed Streaming for Apache Kafka 叢集中探索和提取指標。您也可以建立與 Amazon Elastic Kubernetes Service 整合的抓取器。如需詳細資訊,請參閱整合 Amazon EKS。
建立湊集器
Amazon Managed Service for Prometheus 收集器包含一個抓取器,可從 Amazon MSK 叢集探索和收集指標。Amazon Managed Service for Prometheus 可為您管理湊集器,提供所需的可擴展性、安全性和可靠性,而無需自行管理任何執行個體、代理程式或湊集器。
您可以使用 AWS API 或 建立抓取器 AWS CLI ,如下列程序所述。
您需先滿足幾項先決條件,才能建立自己的湊集器:
-
您必須建立 Amazon MSK 叢集。
-
設定 Amazon MSK 叢集的安全群組,以允許 Amazon VPC 內連接埠 11001 (JMX Exporter) 和 11002 (Node Exporter) 的傳入流量,因為抓取器需要存取這些 DNS 記錄才能收集 Prometheus 指標。
-
Amazon MSK 叢集所在的 Amazon VPC 必須啟用 DNS。
注意
叢集會依其 Amazon 資源名稱 (ARN) 與抓取器建立關聯。如果您刪除叢集,然後使用相同名稱建立新的叢集,則 ARN 將重複使用於新叢集。因此,抓取器會嘗試收集新叢集的指標。您可以將抓取器與刪除叢集分開刪除。
-
以下是您可以搭配 AWS API 使用的湊集器操作完整清單:
使用 CreateScraper API 操作建立抓取器。
-
使用 ListScrapers API 操作列出現有的抓取器。
-
使用 UpdateScraper API 操作更新抓取器的別名、組態或目的地。
-
使用 DeleteScraper API 操作刪除抓取器。
-
使用 DescribeScraper API 操作取得有關抓取器的詳細資訊。
跨帳戶設定
若要在您要收集指標的 Amazon MSK 叢集位於與 Amazon Managed Service for Prometheus 收集器不同的帳戶中時,在跨帳戶設定中建立抓取器,請使用下列程序。
例如,當您有兩個帳戶時,Amazon MSK account_id_source 所在的第一個來源帳戶,以及 account_id_target Amazon Managed Service for Prometheus 工作區所在的第二個目標帳戶。
在跨帳戶設定中建立抓取器
-
在來源帳戶中,建立角色
arn:aws:iam::並新增下列信任政策。111122223333:role/Source{ "Effect": "Allow", "Principal": { "Service": [ "scraper.aps.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:aps:aws-region:111122223333:scraper/scraper-id" }, "StringEquals": { "AWS:SourceAccount": "111122223333" } } } -
在來源 (Amazon MSK 叢集) 和目標 (Amazon Managed Service for Prometheus 工作區) 的每個組合上,您需要建立角色,
arn:aws:iam::並新增具有 AmazonPrometheusRemoteWriteAccess 許可的下列信任政策。444455556666:role/Target{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/Source" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "arn:aws:aps:aws-region:111122223333:scraper/scraper-id" } } } -
使用
--role-configuration選項建立抓取器。aws amp create-scraper \ --source vpcConfiguration="{subnetIds=[subnet-subnet-id], "securityGroupIds": ["sg-security-group-id"]}" \ --scrape-configuration configurationBlob=<base64-encoded-blob>\ --destination ampConfiguration="{workspaceArn='arn:aws:aps:aws-region:444455556666:workspace/ws-workspace-id'}"\ --role-configuration '{"sourceRoleArn":"arn:aws:iam::111122223333:role/Source", "targetRoleArn":"arn:aws:iam::444455556666:role/Target"}' -
驗證抓取器建立。
aws amp list-scrapers { "scrapers": [ { "scraperId": "s-example123456789abcdef0", "arn": "arn:aws:aps:aws-region:111122223333:scraper/s-example123456789abcdef0": "arn:aws:iam::111122223333:role/Source", "status": "ACTIVE", "creationTime": "2025-10-27T18:45:00.000Z", "lastModificationTime": "2025-10-27T18:50:00.000Z", "tags": {}, "statusReason": "Scraper is running successfully", "source": { "vpcConfiguration": { "subnetIds": ["subnet-subnet-id"], "securityGroupIds": ["sg-security-group-id"] } }, "destination": { "ampConfiguration": { "workspaceArn": "arn:aws:aps:aws-region:444455556666:workspace/ws-workspace-id'" } }, "scrapeConfiguration": { "configurationBlob": "<base64-encoded-blob>" } } ] }
在 RoleConfiguration 和服務連結角色之間變更
當您想要切換回服務連結角色,而不是 RoleConfiguration寫入 Amazon Managed Service for Prometheus 工作區時,您必須更新 ,UpdateScraper並在與抓取器相同的帳戶中提供工作區,而不需要 RoleConfiguration。RoleConfiguration 會從抓取器中移除 ,並使用服務連結角色。
當您變更與抓取器相同帳戶中的工作區,並且想要繼續使用 時RoleConfiguration,您必須再次RoleConfiguration在 上提供 UpdateScraper。
尋找並刪除湊集器
您可以使用 AWS API 或 AWS CLI 列出您帳戶中的抓取器或刪除它們。
注意
請確定您使用的是最新版本的 AWS CLI 或 SDK。最新版本提供最新的功能和功能,以及安全性更新。或者,使用 AWS CloudShell,它會自動提供up-to-date命令列體驗。
若要列出您帳戶中的所有抓取器,請使用 ListScrapers API 操作。
或者,使用 AWS CLI呼叫:
aws amp list-scrapers
ListScrapers 會傳回您帳戶中的所有湊集器,例如:
{ "scrapers": [ { "scraperId": "s-1234abcd-56ef-7890-abcd-1234ef567890", "arn": "arn:aws:aps:aws-region:123456789012:scraper/s-1234abcd-56ef-7890-abcd-1234ef567890", "roleArn": "arn:aws:iam::123456789012:role/aws-service-role/AWSServiceRoleForAmazonPrometheusScraper_1234abcd-2931", "status": { "statusCode": "DELETING" }, "createdAt": "2023-10-12T15:22:19.014000-07:00", "lastModifiedAt": "2023-10-12T15:55:43.487000-07:00", "tags": {}, "source": { "vpcConfiguration": { "securityGroupIds": [ "sg-1234abcd5678ef90" ], "subnetIds": [ "subnet-abcd1234ef567890", "subnet-1234abcd5678ab90" ] } }, "destination": { "ampConfiguration": { "workspaceArn": "arn:aws:aps:aws-region:123456789012:workspace/ws-1234abcd-5678-ef90-ab12-cdef3456a78" } } } ] }
若要刪除抓取器,請使用 ListScrapers操作尋找您要刪除之抓取器scraperId的 ,然後使用 DeleteScraper 操作將其刪除。
或者,使用 AWS CLI呼叫:
aws amp delete-scraper --scraper-idscraperId
從 Amazon MSK 收集的指標
當您與 Amazon MSK 整合時,Amazon Managed Service for Prometheus 收集器會自動抓取下列指標:
| 指標 | 描述/目的 |
|---|---|
|
jmx_config_reload_failure_total |
JMX 匯出工具無法重新載入其組態檔案的總次數。 |
|
jmx_scrape_duration_seconds |
目前收集週期的抓取 JMX 指標所花費的時間,以秒為單位。 |
|
jmx_scrape_error |
指出在 JMX 指標抓取期間是否發生錯誤 (1 = 錯誤,0 = 成功)。 |
|
java_lang_Memory_HeapMemoryUsage_used |
JVM 目前使用的堆積記憶體數量 (以位元組為單位)。 |
|
java_lang_Memory_HeapMemoryUsage_max |
可用於記憶體管理的堆積記憶體數量上限 (以位元組為單位)。 |
|
java_lang_Memory_NonHeapMemoryUsage_used |
JVM 目前使用的非堆積記憶體數量 (以位元組為單位)。 |
|
kafka_cluster_Partition_Value |
與 Kafka 叢集分割區相關的目前狀態或值,依分割區 ID 和主題細分。 |
|
kafka_consumer_consumer_coordinator_metrics_assigned_partitions |
目前指派給此取用者的分割區數量。 |
|
kafka_consumer_consumer_coordinator_metrics_commit_latency_avg |
遞交偏移所需的平均時間,以毫秒為單位。 |
|
kafka_consumer_consumer_coordinator_metrics_commit_rate |
每秒偏移遞交的數量。 |
|
kafka_consumer_consumer_coordinator_metrics_failed_rebalance_total |
失敗的取用者群組重新平衡總數。 |
|
kafka_consumer_consumer_coordinator_metrics_last_heartbeat_seconds_ago |
自上次將活動訊號傳送至協調器以來的秒數。 |
|
kafka_consumer_consumer_coordinator_metrics_rebalance_latency_avg |
取用者群組重新平衡的平均時間,以毫秒為單位。 |
|
kafka_consumer_consumer_coordinator_metrics_rebalance_total |
取用者群組重新平衡的總數。 |
|
kafka_consumer_consumer_fetch_manager_metrics_bytes_consumed_rate |
消費者每秒耗用的平均位元組數。 |
|
kafka_consumer_consumer_fetch_manager_metrics_fetch_latency_avg |
擷取請求所需的平均時間,以毫秒為單位。 |
|
kafka_consumer_consumer_fetch_manager_metrics_fetch_rate |
每秒擷取請求的數量。 |
|
kafka_consumer_consumer_fetch_manager_metrics_records_consumed_rate |
每秒耗用的平均記錄數。 |
|
kafka_consumer_consumer_fetch_manager_metrics_records_lag_max |
此取用者中任何分割區的記錄數量的最大延遲。 |
|
kafka_consumer_consumer_metrics_connection_count |
目前作用中連線的數量。 |
|
kafka_consumer_consumer_metrics_incoming_byte_rate |
每秒從所有伺服器接收的平均位元組數。 |
|
kafka_consumer_consumer_metrics_last_poll_seconds_ago |
自上次消費者輪詢 () 呼叫以來的秒數。 |
|
kafka_consumer_consumer_metrics_request_rate |
每秒傳送的請求數。 |
|
kafka_consumer_consumer_metrics_response_rate |
每秒收到的回應數。 |
|
kafka_consumer_group_ConsumerLagMetrics_Value |
取用者群組的目前取用者延遲值,指出取用者落後多遠。 |
|
kafka_controller_KafkaController_Value |
Kafka 控制器的目前狀態或值 (1 = 作用中控制器,0 = 非作用中)。 |
|
kafka_controller_ControllerEventManager_Count |
處理的控制器事件總數。 |
|
kafka_controller_ControllerEventManager_Mean |
處理控制器事件所需的平均 (平均) 時間。 |
|
kafka_controller_ControllerStats_MeanRate |
每秒控制器統計資料操作的平均速率。 |
|
kafka_coordinator_group_GroupMetadataManager_Value |
取用者群組之群組中繼資料管理員的目前狀態或值。 |
|
kafka_log_LogFlushStats_Count |
日誌排清操作的總數。 |
|
kafka_log_LogFlushStats_Mean |
日誌排清操作的平均 (平均) 時間。 |
|
kafka_log_LogFlushStats_MeanRate |
每秒日誌排清操作的平均速率。 |
|
kafka_network_RequestMetrics_Count |
已處理的網路請求總數。 |
|
kafka_network_RequestMetrics_Mean |
處理網路請求所需的平均 (平均) 時間。 |
|
kafka_network_RequestMetrics_MeanRate |
每秒網路請求的平均速率。 |
|
kafka_network_Acceptor_MeanRate |
每秒可接受連線的平均速率。 |
|
kafka_server_Fetch_queue_size |
擷取請求佇列的目前大小。 |
|
kafka_server_Produce_queue_size |
生產請求佇列的目前大小。 |
|
kafka_server_Request_queue_size |
一般請求佇列的目前大小。 |
|
kafka_server_BrokerTopicMetrics_Count |
中介裝置主題操作的總數 (訊息輸入/輸出、位元組輸入/輸出)。 |
|
kafka_server_BrokerTopicMetrics_MeanRate |
每秒中介裝置主題操作的平均速率。 |
|
kafka_server_BrokerTopicMetrics_OneMinuteRate |
中介裝置主題操作的一分鐘移動平均速率。 |
|
kafka_server_DelayedOperationPurgatory_Value |
查詢中的目前延遲操作數量 (等待完成)。 |
|
kafka_server_DelayedFetchMetrics_MeanRate |
每秒延遲擷取操作的平均速率。 |
|
kafka_server_FetcherLagMetrics_Value |
複本擷取器執行緒的目前延遲值 (落後領導者多遠)。 |
|
kafka_server_FetcherStats_MeanRate |
每秒擷取器操作的平均速率。 |
|
kafka_server_ReplicaManager_Value |
複本管理員的目前狀態或值。 |
|
kafka_server_ReplicaManager_MeanRate |
每秒複本管理員操作的平均速率。 |
|
kafka_server_LeaderReplication_byte_rate |
對於此代理程式為領導者的分割區,每秒複寫的位元組速率。 |
|
kafka_server_group_coordinator_metrics_group_completed_rebalance_count |
已完成取用者群組重新平衡的總數。 |
|
kafka_server_group_coordinator_metrics_offset_commit_count |
偏移遞交操作的總數。 |
|
kafka_server_group_coordinator_metrics_offset_commit_rate |
每秒偏移遞交操作的速率。 |
|
kafka_server_socket_server_metrics_connection_count |
目前作用中連線的數量。 |
|
kafka_server_socket_server_metrics_connection_creation_rate |
每秒建立新連線的速率。 |
|
kafka_server_socket_server_metrics_connection_close_rate |
每秒連線關閉速率。 |
|
kafka_server_socket_server_metrics_failed_authentication_total |
失敗的身分驗證嘗試總數。 |
|
kafka_server_socket_server_metrics_incoming_byte_rate |
每秒傳入位元組的速率。 |
|
kafka_server_socket_server_metrics_outgoing_byte_rate |
每秒傳出位元組的速率。 |
|
kafka_server_socket_server_metrics_request_rate |
每秒請求率。 |
|
kafka_server_socket_server_metrics_response_rate |
每秒回應速率。 |
|
kafka_server_socket_server_metrics_network_io_rate |
每秒的網路 I/O 操作速率。 |
|
kafka_server_socket_server_metrics_io_ratio |
在 I/O 操作中花費的時間部分。 |
|
kafka_server_controller_channel_metrics_connection_count |
控制器通道的目前作用中連線數。 |
|
kafka_server_controller_channel_metrics_incoming_byte_rate |
控制器通道每秒傳入位元組的速率。 |
|
kafka_server_controller_channel_metrics_outgoing_byte_rate |
控制器通道每秒傳出位元組的速率。 |
|
kafka_server_controller_channel_metrics_request_rate |
控制器通道每秒請求的速率。 |
|
kafka_server_replica_fetcher_metrics_connection_count |
複本擷取器的目前作用中連線數。 |
|
kafka_server_replica_fetcher_metrics_incoming_byte_rate |
複本擷取器每秒傳入位元組的速率。 |
|
kafka_server_replica_fetcher_metrics_request_rate |
複本擷取器的每秒請求率。 |
|
kafka_server_replica_fetcher_metrics_failed_authentication_total |
複本擷取器的失敗身分驗證嘗試總數。 |
|
kafka_server_ZooKeeperClientMetrics_Count |
ZooKeeper 用戶端操作的總計數。 |
|
kafka_server_ZooKeeperClientMetrics_Mean |
ZooKeeper 用戶端操作的平均延遲。 |
|
kafka_server_KafkaServer_Value |
Kafka 伺服器的目前狀態或值 (通常表示伺服器正在執行)。 |
|
node_cpu_seconds_total |
CPUs花費的總秒數 (使用者、系統、閒置等),依 CPU 和模式細分。 |
|
node_disk_read_bytes_total |
從磁碟成功讀取的位元組總數,依裝置細分。 |
|
node_disk_reads_completed_total |
磁碟成功完成的讀取總數,依裝置細分。 |
|
node_disk_writes_completed_total |
磁碟成功完成的寫入總數,依裝置細分。 |
|
node_disk_written_bytes_total |
成功寫入磁碟的位元組總數,依裝置細分。 |
|
node_filesystem_avail_bytes |
非根使用者可用的檔案系統空間,以位元組為單位,依裝置和掛載點細分。 |
|
node_filesystem_size_bytes |
檔案系統的總大小,以位元組為單位,依裝置和掛載點細分。 |
|
node_filesystem_free_bytes |
以位元組為單位的可用檔案系統空間,依裝置和掛載點細分。 |
|
node_filesystem_files |
檔案系統上的檔案節點 (inodes) 總數,依裝置和掛載點細分。 |
|
node_filesystem_files_free |
檔案系統上可用檔案節點 (inodes) 的數量,依裝置和掛載點細分。 |
|
node_filesystem_readonly |
指出檔案系統是否已掛載唯讀 (1 = 唯讀,0 = 讀寫)。 |
|
node_filesystem_device_error |
指出取得檔案系統統計資料時發生錯誤 (1 = 錯誤,0 = 成功)。 |
限制
目前與 Amazon Managed Service for Prometheus 整合的 Amazon MSK 有下列限制:
-
僅支援 Amazon MSK 佈建叢集 (不適用於 Amazon MSK Serverless)
-
不支援搭配 KRaft 中繼資料模式啟用公有存取的 Amazon MSK 叢集
-
Amazon MSK Express 代理程式不支援
-
目前支援 Amazon MSK 叢集與 Amazon Managed Service for Prometheus 收集器/工作空間之間的 1:1 映射