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 CLI API または AWS を使用して作成できます。
独自のスクレイパーを作成するには、いくつかの前提条件があります。
-
Amazon MSK クラスターが作成済みである必要があります。
-
スクレイパーは Prometheus メトリクスを収集するためにこれらの DNS レコードにアクセスする必要があるため、Amazon VPC 内のポート 11001 (JMX Exporter) および 11002 (Node Exporter) でのインバウンドトラフィックを許可するように Amazon MSK クラスターのセキュリティグループを設定します。
-
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 コレクターとは異なるアカウントにある場合に、クロスアカウント設定でスクレイパーを作成するには、次の手順を使用します。
例えば、2 つのアカウント、Amazon MSK がある最初のソースアカウント account_id_source、および Amazon Managed Service for Prometheus ワークスペースがある 2 番目のターゲットアカウント account_id_target がある場合です。
クロスアカウント設定でスクレイパーを作成するには
-
ソースアカウントで、ロール
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 を自動的に使用します。
アカウント内のすべてのスクレイパーを一覧表示するには、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 |
1 秒あたりのオフセットコミットの数。 |
|
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 |
コンシューマーごとの 1 秒あたりの平均消費バイト数。 |
|
kafka_consumer_consumer_fetch_manager_metrics_fetch_latency_avg |
フェッチリクエストにかかるミリ秒単位の平均時間。 |
|
kafka_consumer_consumer_fetch_manager_metrics_fetch_rate |
1 秒あたりのフェッチリクエストの数。 |
|
kafka_consumer_consumer_fetch_manager_metrics_records_consumed_rate |
1 秒あたりに消費されるレコードの平均数。 |
|
kafka_consumer_consumer_fetch_manager_metrics_records_lag_max |
このコンシューマー内の任意のパーティションのレコード数に関する最大ラグ。 |
|
kafka_consumer_consumer_metrics_connection_count |
アクティブな接続の現在の数。 |
|
kafka_consumer_consumer_metrics_incoming_byte_rate |
すべてのサーバーから 1 秒あたりに受信した平均バイト数。 |
|
kafka_consumer_consumer_metrics_last_poll_seconds_ago |
前回のコンシューマー poll() 呼び出しからの秒数。 |
|
kafka_consumer_consumer_metrics_request_rate |
1 秒あたりの送信リクエストの数。 |
|
kafka_consumer_consumer_metrics_response_rate |
1 秒あたりの受信レスポンスの数。 |
|
kafka_consumer_group_ConsumerLagMetrics_Value |
コンシューマーがどの程度遅れているかを示す、コンシューマーグループの現在のコンシューマーラグ値。 |
|
kafka_controller_KafkaController_Value |
Kafka コントローラーの現在の状態または値 (1 = アクティブなコントローラー、0 = アクティブではない)。 |
|
kafka_controller_ControllerEventManager_Count |
処理されたコントローラーイベントの合計数。 |
|
kafka_controller_ControllerEventManager_Mean |
コントローラーイベントの処理にかかる平均時間。 |
|
kafka_controller_ControllerStats_MeanRate |
1 秒あたりのコントローラー統計オペレーションの平均レート。 |
|
kafka_coordinator_group_GroupMetadataManager_Value |
コンシューマーグループのグループメタデータマネージャーの現在の状態または値。 |
|
kafka_log_LogFlushStats_Count |
ログフラッシュ操作の合計数。 |
|
kafka_log_LogFlushStats_Mean |
ログフラッシュ操作にかかる平均時間。 |
|
kafka_log_LogFlushStats_MeanRate |
1 秒あたりのログフラッシュ操作の平均レート。 |
|
kafka_network_RequestMetrics_Count |
処理されたネットワークリクエストの合計数。 |
|
kafka_network_RequestMetrics_Mean |
ネットワークリクエストの処理にかかる平均時間。 |
|
kafka_network_RequestMetrics_MeanRate |
1 秒あたりのネットワークリクエストの平均レート。 |
|
kafka_network_Acceptor_MeanRate |
1 秒あたりに受け入れられる接続の平均レート。 |
|
kafka_server_Fetch_queue_size |
フェッチリクエストキューの現在のサイズ。 |
|
kafka_server_Produce_queue_size |
作成リクエストキューの現在のサイズ。 |
|
kafka_server_Request_queue_size |
一般的なリクエストキューの現在のサイズ。 |
|
kafka_server_BrokerTopicMetrics_Count |
ブローカートピックオペレーション (メッセージイン/アウト、バイトイン/アウト) の合計数。 |
|
kafka_server_BrokerTopicMetrics_MeanRate |
ブローカートピックオペレーションの 1 秒あたりの平均レート。 |
|
kafka_server_BrokerTopicMetrics_OneMinuteRate |
ブローカートピックオペレーションの 1 分間の移動平均レート。 |
|
kafka_server_DelayedOperationPurgatory_Value |
処理待ち状態での遅延オペレーションの現在の数 (完了待ち)。 |
|
kafka_server_DelayedFetchMetrics_MeanRate |
1 秒あたりの遅延フェッチオペレーションの平均レート。 |
|
kafka_server_FetcherLagMetrics_Value |
レプリカフェッチャースレッドの現在のラグ値 (リーダーからどの程度遅延しているか)。 |
|
kafka_server_FetcherStats_MeanRate |
1 秒あたりのフェッチャーオペレーションの平均レート。 |
|
kafka_server_ReplicaManager_Value |
レプリカマネージャーの現在の状態または値。 |
|
kafka_server_ReplicaManager_MeanRate |
1 秒あたりのレプリカマネージャーオペレーションの平均レート。 |
|
kafka_server_LeaderReplication_byte_rate |
このブローカーがリーダーであるパーティションの 1 秒あたりのレプリケートされたバイト数。 |
|
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 |
1 秒あたりのオフセットコミット操作のレート。 |
|
kafka_server_socket_server_metrics_connection_count |
アクティブな接続の現在の数。 |
|
kafka_server_socket_server_metrics_connection_creation_rate |
1 秒あたりの新しい接続作成のレート。 |
|
kafka_server_socket_server_metrics_connection_close_rate |
1 秒あたりの接続閉鎖のレート。 |
|
kafka_server_socket_server_metrics_failed_authentication_total |
失敗した認証試行の合計数。 |
|
kafka_server_socket_server_metrics_incoming_byte_rate |
1 秒あたりの受信バイトのレート。 |
|
kafka_server_socket_server_metrics_outgoing_byte_rate |
1 秒あたりの送信バイトのレート。 |
|
kafka_server_socket_server_metrics_request_rate |
1 秒あたりのリクエストのレート。 |
|
kafka_server_socket_server_metrics_response_rate |
1 秒あたりのレスポンスのレート。 |
|
kafka_server_socket_server_metrics_network_io_rate |
1 秒あたりのネットワーク 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 |
コントローラーチャネルの 1 秒あたりの受信バイトのレート。 |
|
kafka_server_controller_channel_metrics_outgoing_byte_rate |
コントローラーチャネルの 1 秒あたりの送信バイトのレート。 |
|
kafka_server_controller_channel_metrics_request_rate |
コントローラーチャネルの 1 秒あたりのリクエストのレート。 |
|
kafka_server_replica_fetcher_metrics_connection_count |
レプリカフェッチャーのアクティブな接続の現在の数。 |
|
kafka_server_replica_fetcher_metrics_incoming_byte_rate |
レプリカフェッチャーの 1 秒あたりの受信バイトのレート。 |
|
kafka_server_replica_fetcher_metrics_request_rate |
レプリカフェッチャーの 1 秒あたりのリクエストのレート。 |
|
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 |
CPU が各モード (ユーザー、システム、アイドル、など) で費やした合計秒数 (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 |
ファイルシステム上のファイルノード (inode) の合計数 (デバイスとマウントポイント別に分類)。 |
|
node_filesystem_files_free |
ファイルシステム上の空きファイルノード (inode) の数 (デバイスとマウントポイント別に分類)。 |
|
node_filesystem_readonly |
ファイルシステムが読み取り専用でマウントされているかどうかを示します (1 = 読み取り専用、0 = 読み取り/書き込み)。 |
|
node_filesystem_device_error |
ファイルシステム統計の取得中にエラーが発生したかどうかを示します (1 = エラー、0 = 成功)。 |
制限
現在の Amazon MSK と Amazon Managed Service for Prometheus の統合には、次の制限があります。
-
Amazon MSK プロビジョンドクラスターでのみサポート (Amazon MSK Serverless では利用できません)
-
KRaft メタデータモードと組み合わせてパブリックアクセスが有効になっている Amazon MSK クラスターではサポートされていません
-
Amazon MSK Express ブローカーではサポートされていません
-
現在、Amazon MSK クラスターと Amazon Managed Service for Prometheus コレクター/ワークスペース間の 1:1 マッピングをサポートしています。