

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

# Amazon EMR 7.0.0 用 CloudWatch エージェントの設定
<a name="AmazonCloudWatchAgent-config-700"></a>

Amazon CloudWatch エージェントは、[デフォルトの CloudWatch エージェント設定](AmazonCloudWatchAgent-metrics.md)で提供されるもの以外の追加のシステムメトリクスを使用するように設定できます。7.0.0 の設定では、ブートストラップアクションを使用する必要があります。ブートストラップアクションについては、以下のセクションで例を挙げています。今後のリリースでは、Amazon EMR は Amazon EMR API を通じた追加の設定オプションを提供する予定です。

**Topics**
+ [Amazon EMR 7.0.0 を使用して追加のシステムメトリクスを設定する](#AmazonCloudWatchAgent-config-700-add-metrics)
+ [Amazon EMR 7.0.0 を使用してアプリケーションメトリクスを設定する](#AmazonCloudWatchAgent-config-700-app-metrics)
+ [Amazon EMR 7.0.0 でのメトリクスのクラウドストレージとして Amazon Managed Service for Prometheus を設定する](#AmazonCloudWatchAgent-config-700-prometheus)

## Amazon EMR 7.0.0 を使用して追加のシステムメトリクスを設定する
<a name="AmazonCloudWatchAgent-config-700-add-metrics"></a>

次のステップを使用して、Amazon EMR 7.0.0 の異なるシステムメトリクスセットを使用するようにエージェントを設定します。

1. CloudWatch エージェントメトリクスを指定する設定ファイルを保存する Amazon S3 アカウントのバケットを作成または選択します。

1. 希望するメトリクスを指定して `emr-amazon-cloudwatch-agent.json` 設定ファイルを作成します。これを行うには、「[CloudWatch エージェント設定ファイルの作成](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file.html)」で説明されている方法のいずれかを使用します。CloudWatch エージェント設定ファイルの構成の詳細については、「*Amazon CloudWatch ユーザーガイド*」の「[CloudWatch エージェント設定ファイルを手動で作成または編集する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html)」を参照してください。

1. 次に、GitHub の **aws-emr-utilities** リポジトリに移動し、以下のシステムメトリクススクリプトをダウンロードします。
   + **[https://github.com/aws-samples/aws-emr-utilities/blob/main/applications/cloudwatch-agent/configuration/7.0/system-metrics/install_system_metrics_launcher.sh](https://github.com/aws-samples/aws-emr-utilities/blob/main/applications/cloudwatch-agent/configuration/7.0/system-metrics/install_system_metrics_launcher.sh)** - ノードがブートストラップを完了できるように、`install_system_metrics.sh` をダウンロードしてバックグラウンドで実行するスクリプト。
   + **[https://github.com/aws-samples/aws-emr-utilities/blob/main/applications/cloudwatch-agent/configuration/7.0/system-metrics/install_system_metrics.sh](https://github.com/aws-samples/aws-emr-utilities/blob/main/applications/cloudwatch-agent/configuration/7.0/system-metrics/install_system_metrics.sh)** - 実行中のインスタンスがブートストラップを完了するのを待ってから、JSON ファイル内の設定をダウンロードして適用するスクリプト。

1. 各 SH ファイルを開き、`amzn-s3-demo-bucket` をステップ 1 のバケットの名前に置き換えます。

1. 1 つの JSON ファイルと 2 つの SH ファイルを S3 バケットにアップロードします。

1. これで、Amazon EMR コンソールに移動し、CloudWatch エージェントで新しいクラスターを作成できます。左側のナビゲーションペインの **[EMR on EC2]** で **[クラスター]** を選択し、**[クラスターを作成]** を選択します。

1. **[名前とアプリケーション]** セクションで、Amazon EMR リリース 7.0.0 以降を選択します。

1. **[アプリケーションバンドル]** で、クラスターにインストールするバンドルまたはアプリケーションを選択し、選択内容に **[Amazon CloudWatch エージェント]** を含めます。

1. **[ブートストラップアクション]** セクションで **[追加]** を選択します。
   + **[名前]** には、**install\$1system\$1metrics\$1launcher.sh** と入力します。
   + **[スクリプトの場所]** には、**s3://*amzn-s3-demo-bucket*/install\$1system\$1metrics\$1launcher.sh** を挿入します。`amzn-s3-demo-bucket` をお使いの S3 バケットへのパス名に置き換えます。
   + **[引数]** ブロックは空のままにしておきます。

1. **[ブートストラップアクションを追加]** を選択します。

1. 引き続き、ワークロードのニーズに合わせてクラスターを作成してください。

クラスターが起動すると、CloudWatch エージェントは設定ファイルで指定されたシステムメトリクスを CloudWatch に公開します。

## Amazon EMR 7.0.0 を使用してアプリケーションメトリクスを設定する
<a name="AmazonCloudWatchAgent-config-700-app-metrics"></a>

Amazon CloudWatch エージェントは、システムメトリクスに加えて HDFS と YARN のアプリケーションメトリクスを公開するように設定できます。アプリケーションメトリクスを公開するようにエージェントを設定するには、次の手順を実行します。

1. CloudWatch エージェントメトリクスを指定する設定ファイルを保存する Amazon S3 アカウントのバケットを作成または選択します。

1. 次に、GitHub の **aws-emr-utilities** リポジトリに移動し、以下のスクリプトをダウンロードします。
   + **[https://github.com/aws-samples/aws-emr-utilities/blob/main/applications/cloudwatch-agent/configuration/7.0/application-metrics/install_app_metrics_launcher.sh](https://github.com/aws-samples/aws-emr-utilities/blob/main/applications/cloudwatch-agent/configuration/7.0/application-metrics/install_app_metrics_launcher.sh)** - ノードがブートストラップを完了できるように、`install_app_metrics.sh` をダウンロードしてバックグラウンドで実行するスクリプト。
   + **[https://github.com/aws-samples/aws-emr-utilities/blob/main/applications/cloudwatch-agent/configuration/7.0/application-metrics/install_app_metrics.sh](https://github.com/aws-samples/aws-emr-utilities/blob/main/applications/cloudwatch-agent/configuration/7.0/application-metrics/install_app_metrics.sh)** - 実行中のインスタンスがブートストラップを完了するのを待ってから、次のステップでダウンロードする YAML ファイル内の設定をダウンロードして適用するスクリプト。

1. 各ファイルを開き、`amzn-s3-demo-bucket` をステップ 1 のバケットの名前に置き換えます。

1. 次に、以下の YAML マッピングファイルをダウンロードします。これらの YAML ファイルの構造については、*OpenTelemetry Instrumentation for Java* GitHub リポジトリ内の「[https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/main/instrumentation/jmx-metrics/javaagent](https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/main/instrumentation/jmx-metrics/javaagent)」を参照してください。
   + **[https://github.com/aws-samples/aws-emr-utilities/blob/main/applications/cloudwatch-agent/configuration/7.0/application-metrics/mappings/datanode-metrics.yaml](https://github.com/aws-samples/aws-emr-utilities/blob/main/applications/cloudwatch-agent/configuration/7.0/application-metrics/mappings/datanode-metrics.yaml)** - Hadoop DataNode メトリクスの設定。
   + **[https://github.com/aws-samples/aws-emr-utilities/blob/main/applications/cloudwatch-agent/configuration/7.0/application-metrics/mappings/namenode-metrics.yaml](https://github.com/aws-samples/aws-emr-utilities/blob/main/applications/cloudwatch-agent/configuration/7.0/application-metrics/mappings/namenode-metrics.yaml)** - Hadoop NameNode メトリクスの設定。
   + **[https://github.com/aws-samples/aws-emr-utilities/blob/main/applications/cloudwatch-agent/configuration/7.0/application-metrics/mappings/nodemanager-metrics.yaml](https://github.com/aws-samples/aws-emr-utilities/blob/main/applications/cloudwatch-agent/configuration/7.0/application-metrics/mappings/nodemanager-metrics.yaml)** - Yarn NodeManager メトリクスの設定。
   + **[https://github.com/aws-samples/aws-emr-utilities/blob/main/applications/cloudwatch-agent/configuration/7.0/application-metrics/mappings/resourcemanager-metrics.yaml](https://github.com/aws-samples/aws-emr-utilities/blob/main/applications/cloudwatch-agent/configuration/7.0/application-metrics/mappings/resourcemanager-metrics.yaml)** - Yarn ResourceManager メトリクスの設定。

1. 2 つの SH ファイルと 4 つの YAML ファイルを S3 バケットにアップロードします。

1. これで、Amazon EMR コンソールに移動し、CloudWatch エージェントで新しいクラスターを作成できます。左側のナビゲーションペインの **[EMR on EC2]** で **[クラスター]** を選択し、**[クラスターを作成]** を選択します。

1. **[名前とアプリケーション]** セクションで、Amazon EMR リリース 7.0.0 以降を選択します。

1. **[アプリケーションバンドル]** で、クラスターにインストールするアプリのバンドルまたはカスタムグループを選択し、選択内容に **[CloudWatch エージェント]** を含めます。

1. **[ブートストラップアクション]** セクションで **[追加]** を選択します。
   + **[名前]** には、**install\$1app\$1metrics\$1launcher.sh** と入力します。
   + **[スクリプトの場所]** には、**s3://*amzn-s3-demo-bucket*/install\$1app\$1metrics\$1launcher.sh** を挿入します。`amzn-s3-demo-bucket` をお使いの S3 バケットへのパス名に置き換えます。
   + **[引数]** ブロックは空のままにしておきます。

1. **[ブートストラップアクションを追加]** を選択します。

1. 引き続き、ワークロードのニーズに合わせてクラスターを作成してください。

クラスターが起動すると、CloudWatch エージェントは、指定されたアプリケーションメトリクスとシステムメトリクスを CloudWatch に公開します。

## Amazon EMR 7.0.0 でのメトリクスのクラウドストレージとして Amazon Managed Service for Prometheus を設定する
<a name="AmazonCloudWatchAgent-config-700-prometheus"></a>

Amazon CloudWatch エージェントは、CloudWatch ではなく Amazon Managed Service for Prometheus にメトリクスを発行するように設定できます。

**注記**  
Amazon CloudWatch エージェントから Amazon Managed Service for Prometheus または Amazon CloudWatch のいずれかにメトリクスを公開できますが、同じクラスターの両方のサービスにメトリクスを公開することはできません。

Amazon Managed Service for Prometheus にメトリクスを発行するようにエージェントを設定するには、Amazon EMR の Amazon EC2 インスタンスプロファイルに `aps:RemoteWrite` AWS Identity and Access Management (IAM) アクセス許可を追加する必要があります。次のポリシー例は、必要なアクセス許可を含んでいます。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "aps:RemoteWrite"
      ],
      "Resource": [
        "*"
      ],
      "Sid": "AllowAPSRemotewrite"
    }
  ]
}
```

------

**EMR クラスターの CloudWatch エージェントを使用して Amazon Managed Service for Prometheus にメトリクスを公開する**

サービスポリシーに正しいアクセス許可が付与されたら、次のステップを使用して CloudWatch エージェントを使用して Amazon Managed Service for Prometheus にメトリクスを発行するクラスターを起動します。

1.  AWS マネジメントコンソール または を使用して AWS CLI 、Amazon Managed Service for Prometheus ワークスペースを作成します。詳細については、「*Amazon Managed Service for Prometheus User Guide*」の「[Create a workspace](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html)」を参照してください。

1. Amazon S3 アカウントで、Amazon Managed Service for Prometheus をクラウドストレージとして指定する起動ファイルを保存するバケットを作成または選択します。

1. 次に、GitHub の **aws-emr-utilities** リポジトリに移動し、以下のスクリプトをダウンロードします。
   + **[https://github.com/aws-samples/aws-emr-utilities/blob/main/applications/cloudwatch-agent/configuration/7.0/prometheus/add_prometheus_endpoint_launcher.sh](https://github.com/aws-samples/aws-emr-utilities/blob/main/applications/cloudwatch-agent/configuration/7.0/prometheus/add_prometheus_endpoint_launcher.sh)** - ノードがブートストラップを完了できるように、`add_prometheus_endpoint.sh` をダウンロードしてバックグラウンドで実行するスクリプト。
   + **[https://github.com/aws-samples/aws-emr-utilities/blob/main/applications/cloudwatch-agent/configuration/7.0/prometheus/add_prometheus_endpoint.sh](https://github.com/aws-samples/aws-emr-utilities/blob/main/applications/cloudwatch-agent/configuration/7.0/prometheus/add_prometheus_endpoint.sh)** - 実行中のインスタンスがブートストラップを完了するのを待ってから、クラスターを起動するときに引数として指定した Amazon Managed Service for Prometheus エンドポイントに公開するように CloudWatch エージェントを設定するスクリプト。

1. 各ファイルを開き、`amzn-s3-demo-bucket` をステップ 2 のバケットの名前に置き換えます。

1. を使用して AWS CLI 、`add_prometheus_endpoint_launcher.sh`ブートストラップアクションで EMR クラスターを作成します。次のコマンドで、`amzn-s3-demo-bucket` をブートストラップアクションを保持するバケットに置き換え、`managedpro-remote-write-workspace-url` を Amazon Managed Service for Prometheus ワークスペースのリモート書き込みエンドポイントに置き換えます。必ず `emr-7.0.0` またはそれ以降の Amazon EMR リリースラベルを指定してください。

   ```
   aws emr create-cluster --name managedpro-cluster \
       --release-label emr-7.0.0 \
       --applications Name=Hadoop Name=AmazonCloudWatchAgent \
       --ec2-attributes KeyName=myKey --instance-type m7g.2xlarge \
       --instance-count 3 --use-default-roles
      --bootstrap-actions Name='Add Prometheus Endpoint',Path=s3://amzn-s3-demo-bucket/add_prometheus_endpoint_launcher.sh,Args='managedpro-remote-write-workspace-url'
   ```

クラスターが起動すると、CloudWatch エージェントは収集したメトリクスを Amazon Managed Service for Prometheus に公開します。

**Amazon Managed Service for Prometheus を Amazon Managed Grafana 用データソースとして使用する**

Amazon EMR が Amazon Managed Service for Prometheus にクラスターメトリクスを公開したら、次のステップを使用して Amazon Managed Grafana でメトリックスを視覚化できます。

1. を使用して AWS マネジメントコンソール 、適切なアクセス許可を持つ Amazon Managed Grafana ワークスペースとユーザーを作成します。詳細については、「*Amazon Managed Grafana User Guide*」の「[Create a workspace](https://docs.aws.amazon.com/grafana/latest/userguide/AMG-create-workspace.html)」を参照してください。

1. Amazon Managed Service for Prometheus ワークスペースをデータソースとして Amazon Managed Grafana に追加します。詳細については、「*Amazon Managed Grafana User Guide*」の「[Use AWS data source configuration to add Amazon Managed Service for Prometheus as a data source](https://docs.aws.amazon.com/grafana/latest/userguide/AMP-adding-AWS-config.html)」を参照してください。

**注記**  
CloudWatch エージェントには、特定の属性の名前を変更する Prometheus エクスポーターがあります。デフォルトのメトリクスラベルでは、Amazon Managed Service for Prometheus は Amazon CloudWatch が使用するピリオドの代わりにアンダースコア文字を使用します。そのため、Amazon Managed Grafana を使用して Amazon Managed Service for Prometheus のデフォルトメトリクスを視覚化すると、ラベルは `jobflow_id`、`instance_id`、`service_name` のように表示されます。  
また、CloudWatch エージェントが Amazon Managed Service for Prometheus に公開する**アプリケーション**メトリクスは、`service_name` ではなく `job` のラベル を使用します。ただし、**システムメトリクス**は引き続き `service_name` のラベルを使用します。