EC2 上の Kubernetes 内にある既存の Prometheus サーバーからの取り込みの設定 - Amazon Managed Service for Prometheus

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

EC2 上の Kubernetes 内にある既存の Prometheus サーバーからの取り込みの設定

Amazon Managed Service for Prometheus は、Amazon EKS を実行しているクラスターおよび Amazon EC2 上で動作する自己管理型 Kubernetes クラスター内の Prometheus サーバーからのメトリクスの取り込みをサポートしています。このセクションの詳細な手順は、Amazon EKS クラスター内の Prometheus サーバーを対象としています。Amazon EC2 上の自己管理型 Kubernetes クラスターの場合も手順は同じですが、Kubernetes クラスターでサービスアカウントの OIDC プロバイダーと IAM ロールを手動で設定する必要がある点が異なります。

このセクションの手順では、Kubernetes パッケージマネージャーとして Helm を使用します。

ステップ 1: サービスアカウントの IAM ロールを設定する

ここで説明するオンボーディング方法では、Prometheus サーバーが実行されている Amazon EKS クラスターでサービスアカウントの IAM ロールを使用する必要があります。これらのロールはサービスロールとも呼ばれます。

サービスロールを使用すると、IAM ロールを Kubernetes サービスアカウントに関連付けることができます。このサービスアカウントは、そのサービスアカウントを使用する任意のポッドのコンテナにアクセス AWS 許可を付与できます。詳細については、「サービスアカウントの IAM ロール」を参照してください。

これらのロールをまだ設定していない場合は、「Amazon EKS クラスターからメトリクスを取り込むためのサービスロールの設定」の手順に従ってロールを設定します。

ステップ 2: Helm を使用して既存の Prometheus サーバーをアップグレードする

このセクションの手順には、リモート書き込みと sigv4 を設定して、Amazon Managed Service for Prometheus ワークスペースへのリモート書き込みを行えるように Prometheus サーバーを認証および認可する方法が含まれます。

Prometheus バージョン 2.26.0 以降を使用している場合

バージョン 2.26.0 以降の Prometheus サーバーイメージで Helm チャートを使用している場合は、以下の手順に従います。

Helm チャートを使用して Prometheus サーバーからのリモート書き込みを設定するには
  1. Helm 設定ファイルに新しいリモート書き込みセクションを作成します。

    • を、 でamp-iamproxy-ingest-role作成した の ARN ${IAM_PROXY_PROMETHEUS_ROLE_ARN}に置き換えますステップ 1: サービスアカウントの IAM ロールを設定する。ロールの ARN は arn:aws:iam::your account ID:role/amp-iamproxy-ingest-role という形式になります。

    • ${WORKSPACE_ID} は、Amazon Managed Service for Prometheus のワークスペース ID に置き換えます。

    • ${REGION} は、Amazon Managed Service for Prometheus ワークスペースのリージョン (us-west-2 など) に置き換えます。

    ## The following is a set of default values for prometheus server helm chart which enable remoteWrite to AMP ## For the rest of prometheus helm chart values see: https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus/values.yaml ## serviceAccounts: server: name: amp-iamproxy-ingest-service-account annotations: eks.amazonaws.com/role-arn: ${IAM_PROXY_PROMETHEUS_ROLE_ARN} server: remoteWrite: - url: https://aps-workspaces.${REGION}.amazonaws.com/workspaces/${WORKSPACE_ID}/api/v1/remote_write sigv4: region: ${REGION} queue_config: max_samples_per_send: 1000 max_shards: 200 capacity: 2500
  2. Helm を使用して既存の Prometheus サーバーの構成を更新します。

    • prometheus-chart-name は、Prometheus リリース名に置き換えます。

    • prometheus-namespace は、Prometheus サーバーがインストールされている Kubernetes 名前空間に置き換えます。

    • my_prometheus_values_yaml は、Helm 設定ファイルのパスに置き換えます。

    • current_helm_chart_version は、Prometheus サーバーの Helm チャートの現在のバージョンに置き換えます。現在のチャートのバージョンは、helm list コマンドを使用して確認できます。

    helm upgrade prometheus-chart-name prometheus-community/prometheus \ -n prometheus-namespace \ -f my_prometheus_values_yaml \ --version current_helm_chart_version

以前のバージョンの Prometheus 使う

2.26.0 より前のバージョンの Prometheus を使用している場合は、以下の手順に従います。以前のバージョンの Prometheus は AWS 署名バージョン 4 の署名プロセス (AWS SigV4) をネイティブにサポートしていないため、これらのステップではサイドカーアプローチを使用します。

これらの手順では、Prometheus のデプロイに Helm を使用しているものと想定します。

Prometheus サーバーからのリモート書き込みを設定するには
  1. Prometheus サーバーで、新しいリモート書き込み設定を作成します。まず、新しい更新ファイルを作成します。このファイルの名前を amp_ingest_override_values.yaml. とします。

    この YAML ファイルに次の値を追加します。

    serviceAccounts: server: name: "amp-iamproxy-ingest-service-account" annotations: eks.amazonaws.com/role-arn: "${SERVICE_ACCOUNT_IAM_INGEST_ROLE_ARN}" server: sidecarContainers: - name: aws-sigv4-proxy-sidecar image: public.ecr.aws/aws-observability/aws-sigv4-proxy:1.0 args: - --name - aps - --region - ${REGION} - --host - aps-workspaces.${REGION}.amazonaws.com - --port - :8005 ports: - name: aws-sigv4-proxy containerPort: 8005 statefulSet: enabled: "true" remoteWrite: - url: http://localhost:8005/workspaces/${WORKSPACE_ID}/api/v1/remote_write

    ${REGION} は、Amazon Managed Service for Prometheus ワークスペースのリージョンに置き換えます。

    を、 でamp-iamproxy-ingest-role作成した の ARN ${SERVICE_ACCOUNT_IAM_INGEST_ROLE_ARN}に置き換えますステップ 1: サービスアカウントの IAM ロールを設定する。ロールの ARN は arn:aws:iam::your account ID:role/amp-iamproxy-ingest-role という形式になります。

    ${WORKSPACE_ID} は、ワークスペース ID に置き換えます。

  2. Prometheus Helm チャートをアップグレードします。まず、以下のコマンドを入力して Helm チャート名を確認します。このコマンドの出力で、名前に prometheus という文字列を含むチャートを探します。

    helm ls --all-namespaces

    次に、以下のコマンドを入力します。

    helm upgrade --install prometheus-helm-chart-name prometheus-community/prometheus -n prometheus-namespace -f ./amp_ingest_override_values.yaml

    を、前のコマンドで返された Prometheus helm チャートの名前prometheus-helm-chart-nameに置き換えます。prometheus-namespace は、名前空間の名前に置き換えます。

Helm チャートのダウンロード

Helm チャートをまだローカルにダウンロードしていない場合は、次のコマンドを使用してダウンロードできます。

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm pull prometheus-community/prometheus --untar