View a markdown version of this page

Amazon Managed Service for Prometheus での OpenSearch Ingestion パイプラインの使用 - Amazon OpenSearch Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon Managed Service for Prometheus での OpenSearch Ingestion パイプラインの使用

Amazon Managed Service for Prometheus を OpenSearch Ingestion パイプラインの送信先として使用して、メトリクスを時系列形式で保存できます。Prometheus シンクを使用すると、OpenTelemetry メトリクスやその他の時系列データをパイプラインから Amazon Managed Service for Prometheus ワークスペースに送信して、モニタリング、アラート、分析を行うことができます。

prometheus シンクプラグインを使用すると、OpenSearch Ingestion パイプラインは Prometheus リモート書き込みプロトコルを使用して Amazon Managed Service for Prometheus ワークスペースにメトリクスデータを書き込むことができます。この統合により、次のことが可能になります。

  • Amazon Managed Service for Prometheus に時系列メトリクスデータを保存する

  • Amazon Managed Service for Prometheus と Amazon Managed Grafana を使用してメトリクスをモニタリングおよびアラートする

  • メトリクスを複数の宛先に同時にルーティングする (OpenSearch や Amazon Managed Service for Prometheus など)

  • 外部エージェントから OpenTelemetry メトリクスを処理するか、パイプライン内でメトリクスを生成する

前提条件

Prometheus シンクを設定する前に、以下があることを確認してください。

  • Amazon Managed Service for Prometheus ワークスペース: AWS リージョン OpenSearch Ingestion パイプラインと同じ AWS アカウント および にワークスペースを作成します。手順については、「Amazon Managed Service for Prometheus ユーザーガイド」の「ワークスペースの作成」を参照してください。

  • IAM アクセス許可: Amazon Managed Service for Prometheus に書き込むアクセス許可を持つ IAM ロールを設定します。詳細については、「ステップ 1: パイプラインロールを設定する」を参照してください。

注記

Amazon Managed Service for Prometheus ワークスペースでは、 AWS サービスマネージド AWS KMS キーを使用する必要があります。カスタマーマネージド AWS KMS キーは、現在、OpenSearch Ingestion パイプラインの Amazon Managed Service for Prometheus シンクではサポートされていません。

ステップ 1: パイプラインロールを設定する

Prometheus シンクは、パイプラインロールの認証用の IAM アクセス許可を自動的に継承するため、シンク設定に追加のロール設定 ( などsts_role_arn) は必要ありません。

次のサンプルポリシーは、Amazon Managed Service for Prometheus をシンクとして使用するために必要なアクセス許可を示しています。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AMPRemoteWrite", "Effect": "Allow", "Action": [ "aps:RemoteWrite" ], "Resource": "arn:aws:aps:region:account-id:workspace/workspace-id" } ] }

次のプレースホルダーを置き換えます。

  • region: Your AWS リージョン (例: us-east-1)

  • account-id: ID AWS アカウント

  • workspace-id: Amazon Managed Service for Prometheus ワークスペース ID

これらのアクセス許可をパイプラインロールにアタッチする必要があります。

パイプラインロールに OpenSearch Ingestion が引き受けることができる信頼関係があることを確認します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "osis-pipelines.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

ステップ 2: パイプラインを作成する

アクセス許可を設定したら、Amazon Managed Service for Prometheus をシンクとして使用するように OpenSearch Ingestion パイプラインを設定できます。

基本的な設定

次の例は、最小限の Prometheus シンク設定を示しています。

version: "2" sink: - prometheus: url: "https://aps-workspaces.region.amazonaws.com/workspaces/workspace-id/api/v1/remote_write" aws: region: "region"

Amazon Managed Service for Prometheus リモート書き込みエンドポイントであるprometheusシンク設定内で urlオプションを指定する必要があります。URL をフォーマットするには、Amazon Managed Service for Prometheus コンソールでワークスペース ID を見つけ、URL を次のように構築します。 https://aps-workspaces.region.amazonaws.com/workspaces/workspace-id/api/v1/remote_write

設定オプション

次のオプションを使用して、Prometheus シンクのバッチ処理とフラッシュの動作を設定します。

Prometheus シンク設定オプション
オプション 必須 説明
max_events いいえ 整数 Prometheus にフラッシュする前に累積するイベントの最大数。デフォルトは 1000 です。
max_request_size いいえ バイト数 フラッシュ前のリクエストペイロードの最大サイズ。デフォルトは 1mb です。
flush_interval いいえ 時間 イベントをフラッシュするまでの最大待機時間。デフォルトは 10s です。最大許容値は です60s

パイプラインの例

例 1: Amazon Managed Service for Prometheus への OpenTelemetry メトリクス

このパイプラインは、外部エージェントから OpenTelemetry メトリクスを受け取り、Amazon Managed Service for Prometheus に書き込みます。

version: "2" source: otel_metrics_source: path: "/v1/metrics" output_format: otel sink: - prometheus: url: "https://aps-workspaces.us-east-1.amazonaws.com/workspaces/ws-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/api/v1/remote_write" aws: region: "us-east-1"

例 2: デュアルシンク - OpenSearch と Amazon Managed Service for Prometheus

このパイプラインは、OpenSearch と Amazon Managed Service for Prometheus の両方にメトリクスをルーティングします。

