CloudWatch エージェント設定ファイルを作成する - Amazon CloudWatch

CloudWatch エージェント設定ファイルを作成する

CloudWatch エージェントをサーバーで実行する前に、CloudWatch エージェント設定ファイルを 1 つ以上作成する必要があります。

エージェント設定ファイルは、カスタムメトリクスを含め、エージェントが収集するメトリクス、ログ、トレースを指定する JSON ファイルです。このファイルを作成するには、ウィザードを使用するか、一から自分で作成します。また、ウィザードを使用して最初に設定ファイルを作成してから、手動で変更することもできます。ファイル手動で作成または変更するほうがプロセスが複雑になりますが、収集されるメトリクスをきめ細かくコントロールし、ウィザードで使用できないメトリクスを指定できます。

エージェント設定ファイルを変更するときは必ず、エージェントを再起動して変更を有効にする必要があります。エージェントを再起動するには、「(オプション) CloudWatch エージェントの一般的な設定と名前付きプロファイルを変更する」の手順に従います。

設定ファイルを作成したら、手動で JSON ファイルとして保存し、エージェントをサーバーにインストールする際に使用することができます。また、エージェントをサーバーにインストールする際にSystems Manager を使用する場合は、Systems Manager Parameter Store に保存することもできます。

CloudWatch エージェントは複数の設定ファイルの使用に対応しています。詳細については、「複数の CloudWatch エージェント設定ファイルを作成する」を参照してください。

CloudWatch エージェントによって収集されたメトリクス、ログ、トレースには料金が発生します。料金の詳細については、「Amazon CloudWatch の料金」を参照してください。

複数の CloudWatch エージェント設定ファイルを作成する

Linux サーバーと Windows サーバーの両方で、複数の設定ファイルを使用するように CloudWatch エージェントを設定できます。例えば、インフラストラクチャ内のすべてのサーバーから常に収集する一連のメトリクス、ログ、およびトレースを収集する共通の設定ファイルを使用できます。その後、追加の設定ファイルを使用して、特定のアプリケーションから、または特定の状況でメトリクスを収集することができます。

これを設定するには、まず使用する設定ファイルを作成します。同じサーバー上で一緒に使用される設定ファイルは、異なるファイル名を持つ必要があります。設定ファイルは、サーバー上または Parameter Store に保存できます。

fetch-config オプションを使って CloudWatch エージェントを開始し、1 つ目の設定ファイルを指定します。エージェントの実行の 2 つ目の設定ファイルを追加するには、同じコマンドを使用しますが、append-config オプションを使います。いずれかの設定ファイルにリストされている、すべてのメトリクス、ログ、トレースが収集されます。次のコマンドは、このシナリオで設定ストアをファイルとして使用した例を示しています。1 行目で infrastructure.json 設定ファイルを使ってエージェントを開始し、2 行目で app.json 設定ファイルを追加しています。

次のサンプルコマンドは、Linux 用です。

/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:/tmp/infrastructure.json
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a append-config -m ec2 -s -c file:/tmp/app.json

次のコマンドは Windows Server 用です。

& "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -a fetch-config -m ec2 -s -c file:"C:\Program Files\Amazon\AmazonCloudWatchAgent\infrastructure.json"
& "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -a append-config -m ec2 -s -c file:"C:\Program Files\Amazon\AmazonCloudWatchAgent\app.json"

次の設定ファイルは、この機能の使用方法の例を示しています。1 つ目の設定ファイルは、インフラストラクチャ内のすべてのサーバーに使用され、2 つ目の設定ファイルは、特定のアプリケーションからのログのみを収集し、そのアプリケーションを実行しているサーバーに追加されています。

infrastructure.json

{ "metrics": { "metrics_collected": { "cpu": { "resources": [ "*" ], "measurement": [ "usage_active" ], "totalcpu": true }, "mem": { "measurement": [ "used_percent" ] } } }, "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log", "log_group_name": "amazon-cloudwatch-agent.log" }, { "file_path": "/var/log/messages", "log_group_name": "/var/log/messages" } ] } } } }

app.json

{ "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/app/app.log*", "log_group_name": "/app/app.log" } ] } } } }

設定に追加される設定ファイルは、互いに異なるファイル名を持つ必要があり、また初期の設定ファイルと異なるファイル名を持つ必要があります。エージェントで既に使用されている設定ファイルと同じファイル名の設定ファイルで append-config を使用した場合、その append コマンドでは追加は行われず、1 つ目の設定ファイルの情報は上書きされます。これは、同じファイル名の 2 つの設定ファイルが異なるファイルパスにある場合でも同様です。

前の例では、2 つの設定ファイルを使用していますが、エージェント設定に追加できる設定ファイルの数に制限はありません。サーバー上にある設定ファイルと Parameter Store にある設定を混在させることもできます。