で Kubernetes の既存の Prometheus サーバーからの取り込みを設定する EC2 - Amazon Managed Service for Prometheus

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

で Kubernetes の既存の Prometheus サーバーからの取り込みを設定する EC2

Amazon Managed Service for Prometheus は、Amazon を実行しているクラスターEKSと Amazon で実行されているセルフマネージド Kubernetes クラスター内の Prometheus サーバーからのメトリクスの取り込みをサポートしますEC2。このセクションの詳細な手順は、Amazon EKSクラスター内の Prometheus サーバー用です。Amazon のセルフマネージド Kubernetes クラスターの手順は同じEC2ですが、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-chart-name を、前のコマンドで返された Prometheus helm チャートの名前に置き換えます。置換 prometheus-namespace を名前空間の名前に置き換えます。

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

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

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