View a markdown version of this page

VPC 接続マネージドコレクター - Amazon CloudWatch

VPC 接続マネージドコレクター

VPC 接続 Amazon CloudWatch マネージド Prometheus コレクターは、Amazon EC2 インスタンスや Amazon ECS タスクなど、VPC 内で到達可能な任意のリソースから Prometheus 互換メトリクスをスクレイプします。サブネットとセキュリティグループを提供すると、コレクターは Elastic Network Interface (ENI) を作成し、設定に従って Prometheus /metrics エンドポイントをスクレイプします。

ワークロードに特化した詳細なチュートリアルについては、Prometheus メトリクス収集用の CloudWatch オブザーバビリティソリューション (Amazon CloudWatch ソリューション: Amazon EC2 での Prometheus メトリクス収集 および Amazon CloudWatch ソリューション: Amazon ECS での Prometheus メトリクス収集) を参照してください。

前提条件

この手順では、Amazon VPC サブネット、セキュリティグループ、および Prometheus エクスポーターエンドポイントに関する知識があることを前提としています。

  • DNS が有効な Amazon VPC

  • 異なるアベイラビリティーゾーンにある少なくとも 2 つのサブネット

  • コレクターがターゲットエクスポーターポートに到達できるようにするセキュリティグループ

  • Prometheus 互換の /metrics エンドポイントを公開するターゲット

コレクターは、パブリックインターネットを経由せず、スクレイプしたメトリクスを AWS ネットワークを介して CloudWatch に配信します。指定したサブネットとセキュリティグループは、スクレイプターゲットへの接続性を提供しますが、CloudWatch への配信パスは提供しません。メトリクス配信のために、VPC 内のインターネットアクセス、NAT ゲートウェイ、または CloudWatch インターフェイス VPC エンドポイントを構成する必要はありません。

スクレイパーの作成

GetDefaultScraperConfiguration を使用して、汎用スクレーパー設定を取得するか、独自のものを提供できます。

AWS API

CreateScraper API オペレーションを使用して、CloudWatch 送信先を持つスクレーパーを作成します。サブネット、セキュリティグループ、データセット情報を独自の值に置き換えます。

POST /scrapers HTTP/1.1 { "alias": "vpc-metrics-scraper", "source": { "vpcConfiguration": { "subnetIds": ["subnet-subnet-id-1", "subnet-subnet-id-2"], "securityGroupIds": ["sg-security-group-id"] } }, "destination": { "cloudWatchConfiguration": { "datasetArn": "arn:aws:cloudwatch:us-west-2:123456789012:dataset/default" } }, "scrapeConfiguration": { "configurationBlob": "base64-encoded-blob" } }
AWS CLI

create-scraper コマンドを使用して、CloudWatch 送信先を持つスクレーパーを作成します。サブネット、セキュリティグループ、データセット情報を独自の值に置き換えます。

aws amp create-scraper \ --alias "vpc-metrics-scraper" \ --source '{ "vpcConfiguration": { "subnetIds": ["subnet-subnet-id-1", "subnet-subnet-id-2"], "securityGroupIds": ["sg-security-group-id"] } }' \ --scrape-configuration configurationBlob=$(cat scrape-config.yaml | base64 -w 0) \ --destination '{ "cloudWatchConfiguration": { "datasetArn": "arn:aws:cloudwatch:us-west-2:123456789012:dataset/default" } }'

Amazon EC2 からのメトリクス収集

DCGM Exporter や Node Exporter などの Prometheus エクスポーターを実行している Amazon EC2 インスタンスからメトリクスをスクレイプするには、インスタンスのプライベート IP アドレスとともに static_configs を使用します:

global: scrape_interval: 60s scrape_configs: - job_name: 'ec2-node-exporter' static_configs: - targets: - '10.0.1.10:9100' - '10.0.1.11:9100' relabel_configs: - source_labels: [__address__] target_label: instance - target_label: compute_platform replacement: 'ec2' - job_name: 'ec2-dcgm-exporter' static_configs: - targets: - '10.0.1.10:9400' - '10.0.1.11:9400' relabel_configs: - source_labels: [__address__] target_label: instance - target_label: compute_platform replacement: 'ec2'

Amazon ECS からのメトリクス収集

AWS Cloud Map に登録する Amazon ECS タスクの場合は、DNS サービス検出を使用して、コンテナを自動的に検出およびスクレイプします:

global: scrape_interval: 60s scrape_configs: - job_name: 'ecs-services' dns_sd_configs: - names: - 'my-service.my-namespace.local' type: A port: 9090 relabel_configs: - source_labels: [__meta_dns_name] target_label: service_name - source_labels: [__address__] target_label: instance - target_label: compute_platform replacement: 'ecs'

クロス アカウント オブザーバビリティ

クロスアカウントの VPC モニタリングでは、Amazon CloudWatch メトリクスの一元化を使用することをお勧めします。詳細については、「CloudWatch メトリクスの一元化」を参照してください。

代替のクロスアカウンタースクレイパー設定については、Amazon Managed Service for Prometheus ユーザーガイドの「クロスアカウンタースクレイパー」を参照してください。

セキュリティのベストプラクティス

  • コレクター ENI には、直接インターネットアクセスを持たないプライベートサブネットを指定します。

  • セキュリティグループのイングレスを、特定のエクスポーターポート上のスクレイパーセキュリティグループのみに制限します。

  • 可能な限り、すべてのエクスポーターエンドポイントで転送中の TLS 暗号化を有効にします。