version: "2" source: otel_metrics_source: path: "/v1/metrics" output_format: otel sink: - opensearch: hosts: - "https://search-domain-endpoint.us-east-1.es.amazonaws.com" index: "metrics-%{yyyy.MM.dd}" aws: region: "us-east-1" sts_role_arn: "arn:aws:iam::123456789012:role/OSI-Pipeline-Role" - prometheus: url: "https://aps-workspaces.us-east-1.amazonaws.com/workspaces/ws-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/api/v1/remote_write" aws: region: "us-east-1"

例 3: フィルタリングを使用したメトリクス

このパイプラインは、Amazon Managed Service for Prometheus に送信する前にメトリクスをフィルタリングします。

version: "2" source: otel_metrics_source: path: "/v1/metrics" output_format: otel processor: - drop_events: drop_when: '/name != "http.server.duration" and /name != "http.client.duration"' sink: - prometheus: url: "https://aps-workspaces.us-east-1.amazonaws.com/workspaces/ws-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/api/v1/remote_write" aws: region: "us-east-1"

事前設定された Amazon Managed Service for Prometheus ブループリントを使用して、これらのパイプラインを作成できます。詳細については、「ブループリントの使用」を参照してください。

Amazon Managed Service for Prometheus シンクを使用したパイプラインの作成

AWS コンソールの使用

  1. OpenSearch Service コンソールに移動します。

  2. 取り込みでパイプラインを選択します。

  3. パイプラインの作成 を選択します。

  4. ブループリントを使用してビルドを選択し、Amazon Prometheus ブループリントへの OpenTelemetry メトリクスを選択します。

  5. パイプラインを設定します。

    • Amazon Managed Service for Prometheus ワークスペース ID を入力する

    • パイプラインロール ARN を指定する

    • 必要に応じてソースとプロセッサの設定を構成する

  6. パイプラインを確認して作成します。

CLI AWS の使用

必要な設定でパイプライン設定ファイル ( などamp-pipeline.yaml) を作成し、以下を実行します。

aws osis create-pipeline \ --pipeline-name my-amp-pipeline \ --min-units 2 \ --max-units 4 \ --pipeline-configuration-body file://amp-pipeline.yaml

の使用 AWS CloudFormation

Resources: MyAMPPipeline: Type: AWS::OSIS::Pipeline Properties: PipelineName: my-amp-pipeline MinUnits: 2 MaxUnits: 4 PipelineConfigurationBody: | version: "2" source: otel_metrics_source: path: "/v1/metrics" output_format: otel sink: - prometheus: url: "https://aps-workspaces.us-east-1.amazonaws.com/workspaces/ws-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/api/v1/remote_write" aws: region: "us-east-1"

モニタリングとトラブルシューティング

CloudWatch メトリクス

CloudWatch メトリクスを使用してパイプラインのパフォーマンスをモニタリングします。

  • DocumentsWritten: Amazon Managed Service for Prometheus に正常に書き込まれたメトリクスの数

  • DocumentsWriteFailed: 書き込みに失敗したメトリクスの数

  • RequestLatency: リモート書き込みリクエストのレイテンシー

一般的な問題

問題: パイプラインが Amazon Managed Service for Prometheus への書き込みに失敗する

解決方法:

  • URL のワークスペース ID とリージョンが正しいことを確認します。

  • パイプラインロールに アクセスaps:RemoteWrite許可があることを確認する

  • ワークスペースがサービスマネージド AWS KMS キーを使用していることを確認します。

  • パイプラインとワークスペースが同じ にあることを確認する AWS アカウント

問題: 認証エラー

解決方法:

  • 信頼関係で がパイプラインロールを引き受けosis-pipelines.amazonaws.comることができることを確認する

  • パイプラインロールに必要なaps:RemoteWriteアクセス許可があることを確認します。

問題: 高レイテンシーまたはスロットリング

解決方法:

  • パイプライン容量ユニットを増やす

  • プロセッサにバッチ処理を実装する

  • Amazon Managed Service for Prometheus サービスクォータを確認する

制限事項

Amazon Managed Service for Prometheus の OpenSearch Ingestion パイプラインを設定するときは、次の制限を考慮してください。

  • Amazon Managed Service for Prometheus ワークスペースでは、サービスマネージド AWS KMS キーを使用する必要があります AWS 。カスタマーマネージド AWS KMS キーは現在サポートされていません。

  • パイプラインと Amazon Managed Service for Prometheus ワークスペースは同じ にある必要があります AWS アカウント。

ベストプラクティス

  • 同じ IAM ロールを使用する: Prometheus シンクは自動的にパイプラインロールを使用します。他のシンクを使用している場合は、 sts_role_arnがパイプラインロールと同じであることを確認します。

  • メトリクスのモニタリング: 失敗した書き込みと高レイテンシーの CloudWatch アラームを設定する

  • フィルタリングの実装: Amazon Managed Service for Prometheus に送信する前に、プロセッサを使用して不要なメトリクスをフィルタリングする

  • 適切なサイズの容量: 最小容量から開始し、メトリクスボリュームに基づいてスケールする

  • ブループリントを使用する: 一般的なユースケースで事前設定されたブループリントを活用する