CloudWatch エージェント設定ファイルを手動で作成または編集する
CloudWatch エージェント設定ファイルは、agent、metrics、logs、traces の 4 つのセクションを持つ JSON ファイルです。
-
agentセクションには、エージェントの全体的な設定に関するフィールドが含まれています。 -
metricsセクションでは、収集と CloudWatch への発行に関するカスタムメトリクスを指定します。ログを収集するためだけにエージェントを使用している場合は、ファイルからmetricsセクションを省略できます。 -
logsセクションでは、CloudWatch Logs に発行されるログファイルを指定します。サーバーで Windows Server が実行されている場合、これには Windows イベントログからのイベントが含まれることがあります。 -
tracesセクションでは、収集されて AWS X-Ray に送信されるトレースのソースを指定します。
このセクションでは、CloudWatch エージェント設定ファイルの構造とフィールドについて説明します。また、この設定ファイルのスキーマ定義を表示することもできます。スキーマ定義は、Linux サーバーでは 、Windows Server を実行しているサーバーでは installation-directory/doc/amazon-cloudwatch-agent-schema.json にあります。installation-directory/amazon-cloudwatch-agent-schema.json
エージェント設定ファイルを手動で作成または編集する場合は、任意の名前を付けることができます。トラブルシューティングを簡単にするため、Linux サーバーでは、/opt/aws/amazon-cloudwatch-agent/etc/cloudwatch-agent.json、Windows Server を実行しているサーバーでは、$Env:ProgramData\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent.json という名前を付けることをお勧めします。ファイルを作成したら、エージェントをインストールする他のサーバーにそのファイルをコピーできます。
エージェントが起動されると、/opt/aws/amazon-cloudwatch/etc/amazon-cloudwatch-agent.d ディレクトリに各設定ファイルのコピーが作成されます。ファイル名のプレフィックスには、設定の原点を示す file_ (ローカルファイルソースの場合) または ssm_ (Systems Manager パラメータストアソースの場合) が付きます。
注記
CloudWatch エージェントによって収集されたメトリクス、ログ、トレースには料金が発生します。料金の詳細については、「Amazon CloudWatch の料金
agent セクションでは、次のフィールドを含めることができます。ウィザードでは、agent セクションは作成されません。代わりに、このセクションは省略されて、このセクションのすべてのフィールドにデフォルト値が使用されます。
-
metrics_collection_interval– オプション。この設定ファイルで指定されたすべてのメトリクスが収集される頻度を指定します。この値は、特定の種類のメトリクスで上書きすることができます。この値は数秒で指定されます。例えば、10 と設定するとメトリクスが 10 秒ごとに収集されるようになり、300 と設定するとメトリクスが 5 分ごとに収集されように指定されます。
この値を 60 秒未満に設定した場合、各メトリクスは高解像度メトリクスとして収集されます。高解像度メトリクスの詳細については、「高解像度のメトリクス」を参照してください。
デフォルト値は 60 です。
-
region– Amazon EC2 インスタンスを監視しているときに CloudWatch エンドポイントに使用するリージョンを指定します。収集されたメトリクスは、このリージョン (us-west-1など) に送信されます。このフィールドを省略すると、エージェントは Amazon EC2 インスタンスが配置されているリージョンにメトリクスを送信します。オンプレミスサーバーをモニターリングしている場合、このフィールドは使用されず、エージェントは
AmazonCloudWatchAgent設定ファイルの AWS プロファイルからリージョンを読み取ります。 -
credentials– 異なる AWS アカウントにメトリクス、ログ、トレースを送信する際に使用する IAM ロールを指定します。指定した場合、このフィールドには 1 つのパラメータrole_arnが含まれています。-
role_arn– 異なる AWS アカウントにメトリクス、ログ、トレースを送信する際の認証用 IAM ロールの Amazon リソースネーム (ARN) を指定します。詳細については、「別のアカウントへのメトリクス、ログ、トレースの送信」を参照してください。
-
-
debug- オプション。デバッグログメッセージを使用して CloudWatch を実行することを指定します。デフォルト値はfalseです。 -
aws_sdk_log_level- オプション。バージョン 1.247350.0 以降の CloudWatch エージェントでのみサポートされます。このフィールドを指定すると、エージェントが AWS SDK エンドポイントに対してログ記録を実行できるようになります。このフィールドの値には、次のオプションうち 1 つまたは複数を含めることができます。複数のオプションは、
|文字で区切ります。-
LogDebug -
LogDebugWithSigning -
LogDebugWithHTTPBody -
LogDebugRequestRetries -
LogDebugWithEventStreamBody
これらのオプションの詳細については、「LogLevelType」を参照してください。
-
-
logfile– CloudWatch エージェントがログメッセージを書き込む場所を指定します。空の文字列を指定すると、ログは stderr に書き込まれます。このオプションを指定しない場合、デフォルトの場所は次のようになります。-
Linux:
/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log -
Windows Server:
c:\\ProgramData\\Amazon\\CloudWatchAgent\\Logs\\amazon-cloudwatch-agent.log
CloudWatch エージェントで作成されるログファイルは自動的に更新されます。ログファイルは、サイズが 100 MB に達すると、更新されます。エージェントは、更新したログファイルを最大 7 日間保持します。また、更新したバックアップログファイルを最大 5 つまで保持します。バックアップログファイルのファイル名にはタイムスタンプが追加されます。このタイムスタンプは、ファイルの更新日時 (例:
amazon-cloudwatch-agent-2018-06-08T21-01-50.247.log.gz) を示します。 -
-
omit_hostname- オプション。デフォルトでは、append_dimensionsセクション内のmetricsフィールドを使用している場合を除き、ホスト名はエージェントによって収集されるメトリクスのディメンションとして発行されます。omit_hostnameをtrueに設定すると、append_dimensionsを使用していなくても、ホスト名がディメンションとして発行されません。デフォルト値はfalseです。 -
run_as_user- オプション。CloudWatch エージェントを実行するために使用するユーザーを指定します。このパラメータを指定しないと、ルートユーザーが使用されます。このオプションは、Linux サーバーでのみ有効です。このオプションを使用する場合は、CloudWatch エージェントを起動する前にユーザーが存在している必要があります。詳細については、「CloudWatch エージェントの別のユーザーとしての実行」を参照してください。
-
user_agent- オプション。CloudWatch エージェントによって CloudWatch バックエンドへの API 呼び出しに使用されるuser-agent文字列を指定します。デフォルト値は、エージェントのバージョン、エージェントのコンパイルに使用された Go プログラミング言語のバージョン、ランタイムオペレーティングシステムおよびアーキテクチャ、構築時間、有効にするプラグインで構成される文字列です。 -
usage_data- オプション。デフォルトでは、CloudWatch エージェントは、メトリクスまたはログを CloudWatch に発行するたびに、自らに関するヘルスおよびパフォーマンスのデータを CloudWatch に送信します。このデータには費用はかかりません。usage_dataにfalseを指定することで、エージェントがこのデータを送信しないようにできます。このパラメータを省略すると、デフォルトのtrueが使用され、エージェントはヘルスおよびパフォーマンスのデータを送信します。この値を
falseに設定した場合、有効にするにはエージェントを停止して再起動する必要があります。 -
service.name- オプション。エンティティに入力して関連するテレメトリを検索するために使用されるサービス名を指定します。 -
deployment.environment- オプション。エンティティに入力して関連するテレメトリを検索するために使用される環境名を指定します。
agent セクションの例を以下に示します。
"agent": { "metrics_collection_interval": 60, "region": "us-west-1", "logfile": "/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log", "debug": false, "run_as_user": "cwagent" }
Linux および Windows の共通のフィールド
Linux または Windows Server を実行しているサーバーでは、metrics セクションに次のフィールドが含まれています。
-
namespace- オプション。エージェントによって収集されるメトリクスに使用する名前空間。デフォルト値はCWAgentです。最大長は 255 文字です。次に例を示します。{ "metrics": { "namespace": "Development/Product1Metrics", ...... }, } -
append_dimensions- オプション。エージェントによって収集されたメトリクスに Amazon EC2 メトリクスのディメンションを追加します。これにより、エージェントはホスト名をディメンションとして発行しません。append_dimensionsで唯一サポートされるキーと値のペアは、次のリストに示されています。他のキーと値のペアは無視されます。エージェントは、次のリストに示されているとおりに、これらのキーと値のペアをサポートします。キーの値を変更して、異なるディメンション名を発行することはできません。-
"ImageId":"${aws:ImageId}"は、インスタンスの AMI ID をImageIdディメンションの値として設定します。 -
"InstanceId":"${aws:InstanceId}"は、インスタンスのインスタンス ID をInstanceIdディメンションの値として設定します。 -
"InstanceType":"${aws:InstanceType}"は、インスタンスのインスタンスタイプをInstanceTypeディメンションの値として設定します。 -
"AutoScalingGroupName":"${aws:AutoScalingGroupName}"は、インスタンスの Auto Scaling グループ名をAutoScalingGroupNameディメンションの値として設定します。
任意のキーと値のペアを持つメトリクスにディメンションを追加する場合は、その特定のタイプのメトリクスのフィールドの
append_dimensionsパラメータを使用します。Amazon EC2 メタデータに依存する値を指定し、プロキシーを使用する場合は、サーバーが Amazon EC2 のエンドポイントにアクセスできることを確認する必要があります。これらのエンドポイントの詳細については、「Amazon Web Services 全般のリファレンス」の「Amazon Elastic Compute Cloud (Amazon EC2)」を参照してください。
-
-
aggregation_dimensions- オプション。収集されたメトリクスが集計されるディメンションを指定します。例えば、AutoScalingGroupNameディメンションでメトリクスをロールアップした場合、各 Auto Scaling グループ内のすべてのインスタンスのメトリクスが集約され、全体として参照できるようになります。1 つまたは複数のディメンションに沿ってメトリクスをロールアップすることができます。たとえば、
[["InstanceId"], ["InstanceType"], ["InstanceId","InstanceType"]]を指定すると、インスタンス ID 単独、インスタンスタイプ単独、および 2 つのディメンションの組み合わせのメトリクスが集約されます。[]を指定することにより、すべてのディメンションを無視して、すべてのメトリクスを 1 つのコレクションにロールアップすることもできます。 -
endpoint_override– エージェントがメトリクスを送信するエンドポイントとして使用する FIPS エンドポイントまたはプライベートリンクを指定します。これを指定してプライベートリンクを設定すると、Amazon VPC エンドポイントにメトリクスを送信できます。詳細については、「Amazon VPC とは」を参照してください。endpoint_overrideの値は URL 文字列であることが必要です。たとえば、設定ファイルのメトリクスセクションの次の部分は、メトリクスの送信時に VPC エンドポイントを使用するようにエージェントを設定します。
{ "metrics": { "endpoint_override": "vpce-XXXXXXXXXXXXXXXXXXXXXXXXX.monitoring.us-east-1.vpce.amazonaws.com", ...... }, } -
metrics_collected– 必須。収集するメトリクス (StatsDまたはcollectdを介して収集されたカスタムメトリクスを含む) を指定します。このセクションには、いくつかのサブセクションがあります。この
metrics_collectedセクションの内容は、この設定ファイルが Linux を実行しているサーバー用か Windows Server を実行しているサーバー用かによって異なります。 -
metrics_destinations- オプション。metrics_collectedで定義されたすべてのメトリクスに 1 つ以上の送信先を指定します。ここで指定された場合、cloudwatchのデフォルトの送信先が上書きされます。-
cloudwatch– Amazon CloudWatch。 -
amp– Amazon Managed Service for Prometheus-
workspace_id– Amazon Managed Service for Prometheus ワークスペースに対応する ID。
-
{ "metrics": { "metrics_destinations": { "cloudwatch": {}, "amp": { "workspace_id": "ws-abcd1234-ef56-7890-ab12-example" } } } } -
-
force_flush_interval– メトリクスがサーバーに送信されるまでにメモリバッファ内に残留する最大時間を秒単位で指定します。この設定にかかわらず、バッファ内のメトリクスのサイズが 1 MB に達するか、異なるタイプのメトリクスの数が 1,000 個に達すると、メトリクスは即座にサーバーに送信されます。デフォルト値は 60 です。
-
credentials– 異なるアカウントにメトリクスを送信する際に使用する IAM ロールを指定します。指定した場合、このフィールドには 1 つのパラメータrole_arnが含まれています。-
role_arn– 異なるアカウントにメトリクスを送信する際の認証用の IAM ロールの ARN を指定します。詳細については、「別のアカウントへのメトリクス、ログ、トレースの送信」を参照してください。ここで指定した値は、設定ファイルのrole_arnセクションで指定されたagentよりも優先されます (存在する場合)。 -
service.name- オプション。エンティティに入力して関連するテレメトリを検索するために使用されるサービス名を指定します。 -
deployment.environment- オプション。エンティティに入力して関連するテレメトリを検索するために使用される環境名を指定します。
-
Linux のセクション
Linux を実行しているサーバーでは、設定ファイルの metrics_collected セクションに次のフィールドを含めることもできます。
これらのフィールドの多くには、そのリソースに対して収集するメトリクスをリストする measurement セクションを含めることができます。これらの measurement セクションでは、swap_used などの完全なメトリクス名、またはリソースのタイプに追加されるメトリクス名の一部のみを指定できます。たとえば、reads セクションの measurement セクションで diskio を指定すると、diskio_reads メトリクスが収集されます。
-
collectd- オプション。collectdプロトコルを使用してカスタムメトリクスを取得することを指定します。collectdソフトウェアを使用して CloudWatch エージェントにメトリクスを送信します。collectd で使用できる設定オプションの詳細については、「collectd を使用してカスタムメトリクスを取得する」を参照してください。 -
cpu- オプション。収集する CPU メトリクスを指定します。このセクションは、Linux インスタンスでのみ有効です。収集する CPU メトリクスのresourcesフィールドとtotalcpuフィールドを少なくとも 1 つ含める必要があります。このセクションには、次のフィールドを含めることができます。-
drop_original_metrics- オプション。metricsセクションのaggregation_dimensionsフィールドを使用してメトリクスを集計結果にロールアップしている場合、デフォルトでは、エージェントは集計メトリクスと、ディメンションの値ごとに分離された元のメトリクスの両方を送信します。元のメトリクスを CloudWatch に送信したくない場合は、メトリクスのリストを使用してこのパラメータを指定できます。このパラメータとともに指定されたメトリクスには、CloudWatch にレポートされるディメンションごとのメトリクスがありません。代わりに、集計されたメトリクスのみがレポートされます。これにより、エージェントが収集するメトリクスの数が減り、コストが削減されます。 -
resources- オプション。このフィールドの値を*に指定すると、CPU ごとのメトリクスが収集されます。許容されている値は*のみです。 -
totalcpu- オプション。すべての CPU コア間で集計された cpu メトリクスを報告するかどうかを指定します。デフォルトは true です。 -
measurement– 収集する cpu メトリクスの配列を指定します。利用できる値は、time_active、time_guest、time_guest_nice、time_idle、time_iowait、time_irq、time_nice、time_softirq、time_steal、time_system、time_user、usage_active、usage_guest、usage_guest_nice、usage_idle、usage_iowait、usage_irq、usage_nice、usage_softirq、usage_steal、usage_system、およびusage_userです。このフィールドは、cpuを含めた場合にのみ必要です。デフォルトでは、
cpu_usage_*メトリクスの単位はPercentであり、cpu_time_*メトリクスには単位がありません。各メトリクスのエントリでは、必要に応じて次のいずれかまたは両方を指定できます。
-
rename– このメトリクスに別の名前を指定します。 -
unit– メトリクスのNoneのデフォルト単位を上書きして、このメトリクスに使用する単位を指定します。指定する単位は、「MetricDatum」のUnitに関する説明にリストされている有効な CloudWatch メトリクス単位でなければなりません。
-
-
metrics_collection_interval- オプション。設定ファイルのmetrics_collection_intervalセクションで指定されたグローバルなagentを上書きして、cpu メトリクスを収集する頻度を指定します。この値は数秒で指定されます。例えば、10 と設定するとメトリクスが 10 秒ごとに収集されるようになり、300 と設定するとメトリクスが 5 分ごとに収集されように指定されます。
この値を 60 秒未満に設定した場合、各メトリクスは高解像度メトリクスとして収集されます。高解像度メトリクスの詳細については、「高解像度のメトリクス」を参照してください。
-
append_dimensions- オプション。cpu メトリクスにのみ使用する追加のディメンション。このフィールドを指定した場合、エージェントによって収集されるすべてのタイプのメトリクスに使用されるグローバルフィールドappend_dimensionsで指定されたディメンションに加えて使用されます。
-
-
disk- オプション。収集する disk メトリクスを指定します。マウントされたボリュームのメトリクスのみを収集します。このセクションは、Linux インスタンスでのみ有効です。このセクションには、次のフィールドを含めることができます。-
drop_original_metrics- オプション。metricsセクションのaggregation_dimensionsフィールドを使用してメトリクスを集計結果にロールアップしている場合、デフォルトでは、エージェントは集計メトリクスと、ディメンションの値ごとに分離された元のメトリクスの両方を送信します。元のメトリクスを CloudWatch に送信したくない場合は、メトリクスのリストを使用してこのパラメータを指定できます。このパラメータとともに指定されたメトリクスには、CloudWatch にレポートされるディメンションごとのメトリクスがありません。代わりに、集計されたメトリクスのみがレポートされます。これにより、エージェントが収集するメトリクスの数が減り、コストが削減されます。 -
resources- オプション。ディスクのマウントポイントの配列を指定します。このフィールドは、リストされているマウントポイントのみから CloudWatch がメトリクスを収集するように制限します。値として*を指定すると、すべてのマウントポイントからメトリクスを収集できます。デフォルト値を使用すると、すべてのマウントポイントからメトリクスが収集されます。 -
measurement– 収集する disk メトリクスの配列を指定します。指定できる値はfree、total、used、used_percent、inodes_free、inodes_used、およびinodes_totalです。このフィールドは、diskを含めた場合にのみ必要です。注記
diskメトリクスにはPartitionのディメンションがあります。つまり、生成されるカスタムメトリクスの数は、インスタンスに関連付けられたパーティションの数によって異なります。ディスクパーティションの数は、使用している AMI とサーバーにアタッチする Amazon EBS ボリュームの数によって異なります。各
diskメトリクスのデフォルトの単位を確認するには、「Linux および macOS インスタンスで CloudWatch エージェントにより収集されるメトリクス」を参照してください。各メトリクスのエントリでは、必要に応じて次のいずれかまたは両方を指定できます。
-
rename– このメトリクスに別の名前を指定します。 -
unit– メトリクスのNoneのNoneのデフォルト単位を上書きして、このメトリクスに使用する単位を指定します。指定する単位は、「MetricDatum」のUnitに関する説明にリストされている有効な CloudWatch メトリクス単位でなければなりません。
-
-
ignore_file_system_types– disk メトリクスを収集するときに除外するファイルシステムのタイプを指定します。有効な値は、sysfs、devtmpfsなどです。 -
drop_device– これをtrueに設定すると、Deviceはディスクメトリクスのディメンションとして含まれません。Deviceがディメンションとして使用されないようにすることは、Nitro システムを使用するインスタンスで役立ちます。これらのインスタンスでは、インスタンスの再起動時にディスクマウントごとにデバイス名が変更されるためです。これにより、メトリクスに整合性のないデータが発生し、これらのメトリクスに基づくアラームがINSUFFICIENT DATA状態になる可能性があります。デフォルト:
false。 -
metrics_collection_interval- オプション。設定ファイルのmetrics_collection_intervalセクションで指定されたグローバルなagentを上書きして、disk メトリクスを収集する頻度を指定します。この値は数秒で指定されます。
この値を 60 秒未満に設定した場合、各メトリクスは高解像度メトリクスとして収集されます。詳細については、「高解像度のメトリクス」を参照してください。
-
append_dimensions- オプション。ディスクメトリクス専用の追加のディメンションとして使用するキーと値のペアを指定します。このフィールドを指定した場合、エージェントにより収集されるすべてのタイプのメトリクスに使用されるappend_dimensionsフィールドで指定されたディメンションに加えて使用されます。使用できるキーと値のペアは次のとおりです。他のカスタムのキーと値のペアを指定することもできます。
-
"VolumeId":"${aws:VolumeId}"は、ブロックデバイスディスクメトリクスにVolumeIdディメンションを追加します。これは、Amazon EBS ボリュームの場合には Amazon EBS ボリューム ID になります。EC2 インスタンスストアの場合にはデバイスシリアルになります。これを使用するには、drop_deviceパラメータをfalseに設定する必要があります。
-
-
-
diskio- オプション。収集する disk i/o メトリクスを指定します。このセクションは、Linux インスタンスでのみ有効です。このセクションには、次のフィールドを含めることができます。-
drop_original_metrics- オプション。metricsセクションのaggregation_dimensionsフィールドを使用してメトリクスを集計結果にロールアップしている場合、デフォルトでは、エージェントは集計メトリクスと、ディメンションの値ごとに分離された元のメトリクスの両方を送信します。元のメトリクスを CloudWatch に送信したくない場合は、メトリクスのリストを使用してこのパラメータを指定できます。このパラメータとともに指定されたメトリクスには、CloudWatch にレポートされるディメンションごとのメトリクスがありません。代わりに、集計されたメトリクスのみがレポートされます。これにより、エージェントが収集するメトリクスの数が減り、コストが削減されます。 -
resources- オプション。デバイスの配列を指定した場合、CloudWatch はそれらのデバイスからのみメトリクスを収集します。それ以外の場合、すべてのデバイスのメトリクスが収集されます。値として * を指定し、すべてのデバイスからメトリクスを収集することもできます。 -
measurement– Amazon EC2 AWS インスタンスにアタッチされた Amazon EBS ボリュームとインスタンスストアボリュームに対して収集される diskio および NVMe ドライバーメトリクスの配列を指定します。指定できる diskio 値はreads、writes、read_bytes、write_bytes、read_time、write_time、io_time、およびiops_in_progressです。Amazon EBS ボリュームと Amazon EC2 インスタンスストアボリュームの NVMe ドライバーメトリクスのリストについては、「Amazon EBS NVMe ドライバーメトリクスを収集する 」および「Amazon EC2 インスタンスストアボリューム NVMe ドライバーメトリクスを収集する」を参照してください。このフィールドは、diskioを含めた場合にのみ必要です。各メトリクスのエントリでは、必要に応じて次のいずれかまたは両方を指定できます。
-
rename– このメトリクスに別の名前を指定します。 -
unit– メトリクスのNoneのNoneのデフォルト単位を上書きして、このメトリクスに使用する単位を指定します。指定する単位は、「MetricDatum」のUnitに関する説明にリストされている有効な CloudWatch メトリクス単位でなければなりません。
デフォルトの単位とメトリクスの説明については、「Amazon EBS NVMe ドライバーメトリクスを収集する 」を参照してください。
-
-
metrics_collection_interval- オプション。設定ファイルのmetrics_collection_intervalセクションで指定されたグローバルなagentを上書きして、diskio メトリクスを収集する頻度を指定します。この値は数秒で指定されます。
この値を 60 秒未満に設定した場合、各メトリクスは高解像度メトリクスとして収集されます。高解像度メトリクスの詳細については、「高解像度のメトリクス」を参照してください。
-
append_dimensions- オプション。diskio メトリクスにのみ使用する追加のディメンション。このフィールドを指定した場合、エージェントにより収集されるすべてのタイプのメトリクスに使用されるappend_dimensionsフィールドで指定されたディメンションに加えて使用されます。
-
-
swap- オプション。収集するスワップメモリメトリクスを指定します。このセクションは、Linux インスタンスでのみ有効です。このセクションには、次のフィールドを含めることができます。-
drop_original_metrics- オプション。metricsセクションのaggregation_dimensionsフィールドを使用してメトリクスを集計結果にロールアップしている場合、デフォルトでは、エージェントは集計メトリクスと、ディメンションの値ごとに分離された元のメトリクスの両方を送信します。元のメトリクスを CloudWatch に送信したくない場合は、メトリクスのリストを使用してこのパラメータを指定できます。このパラメータとともに指定されたメトリクスには、CloudWatch にレポートされるディメンションごとのメトリクスがありません。代わりに、集計されたメトリクスのみがレポートされます。これにより、エージェントが収集するメトリクスの数が減り、コストが削減されます。 -
measurement– 収集する swap メトリクスの配列を指定します。指定できる値はfree、used、およびused_percentです。このフィールドは、swapを含めた場合にのみ必要です。各
swapメトリクスのデフォルトの単位を確認するには、「Linux および macOS インスタンスで CloudWatch エージェントにより収集されるメトリクス」を参照してください。各メトリクスのエントリでは、必要に応じて次のいずれかまたは両方を指定できます。
-
rename– このメトリクスに別の名前を指定します。 -
unit– メトリクスのNoneのNoneのデフォルト単位を上書きして、このメトリクスに使用する単位を指定します。指定する単位は、「MetricDatum」のUnitに関する説明にリストされている有効な CloudWatch メトリクス単位でなければなりません。
-
-
metrics_collection_interval- オプション。設定ファイルのmetrics_collection_intervalセクションで指定されたグローバルなagentを上書きして、swap メトリクスを収集する頻度を指定します。この値は数秒で指定されます。
この値を 60 秒未満に設定した場合、各メトリクスは高解像度メトリクスとして収集されます。高解像度メトリクスの詳細については、「高解像度のメトリクス」を参照してください。
-
append_dimensions- オプション。swap メトリクスにのみ使用する追加のディメンション。このフィールドを指定した場合、エージェントにより収集されるすべてのタイプのメトリクスに使用されるグローバルappend_dimensionsフィールドで指定されたディメンションに加えて使用されます。高解像度メトリクスとして収集されます。
-
-
mem- オプション。収集するメモリメトリクスを指定します。このセクションは、Linux インスタンスでのみ有効です。このセクションには、次のフィールドを含めることができます。-
drop_original_metrics- オプション。metricsセクションのaggregation_dimensionsフィールドを使用してメトリクスを集計結果にロールアップしている場合、デフォルトでは、エージェントは集計メトリクスと、ディメンションの値ごとに分離された元のメトリクスの両方を送信します。元のメトリクスを CloudWatch に送信したくない場合は、メトリクスのリストを使用してこのパラメータを指定できます。このパラメータとともに指定されたメトリクスには、CloudWatch にレポートされるディメンションごとのメトリクスがありません。代わりに、集計されたメトリクスのみがレポートされます。これにより、エージェントが収集するメトリクスの数が減り、コストが削減されます。 -
measurement– 収集する memory メトリクスの配列を指定します。指定できる値はactive、available、available_percent、buffered、cached、free、inactive、total、used、used_percentです。このフィールドは、memを含めた場合にのみ必要です。各
memメトリクスのデフォルトの単位を確認するには、「Linux および macOS インスタンスで CloudWatch エージェントにより収集されるメトリクス」を参照してください。各メトリクスのエントリでは、必要に応じて次のいずれかまたは両方を指定できます。
-
rename– このメトリクスに別の名前を指定します。 -
unit– メトリクスのNoneのデフォルト単位を上書きして、このメトリクスに使用する単位を指定します。指定する単位は、「MetricDatum」のUnitに関する説明にリストされている有効な CloudWatch メトリクス単位でなければなりません。
-
-
metrics_collection_interval- オプション。設定ファイルのmetrics_collection_intervalセクションで指定されたグローバルなagentを上書きして、mem メトリクスを収集する頻度を指定します。この値は数秒で指定されます。
この値を 60 秒未満に設定した場合、各メトリクスは高解像度メトリクスとして収集されます。高解像度メトリクスの詳細については、「高解像度のメトリクス」を参照してください。
-
append_dimensions- オプション。mem メトリクスにのみ使用する追加のディメンション。このフィールドを指定した場合、エージェントによって収集されるすべてのタイプのメトリクスに使用されるappend_dimensionsフィールドで指定されたディメンションに加えて使用されます。
-
-
net- オプション。収集するネットワーキングメトリクスを指定します。このセクションは、Linux インスタンスでのみ有効です。このセクションには、次のフィールドを含めることができます。-
drop_original_metrics- オプション。metricsセクションのaggregation_dimensionsフィールドを使用してメトリクスを集計結果にロールアップしている場合、デフォルトでは、エージェントは集計メトリクスと、ディメンションの値ごとに分離された元のメトリクスの両方を送信します。元のメトリクスを CloudWatch に送信したくない場合は、メトリクスのリストを使用してこのパラメータを指定できます。このパラメータとともに指定されたメトリクスには、CloudWatch にレポートされるディメンションごとのメトリクスがありません。代わりに、集計されたメトリクスのみがレポートされます。これにより、エージェントが収集するメトリクスの数が減り、コストが削減されます。 -
resources- オプション。ネットワークインターフェイスの配列を指定した場合、CloudWatch はそれらのインターフェイスからのみメトリクスを収集します。それ以外の場合、すべてのデバイスのメトリクスが収集されます。また、値として*を指定し、すべてのインターフェイスからメトリクスを収集することもできます。 -
measurement– 収集する networking メトリクスの配列を指定します。指定できる値はbytes_sent、bytes_recv、drop_in、drop_out、err_in、err_out、packets_sent、およびpackets_recvです。このフィールドは、netを含めた場合にのみ必要です。各
netメトリクスのデフォルトの単位を確認するには、「Linux および macOS インスタンスで CloudWatch エージェントにより収集されるメトリクス」を参照してください。各メトリクスのエントリでは、必要に応じて次のいずれかまたは両方を指定できます。
-
rename– このメトリクスに別の名前を指定します。 -
unit– メトリクスのNoneのデフォルト単位を上書きして、このメトリクスに使用する単位を指定します。指定する単位は、「MetricDatum」のUnitに関する説明にリストされている有効な CloudWatch メトリクス単位でなければなりません。
-
-
metrics_collection_interval- オプション。設定ファイルのmetrics_collection_intervalセクションで指定されたグローバルなagentを上書きして、net メトリクスを収集する頻度を指定します。この値は数秒で指定されます。例えば、10 と設定するとメトリクスが 10 秒ごとに収集されるようになり、300 と設定するとメトリクスが 5 分ごとに収集されように指定されます。
この値を 60 秒未満に設定した場合、各メトリクスは高解像度メトリクスとして収集されます。高解像度メトリクスの詳細については、「高解像度のメトリクス」を参照してください。
-
append_dimensions- オプション。net メトリクスにのみ使用する追加のディメンション。このフィールドを指定した場合、エージェントにより収集されるすべてのタイプのメトリクスに使用されるappend_dimensionsフィールドで指定されたディメンションに加えて使用されます。
-
-
netstat- オプション。収集する TCP 接続状態と UDP 接続メトリクスを指定します。このセクションは、Linux インスタンスでのみ有効です。このセクションには、次のフィールドを含めることができます。-
drop_original_metrics- オプション。metricsセクションのaggregation_dimensionsフィールドを使用してメトリクスを集計結果にロールアップしている場合、デフォルトでは、エージェントは集計メトリクスと、ディメンションの値ごとに分離された元のメトリクスの両方を送信します。元のメトリクスを CloudWatch に送信したくない場合は、メトリクスのリストを使用してこのパラメータを指定できます。このパラメータとともに指定されたメトリクスには、CloudWatch にレポートされるディメンションごとのメトリクスがありません。代わりに、集計されたメトリクスのみがレポートされます。これにより、エージェントが収集するメトリクスの数が減り、コストが削減されます。 -
measurement– 収集する netstat メトリクスの配列を指定します。指定できる値はtcp_close、tcp_close_wait、tcp_closing、tcp_established、tcp_fin_wait1、tcp_fin_wait2、tcp_last_ack、tcp_listen、tcp_none、tcp_syn_sent、tcp_syn_recv、tcp_time_wait、およびudp_socketです。このフィールドは、netstatを含めた場合にのみ必要です。各
netstatメトリクスのデフォルトの単位を確認するには、「Linux および macOS インスタンスで CloudWatch エージェントにより収集されるメトリクス」を参照してください。各メトリクスのエントリでは、必要に応じて次のいずれかまたは両方を指定できます。
-
rename– このメトリクスに別の名前を指定します。 -
unit– メトリクスのNoneのデフォルト単位を上書きして、このメトリクスに使用する単位を指定します。指定する単位は、「MetricDatum」のUnitに関する説明にリストされている有効な CloudWatch メトリクス単位でなければなりません。
-
-
metrics_collection_interval- オプション。設定ファイルのmetrics_collection_intervalセクションで指定されたグローバルなagentを上書きして、netstat メトリクスを収集する頻度を指定します。この値は数秒で指定されます。
この値を 60 秒未満に設定した場合、各メトリクスは高解像度メトリクスとして収集されます。高解像度メトリクスの詳細については、「高解像度のメトリクス」を参照してください。
-
append_dimensions- オプション。netstat メトリクスにのみ使用する追加のディメンション。このフィールドを指定した場合、エージェントにより収集されるすべてのタイプのメトリクスに使用されるappend_dimensionsフィールドで指定されたディメンションに加えて使用されます。
-
-
processes- オプション。収集するプロセスメトリクスを指定します。このセクションは、Linux インスタンスでのみ有効です。このセクションには、次のフィールドを含めることができます。-
drop_original_metrics- オプション。metricsセクションのaggregation_dimensionsフィールドを使用してメトリクスを集計結果にロールアップしている場合、デフォルトでは、エージェントは集計メトリクスと、ディメンションの値ごとに分離された元のメトリクスの両方を送信します。元のメトリクスを CloudWatch に送信したくない場合は、メトリクスのリストを使用してこのパラメータを指定できます。このパラメータとともに指定されたメトリクスには、CloudWatch にレポートされるディメンションごとのメトリクスがありません。代わりに、集計されたメトリクスのみがレポートされます。これにより、エージェントが収集するメトリクスの数が減り、コストが削減されます。 -
measurement– 収集する processes メトリクスの配列を指定します。指定できる値はblocked、dead、idle、paging、running、sleeping、stopped、total、total_threads、wait、zombiesです。このフィールドは、processesを含めた場合にのみ必要です。すべての
processesメトリクスで、デフォルトの単位はNoneです。各メトリクスのエントリでは、必要に応じて次のいずれかまたは両方を指定できます。
-
rename– このメトリクスに別の名前を指定します。 -
unit– メトリクスのNoneのデフォルト単位を上書きして、このメトリクスに使用する単位を指定します。指定する単位は、「MetricDatum」のUnitに関する説明にリストされている有効な CloudWatch メトリクス単位でなければなりません。
-
-
metrics_collection_interval- オプション。設定ファイルのmetrics_collection_intervalセクションで指定されたグローバルなagentを上書きして、processes メトリクスを収集する頻度を指定します。この値は数秒で指定されます。例えば、10 と設定するとメトリクスが 10 秒ごとに収集されるようになり、300 と設定するとメトリクスが 5 分ごとに収集されように指定されます。
この値を 60 秒未満に設定した場合、各メトリクスは高解像度メトリクスとして収集されます。詳細については、「高解像度のメトリクス」を参照してください。
-
append_dimensions- オプション。process メトリクスにのみ使用する追加のディメンション。このフィールドを指定した場合、エージェントにより収集されるすべてのタイプのメトリクスに使用されるappend_dimensionsフィールドで指定されたディメンションに加えて使用されます。
-
-
nvidia_gpu- オプション。収集する NVIDIA GPU メトリクスを指定します。このセクションは、NVIDIA GPU アクセラレーターで設定され、NVIDIA System Management Interface (nvidia-smi) がインストールされているホスト上の Linux インスタンスについてのみ有効です。収集される NVIDIA GPU メトリクスには、他のアクセラレータータイプ用に収集されるメトリクスと区別するために、
nvidia_smi_という文字列のプレフィックスが付けられます。このセクションには、次のフィールドを含めることができます。-
drop_original_metrics- オプション。metricsセクションのaggregation_dimensionsフィールドを使用してメトリクスを集計結果にロールアップしている場合、デフォルトでは、エージェントは集計メトリクスと、ディメンションの値ごとに分離された元のメトリクスの両方を送信します。元のメトリクスを CloudWatch に送信したくない場合は、メトリクスのリストを使用してこのパラメータを指定できます。このパラメータとともに指定されたメトリクスには、CloudWatch にレポートされるディメンションごとのメトリクスがありません。代わりに、集計されたメトリクスのみがレポートされます。これにより、エージェントが収集するメトリクスの数が減り、コストが削減されます。 -
measurement– 収集する NVIDIA GPU メトリクスの配列を指定します。ここで使用できる値のリストについては、NVIDIA GPU メトリクスを収集する の表の [Metric] (メトリクス) 列を参照してください。各メトリクスのエントリでは、必要に応じて次のいずれかまたは両方を指定できます。
-
rename– このメトリクスに別の名前を指定します。 -
unit– メトリクスのNoneのデフォルト単位を上書きして、このメトリクスに使用する単位を指定します。指定する単位は、「MetricDatum」のUnitに関する説明にリストされている有効な CloudWatch メトリクス単位でなければなりません。
-
-
metrics_collection_interval- オプション。設定ファイルのagentセクションで指定されたグローバルなmetrics_collection_intervalを上書きして、NVIDIA GPU メトリクスを収集する頻度を指定します。
-
-
jmx- オプション。インスタンスから Java Management Extensions (JMX) メトリクスを取得することを指定します。このセクションで使用できるパラメータ、ならびに収集できるメトリクスの詳細については、「Java Management Extensions (JMX) メトリクスの収集」を参照してください。 -
otlp- オプション。OpenTelemetry SDK からメトリクスを収集することを指定します。このセクションで使用できるフィールドの詳細については、「OpenTelemetry を使用してメトリクスとトレースを収集する」を参照してください。 -
procstat- オプション。個別のプロセスからメトリクスを取得することを指定します。procstat で使用できる設定オプションの詳細については、「procstat プラグインでプロセスメトリクスを収集する」を参照してください 。 -
statsd- オプション。StatsDプロトコルを使用してカスタムメトリクスを取得することを指定します。CloudWatch エージェントは、プロトコルのデーモンとして機能します。スタンダードStatsDクライアントを使用して CloudWatch エージェントにメトリクスを送信します。StatsD で使用できる設定オプションの詳細については、「StatsD を使用してカスタムメトリクスを取得する」を参照してください。 -
ethtool- オプション。ethtoolプラグインを使用してネットワークメトリクスを取得することを指定します。このプラグインは、標準 ethtool ユーティリティによって収集されたメトリクスと、Amazon EC2 インスタンスからのネットワークパフォーマンスメトリクスの両方をインポートできます。ethtool で使用できる設定オプションの詳細については、「ネットワークパフォーマンスメトリクスの収集」を参照してください。
Linux サーバーの metrics セクションの例を次に示します。この例では、3 つの CPU メトリクス、3 つの netstat メトリクス、3 つのプロセスメトリクス、および 1 つのディスクメトリクスが収集され、エージェントは collectd クライアントから追加のメトリクスを受信するように設定されています。
"metrics": { "aggregation_dimensions" : [["AutoScalingGroupName"], ["InstanceId", "InstanceType"],[]], "metrics_collected": { "collectd": {}, "cpu": { "resources": [ "*" ], "measurement": [ {"name": "cpu_usage_idle", "rename": "CPU_USAGE_IDLE", "unit": "Percent"}, {"name": "cpu_usage_nice", "unit": "Percent"}, "cpu_usage_guest" ], "totalcpu": false, "drop_original_metrics": [ "cpu_usage_guest" ], "metrics_collection_interval": 10, "append_dimensions": { "test": "test1", "date": "2017-10-01" } }, "netstat": { "measurement": [ "tcp_established", "tcp_syn_sent", "tcp_close" ], "metrics_collection_interval": 60 }, "disk": { "measurement": [ "used_percent" ], "resources": [ "*" ], "drop_device": true }, "processes": { "measurement": [ "running", "sleeping", "dead" ] } }, "append_dimensions": { "ImageId": "${aws:ImageId}", "InstanceId": "${aws:InstanceId}", "InstanceType": "${aws:InstanceType}", "AutoScalingGroupName": "${aws:AutoScalingGroupName}" } }
Windows Server
Windows Server の metrics_collected セクションでは、Windows パフォーマンスオブジェクトごとに Memory、Processor、LogicalDisk などのサブセクションを含めることができます。使用可能なオブジェクトとカウンターについては、Microsoft Windows のドキュメントの「パフォーマンスカウンター
各オブジェクトのサブセクション内では、収集するカウンタの measurement 配列を指定します。measurement 配列は、設定ファイルで指定するオブジェクトごとに必要です。resources フィールドを指定して、メトリクスの収集元のインスタンスを指定することもできます。また、* に resources を指定し、すべてのインスタンスの別個のメトリクスを収集することもできます。インスタンスのあるカウンターの resources を省略すると、すべてのインスタンスのデータが 1 つのセットに集約されます。インスタンスのないカウンターの resources を省略すると、CloudWatch エージェントはカウンターを収集しません。カウンターにインスタンスがあるかどうかを判断するには、次のコマンドのいずれかを使用します。
Powershell:
Get-Counter -ListSet *
コマンドライン (Powershell ではない):
TypePerf.exe –q
各オブジェクトセクション内で、以下のオプションフィールドを指定することもできます。
-
metrics_collection_interval- オプション。設定ファイルのmetrics_collection_intervalセクションで指定されたグローバルなagentを上書きして、このオブジェクトのメトリクスを収集する頻度を指定します。この値は数秒で指定されます。例えば、10 と設定するとメトリクスが 10 秒ごとに収集されるようになり、300 と設定するとメトリクスが 5 分ごとに収集されように指定されます。
この値を 60 秒未満に設定した場合、各メトリクスは高解像度メトリクスとして収集されます。詳細については、「高解像度のメトリクス」を参照してください。
-
append_dimensions- オプション。このオブジェクトのメトリクスにのみ使用する追加のディメンションを指定します。このフィールドを指定した場合、エージェントにより収集されるすべてのタイプのメトリクスに使用されるグローバルappend_dimensionsフィールドで指定されたディメンションに加えて使用されます。 -
drop_original_metrics- オプション。metricsセクションのaggregation_dimensionsフィールドを使用してメトリクスを集計結果にロールアップしている場合、デフォルトでは、エージェントは集計メトリクスと、ディメンションの値ごとに分離された元のメトリクスの両方を送信します。元のメトリクスを CloudWatch に送信したくない場合は、メトリクスのリストを使用してこのパラメータを指定できます。このパラメータとともに指定されたメトリクスには、CloudWatch にレポートされるディメンションごとのメトリクスがありません。代わりに、集計されたメトリクスのみがレポートされます。これにより、エージェントが収集するメトリクスの数が減り、コストが削減されます。
各カウンタセクション内で、以下のオプションフィールドを指定することもできます。
-
rename– このメトリクスに、CloudWatch で使用する別の名前を指定します。 -
unit– このメトリクスに使用する単位を指定します。指定する単位は、「MetricDatum」のUnitに関する説明にリストされている有効な CloudWatch メトリクス単位でなければなりません。
metrics_collected には、他にもオプションのセクションがあります。
-
statsd–StatsDプロトコルを使用してカスタムメトリクスを取得できます。CloudWatch エージェントは、プロトコルのデーモンとして機能します。スタンダードStatsDクライアントを使用して CloudWatch エージェントにメトリクスを送信します。詳細については、「StatsD を使用してカスタムメトリクスを取得する」を参照してください。 -
procstat– 個別のプロセスからメトリクスを取得できます。詳細については、「procstat プラグインでプロセスメトリクスを収集する」を参照してください。 -
jmx- オプション。インスタンスから Java Management Extensions (JMX) メトリクスを取得することを指定します。このセクションで使用できるフィールド、ならびに収集できるメトリクスの詳細については、「Java Management Extensions (JMX) メトリクスの収集」を参照してください。 -
otlp- オプション。OpenTelemetry SDK からメトリクスを収集することを指定します。このセクションで使用できるフィールドの詳細については、「OpenTelemetry を使用してメトリクスとトレースを収集する」を参照してください。
Windows Server で使用する metrics セクションの例を次に示します。この例では、多くの Windows メトリクスが収集され、コンピュータは StatsD クライアントから追加のメトリクスを受信するように設定されています。
"metrics": { "metrics_collected": { "statsd": {}, "Processor": { "measurement": [ {"name": "% Idle Time", "rename": "CPU_IDLE", "unit": "Percent"}, "% Interrupt Time", "% User Time", "% Processor Time" ], "resources": [ "*" ], "append_dimensions": { "d1": "win_foo", "d2": "win_bar" } }, "LogicalDisk": { "measurement": [ {"name": "% Idle Time", "unit": "Percent"}, {"name": "% Disk Read Time", "rename": "DISK_READ"}, "% Disk Write Time" ], "resources": [ "*" ] }, "Memory": { "metrics_collection_interval": 5, "measurement": [ "Available Bytes", "Cache Faults/sec", "Page Faults/sec", "Pages/sec" ], "append_dimensions": { "d3": "win_bo" } }, "Network Interface": { "metrics_collection_interval": 5, "measurement": [ "Bytes Received/sec", "Bytes Sent/sec", "Packets Received/sec", "Packets Sent/sec" ], "resources": [ "*" ], "append_dimensions": { "d3": "win_bo" } }, "System": { "measurement": [ "Context Switches/sec", "System Calls/sec", "Processor Queue Length" ], "append_dimensions": { "d1": "win_foo", "d2": "win_bar" } } }, "append_dimensions": { "ImageId": "${aws:ImageId}", "InstanceId": "${aws:InstanceId}", "InstanceType": "${aws:InstanceType}", "AutoScalingGroupName": "${aws:AutoScalingGroupName}" }, "aggregation_dimensions" : [["ImageId"], ["InstanceId", "InstanceType"], ["d1"],[]] } }
logs セクションには、次のフィールドが含まれます。
-
service.name- オプション。エンティティに入力して関連するテレメトリを検索するために使用されるサービス名を指定します。 -
deployment.environment- オプション。エンティティに入力して関連するテレメトリを検索するために使用される環境名を指定します。 -
logs_collected–logsセクションが含まれている場合に必要です。サーバーから収集するログファイルおよび Windows イベントログを指定します。filesとwindows_eventsの 2 つのフィールドを含めることができます。-
files– CloudWatch エージェントが収集する定期的なログファイルを指定します。1 つのフィールドcollect_listが含まれます。このフィールドでは、これらのファイルを詳細に定義します。-
collect_list–filesが含まれている場合に必要です。エントリの配列が含まれており、それぞれ収集するログファイルを 1 つ指定します。これらの各エントリには、次のフィールドを含めることができます。-
file_path– CloudWatch Logs にアップロードするログファイルのパスを指定します。スーパーアスタリスクとして**を追加すると、標準 Unix glob マッチングルールが受け入れられます。たとえば、/var/log/**.logと指定すると.logディレクトリツリー内のすべての/var/logファイルが収集されます。他の例については、「Glob Library」を参照してください。 また、標準のアスタリスクを標準のワイルドカードとして使用することもできます。例えば、
/var/log/system.log*は、/var/log内の、system.log_1111、system.log_2222などのファイルに一致します。ファイルの変更時間に基づいて、最新のファイルのみが CloudWatch Logs にプッシュされます。
access_log.2018-06-01-01とaccess_log.2018-06-01-02など同じ形式の一連のファイルを指定するにはワイルドカードの使用をお勧めします。ただし、access_log_80とaccess_log_443のように複数の種類のファイルには使用しないでください。複数の種類のファイルを指定するには、エージェント設定ファイルに別のストリームログのエントリを追加して、各種類のログファイルが異なるログストリームに行くようにします。 -
auto_removal- オプション。これがtrueである場合、CloudWatch エージェントは、このログファイルを、読み取りとローテーションが完了した後に自動的に削除します。通常、ログファイルは、そのコンテンツ全体が CloudWatch Logs にアップロードされた後に削除されますが、エージェントが EOF (ファイルの終わり) に達し、同じfile_pathに一致する別の新しいログファイルも検出した場合、エージェントは古いファイルを削除します。したがって、新しいファイルの作成前に、古いファイルへの記述を確実に完了する必要があります。RUST トレースライブラリには既知の非互換性があります。これは、新しいログファイルが作成された後も、古いログファイルへの書き込みが試行される可能性があることが原因です。 エージェントは、日別に異なるファイルを作成するログなど、複数のファイルを作成するログから完全なファイルのみを削除します。ログが 1 つのファイルに継続的に書き込まれる場合、そのファイルは削除されません。
ログファイルの更新方法や削除方法が設定済みである場合は、このフィールドを省略するか、
falseに設定することをお勧めします。このフィールドを省略した場合は、デフォルト値の
falseが使用されます。 -
log_group_name- オプション。CloudWatch Logs でロググループ名として何を使用するかを指定します。混乱を避けるため、このフィールドを使用してロググループ名を指定することをお勧めします。
log_group_nameを省略した場合、末尾のドットまでのfile_pathの値がロググループ名として使用されます。たとえば、ファイルパスが/tmp/TestLogFile.log.2017-07-11-14の場合、ロググループ名は/tmp/TestLogFile.logです。ロググループ名を指定する場合、
{instance_id}、{hostname}、{local_hostname}、{ip_address}を変数として使用できます。{hostname}は EC2 メタデータからホスト名を取得し、{local_hostname}はネットワーク設定ファイルからホスト名を使用します。これらの変数を使用して多くの異なるロググループを作成する場合は、1 リージョン、1 アカウントあたり 100 万ロググループという制限を念頭に置いてください。
ここで使えるのは、a~z、A~Z、0~9、"_" (アンダーバー)、"-" (ハイフン)、"/" (スラッシュ) および "." (ピリオド) です。
-
log_group_class- オプション。新しいロググループに使用するロググループクラスを指定します。ロググループクラスの詳細については、「Log classes」を参照してください。有効な値は、
STANDARDおよびINFREQUENT_ACCESSです。このフィールドを省略した場合、STANDARDのデフォルトが使用されます。重要
ロググループの作成後に、ロググループクラスを変更することはできません。
-
log_stream_name- オプション。CloudWatch Logs でログストリーム名として何を使用するかを指定します。名前の一部として、名前では変数として{instance_id}、{hostname}、{local_hostname}、{ip_address}を使用することができます。{hostname}は、EC2 メタデータからホスト名を取得し、{local_hostname}は、ネットワーク設定ファイルからホスト名を使用します。このフィールドを省略すると、グローバル
log_stream_nameセクションのlogsパラメータの値が使用されます。これも省略すると、{instance_id}のデフォルト値が使用されます。ログストリームが存在しない場合には、自動的に作成されます。
-
retention_in_days- オプション。指定されたロググループにログイベントを保持する日数を指定します。-
エージェントがこのロググループを作成中なら、このフィールドを省略すると、この新しいロググループが無期限に保持されるように設定されます。
-
このロググループが既に存在していて、このフィールドを指定すると、指定した新しい保存期間が使用されます。既に存在するロググループで、このフィールドを省略した場合、ロググループの保持は変更されません。
CloudWatch エージェントウィザードは、このフィールドのデフォルト値として
-1を使用します。これは、エージェント設定ファイルを作成する場合で、ログ保持の値を指定しない場合に使用されます。ウィザードが設定するこの-1の値によって、ロググループ内のイベントが期限切れにならないよう指定されます。ただし、この値を手動で-1に編集しても効果はありません。
有効な値は 1、3、5、7、14、30、60、90、120、150、180、365、400、545、731、1827、2192、2557、2922、3288、および 3653 です。
同じロググループに複数のログストリームを書き込むようにエージェントを設定する場合、1 つの場所で
retention_in_daysを指定すると、ロググループ全体のログの保持が設定されます。複数の場所で同じロググループ向けにretention_in_daysを指定した場合、それらの値がすべて等しい場合に保持が設定されます。ただし、複数の場所で同じロググループに異なるretention_in_daysの値が指定されている場合、ログの保持は設定されず、エージェントは停止してエラーを返します。注記
エージェントの IAM ロールまたは IAM ユーザーが保持ポリシーを設定するには、
logs:PutRetentionPolicyを持っている必要があります。警告
既に存在するロググループ向けに
retention_in_daysを設定した場合、指定した日数より前に発行されたそのロググループ内のすべてのログが削除されます。例えば、3 に設定すると、3 日以上前のすべてのログが削除されます。 -
-
filters- オプション。エントリの配列を含めることができます。各エントリは、正規表現とフィルタータイプを指定し、フィルターに一致するログエントリを発行またはドロップするかどうかを指定します。このフィールドを省略すると、ログファイル内のすべてのログが CloudWatch Logs に発行されます。このフィールドを含めると、エージェントは指定したすべてのフィルターを使用して各ログメッセージを処理し、すべてのフィルターを通過するログイベントのみが CloudWatch Logs に発行されます。一部のフィルターを通過しないログエントリは、ホストのログファイルに残りますが、CloudWatch Logs には送信されません。フィルター配列の各エントリには、次のフィールドを含めることができます。
-
type– フィルターのタイプを示します。有効な値は、includeおよびexcludeです。includeでは、ログエントリは CloudWatch Logs に発行される式と一致する必要があります。excludeでは、フィルターに一致する各ログエントリは CloudWatch Logs に送信されません。 -
expression– RE2 Syntaxに続く正規表現の文字列。 注記
CloudWatch エージェントは、指定した正規表現のパフォーマンスをチェックしたり、正規表現の評価の実行時間を制限したりしません。評価に多くのコストがかかる表現を記述しないように注意することをおすすめします。発生する可能性のある問題の詳細については、「Regular expression Denial of Service - ReDoS
」(正規表現のサービス拒否 - ReDoS) を参照してください。
例えば、次の CloudWatch エージェント設定ファイルの抜粋は、PUT および POST リクエストであるログを CloudWatch Logs に発行しますが、Firefox からのログは除外されます。
"collect_list": [ { "file_path": "/opt/aws/amazon-cloudwatch-agent/logs/test.log", "log_group_name": "test.log", "log_stream_name": "test.log", "filters": [ { "type": "exclude", "expression": "Firefox" }, { "type": "include", "expression": "P(UT|OST)" } ] }, ..... ]注記
設定ファイル内のフィルターの順序は、パフォーマンス上重要です。前述の例において、エージェントは 2 番目のフィルターの評価を開始する前に、
Firefoxに一致するすべてのログをドロップします。複数のフィルターで評価されるログエントリを少なくするには、より多くのログを除外するフィルターを設定ファイルに最初に配置します。 -
-
timezone- オプション。ログイベントにタイムスタンプを付けるときに使用するタイムゾーンを指定します。有効な値はUTCおよびLocalです。デフォルト値はLocalです。timestamp_formatの値を指定しない場合、このパラメータは無視されます。 -
timestamp_format- オプション。% で始まる特殊記号とプレーンテキストを使用して、タイムスタンプ形式を指定します。このフィールドを省略した場合は、現在の時刻が使用されます。このフィールドを使用する場合は、以下のリストの記号を形式の一部に使用することができます。注記
このパラメータは、
file_pathがamazon-cloudwatch-agent.logに設定されている場合、考慮されません。1 つのログエントリに、形式に一致する 2 つのタイムスタンプが含まれている場合、最初のタイムスタンプが使用されます。
この記号のリストは、以前の CloudWatch Logs エージェントで使用されるリストとは異なります。このような違いの概要については、「CloudWatch エージェントと前の CloudWatch Logs エージェントとの間のタイムスタンプの違い」を参照してください。
%y-
ゼロ詰め 10 進数での年 (世紀なし) たとえば
19で 2019 を表します。 %Y-
10 進数での年 (世紀あり) 例えば、
2019。 %b-
ロケールの省略名称での月
%B-
ロケールの正式名称での月
%m-
ゼロ詰め 10 進数での月
%-m-
10 進数での月 (ゼロ詰めなし)
%d-
ゼロ詰め 10 進数での日
%-d-
10 進数での日 (ゼロ詰めなし)
%A-
曜日のフルネーム。
Mondayなど %a-
曜日の略称。
Monなど %H-
ゼロ詰め 10 進数での時 (24 時間形式の時計)
%I-
ゼロ詰め 10 進数での時 (12 時間形式の時計)
%-I-
10 進数での時間 (12 時間制) (ゼロ詰めなし)
%p-
AM または PM
%M-
ゼロ詰め 10 進数での分
%-M-
10 進数での分 (ゼロ詰めなし)
%S-
ゼロ詰め 10 進数での秒
%-S-
10 進数での秒 (ゼロ詰めなし)
%f-
10 進数 (1~9 桁) での少数秒 (左側をゼロ詰め)
%Z-
タイムゾーン。
PSTなど %z-
タイムゾーンは、ローカルタイムゾーンと UTC の間のオフセットとして表されます。例えば、
-0700。この形式のみがサポートされています。たとえば、-07:00は有効な形式ではありません。
-
multi_line_start_pattern– ログメッセージの開始を識別するパターンを指定します。ログメッセージは、パターンに一致する 1 行と、後続パターンに一致しない行で構成されます。このフィールドを指定しない場合、複数行モードが無効になり、空白文字以外の文字で始まる行は、前のログメッセージを終了して新しいログメッセージを開始します。
このフィールドを含める場合、
{timestamp_format}を指定してタイムスタンプ形式と同じ正規表現を使用できます。それ以外の場合、CloudWatch Logs が複数行エントリの最初の行を判断するために使用する別の正規表現を指定できます。 -
encoding– 正しく読み込むことができるように、ログファイルのエンコードを指定します。正しくないエンコードを指定すると、デコードできない文字がその他の文字に置き換えられるため、データ損失が生じる可能性があります。デフォルト値は
utf-8です。指定できる値は以下のとおりです。ascii, big5, euc-jp, euc-kr, gbk, gb18030, ibm866, iso2022-jp, iso8859-2, iso8859-3, iso8859-4, iso8859-5, iso8859-6, iso8859-7, iso8859-8, iso8859-8-i, iso8859-10, iso8859-13, iso8859-14, iso8859-15, iso8859-16, koi8-r, koi8-u, macintosh, shift_jis, utf-8, utf-16, utf-16le, UTF-16, UTF-16LE, windows-874, windows-1250, windows-1251, windows-1252, windows-1253, windows-1254, windows-1255, windows-1256, windows-1257, windows-1258, x-mac-cyrillic -
service.name- オプション。エンティティに入力して関連するテレメトリを検索するために使用されるサービス名を指定します。 -
deployment.environment- オプション。エンティティに入力して関連するテレメトリを検索するために使用される環境名を指定します。
-
-
-
windows_eventsセクションでは、Windows Server を実行しているサーバーから収集する Windows イベントのタイプを指定します。次のフィールドが含まれています。-
collect_list–windows_eventsが含まれている場合に必要です。収集する Windows イベントのタイプとレベルを指定します。収集される各ログには、このセクションのエントリがあります。次のフィールドが含まれる可能性があります。-
event_name– ログ記録する Windows イベントのタイプを指定します。これは Windows イベントログのチャネル名と同等です。たとえば、System、Security、Applicationなどがあります。このフィールドは、ログ記録する Windows イベントのタイプごとに必要です。注記
CloudWatch が Windows ログチャネルからメッセージを取得する際には、
Full Nameプロパティに基づき、そのログチャネルがルックアップされます。その間、Windows イベントビューアのナビゲーションペインには、ログチャネルのLog Nameプロパティが表示されます。Full NameとLog Nameは必ずしも一致しません。チャンネルのFull Nameを確認するには、Windows イベントビューアでチャンネルを右クリックし、[プロパティ] を開きます。 -
event_levels- オプション。ログに記録するイベントのレベルを指定します。ログ記録する各レベルを指定する必要があります。指定できる値には、INFORMATION、WARNING、ERROR、CRITICALおよびVERBOSEなどがあります。このフィールドは、ログに記録する Windows イベントのタイプごとにオプションで設定できます。event_idsやfiltersなどの他のフィルタリングオプションと併用できます。 event_ids- オプション。Windows イベントログから収集するイベントを指定する Windows イベント ID の配列が含まれています。このフィールドを除外すると、指定されたイベントログのすべてのイベントが収集されます。このフィールドを含めると、エージェントは指定されたイベント ID に一致するイベントのみを収集します。event_ids配列内の各エントリは、数値のイベント ID 値である必要があり、他のフィルタリングオプションと併用できます。以下の設定サンプルの 3 番目のエントリを参照してください。注記
イベント ID でフィルタリングする必要がある場合は、正規表現よりも
event_idsをフィルタリングに使用することをお勧めします。これにより、パフォーマンスが向上します。filters- オプション。エントリの配列が含まれます。各エントリは、正規表現とフィルタータイプを指定し、フィルターに一致するログエントリを発行またはドロップするかどうかを指定します。フィールドが含まれている場合、エージェントは指定したすべてのフィルターを使用して各ログメッセージを処理し、すべてのフィルターを通過したログイベントのみが CloudWatch Logs に発行されます。すべてのフィルターに通過しない Windows イベントログは破棄され、CloudWatch Logs に送信されません。フィルターセクションは、イベント ID [4624、4625] やシステムレベル (情報、エラー、重大) などの他のフィルタリングメカニズムと併用して、ログを効果的にフィルタリングして CloudWatch にプッシュすることもできます。フィルター配列の各エントリには、次のフィールドを含めることができます。
type– フィルターのタイプを指定します。有効な値は、includeおよびexcludeです。include を使用する場合、Windows イベントエントリは、CloudWatch Logs に発行される式と一致する必要があります。exclude を使用すると、フィルターに一致する各 Windows イベントログエントリは CloudWatch Logs に送信されません。expression– RE2 Syntax に続く正規表現の文字列。
注記
CloudWatch エージェントは、指定した正規表現を検証しません。また、評価時間も制限されません。パフォーマンスの問題を避けるために、式を慎重に記述してください。セキュリティリスクの詳細については、「Regular expression Denial of Service - ReDoS
」を参照してください。 以下のエージェント設定の例では:
最初のエントリでは、エージェントはデータベース障害メッセージ、認証関連のアクティビティ、すべてのログインイベント (成功した試行と失敗した試行の両方) を含むログを CloudWatch にプッシュします。このパターンに一致しないログはすべてドロップされます。
2 番目のエントリでは、Windows イベントサブスクリプションのイベント ID に基づいて最初のフィルタリングが行われます。エージェントは、文字列ユーザーを含むすべてのログを収集し、これらのパターンに一致しないログを破棄します。エージェントは、残りのログを CloudWatch Logs に送信する前に、
successfulを含むログを削除します。CloudWatch に送信する前に、すべてのフィルタータイプが各 Windows イベントログに適用されます。"collect_list": [ { "event_name": "Application", "log_group_name": "ApplicationEvents", "log_stream_name": "ApplicationEvents", "filters": [ { "type": "include", "expression": "Database.*failed|Authentication.*|login.*" } ] }, { "event_name": "System", "log_group_name": "SystemEvents", "log_stream_name": "Logon-events", "event_ids": [ 4624, 4625 ], "filters": [ { "type": "include", "expression": ".*user.*" }, { "type": "exclude", "expression": ".*successful.*" } ] } ..... ]注記
設定内のフィルターの順序はパフォーマンスに影響します。2 番目のエントリでは、エージェントは 2 番目のフィルター式の評価を開始する前に、ユーザーと一致しないすべてのログをドロップします。最適なパフォーマンスを得るには、除外率の上限から下限までフィルターを並べ替えます。
フィルター式のイベント ID とシステムレベルのログを除外できますが、パフォーマンスを向上させるには、2 番目のエントリに示すように、
event_idsとlog_levelを使用することをお勧めします。警告
すべてのフィルタリングメカニズム (event_levels、event_ids、filters) はオプションですが、ログをフィルタリングするにはエージェント設定中に少なくとも 1 つが必要です。
-
log_group_name– 必須。CloudWatch Logs でロググループ名として何を使用するかを指定します。 -
log_stream_name- オプション。CloudWatch Logs でログストリーム名として何を使用するかを指定します。名前の一部として、名前では変数として{instance_id}、{hostname}、{local_hostname}、{ip_address}を使用することができます。{hostname}は、EC2 メタデータからホスト名を取得し、{local_hostname}は、ネットワーク設定ファイルからホスト名を使用します。このフィールドを省略すると、グローバル
log_stream_nameセクションのlogsパラメータの値が使用されます。これも省略すると、{instance_id}のデフォルト値が使用されます。ログストリームが存在しない場合には、自動的に作成されます。
-
event_format- オプション。Windows のイベントを CloudWatch Logs に保存する際に使用する形式を指定します。xmlは、Windows イベントビューワーと同じように XML 形式を使用します。textは、レガシーの CloudWatch Logs エージェント形式を使用します。 -
retention_in_days- オプション。指定されたロググループに Windows イベントを保持する日数を指定します。-
エージェントがこのロググループを作成中なら、このフィールドを省略すると、この新しいロググループが無期限に保持されるように設定されます。
-
このロググループが既に存在していて、このフィールドを指定すると、指定した新しい保存期間が使用されます。既に存在するロググループで、このフィールドを省略した場合、ロググループの保持は変更されません。
CloudWatch エージェントウィザードは、このフィールドのデフォルト値として
-1を使用します。これは、エージェント設定ファイルを作成する場合で、ログ保持の値を指定しない場合に使用されます。ウィザードが設定するこの-1の値は、ロググループ内のイベントが期限切れにならないよう指定します。ただし、この値を手動で-1に編集しても効果はありません。
有効な値は 1、3、5、7、14、30、60、90、120、150、180、365、400、545、731、1827、2192、2557、2922、3288、および 3653 です。
同じロググループに複数のログストリームを書き込むようにエージェントを設定する場合、1 つの場所で
retention_in_daysを指定すると、ロググループ全体のログの保持が設定されます。複数の場所で同じロググループ向けにretention_in_daysを指定した場合、それらの値がすべて等しい場合に保持が設定されます。ただし、複数の場所で同じロググループに異なるretention_in_daysの値が指定されている場合、ログの保持は設定されず、エージェントは停止してエラーを返します。注記
エージェントの IAM ロールまたは IAM ユーザーが保持ポリシーを設定するには、
logs:PutRetentionPolicyを持っている必要があります。警告
既に存在するロググループ向けに
retention_in_daysを設定した場合、指定した日数より前に発行されたそのロググループ内のすべてのログが削除されます。例えば、3 に設定すると、3 日以上前のすべてのログが削除されます。 -
-
-
-
-
log_stream_name- オプション。log_stream_nameのログや Windows イベントの個別のログストリーム名がcollect_listパラメータに定義されていない場合、代わりに使用するデフォルトのログストリーム名を指定します。 -
endpoint_override– エージェントがログを送信するエンドポイントとして使用する FIPS エンドポイントまたはプライベートリンクを指定します。このフィールドを指定してプライベートリンクを設定すると、Amazon VPC エンドポイントにログを送信できます。詳細については、「Amazon VPC とは」を参照してください。endpoint_overrideの値は URL 文字列であることが必要です。たとえば、設定ファイルの logs セクションの次の部分は、ログを送信するときに VPC エンドポイントを使用するようにエージェントを設定します。
{ "logs": { "endpoint_override": "vpce-XXXXXXXXXXXXXXXXXXXXXXXXX.logs.us-east-1.vpce.amazonaws.com", ...... }, } -
force_flush_interval– ログがサーバーに送信されるまでにメモリバッファ内に残留する最大時間を秒単位で指定します。このフィールドの設定にかかわらず、バッファ内のログのサイズが 1 MB に達すると、ログは即座にサーバーに送信されます。デフォルト値は 5 です。エージェントを使用して高解像度メトリクスを埋め込みメトリクス形式で報告し、それらのメトリクスにアラームを設定する場合は、このパラメータをデフォルト値の 5 に設定してください。それ以外の場合は、メトリクスが遅延して報告され、データが部分的または不完全な場合にアラームが発報する可能性があります。
-
credentials– 異なる AWS アカウントにログを送信する際に使用する IAM ロールを指定します。指定した場合、このフィールドには 1 つのパラメータrole_arnが含まれています。-
role_arn– 異なる AWS アカウントにログを送信する際の認証用 IAM ロールの ARN を指定します。詳細については、「別のアカウントへのメトリクス、ログ、トレースの送信」を参照してください。ここで指定した場合は、設定ファイルのrole_arnセクションで指定されたagentよりも優先されます (存在する場合)。
-
-
metrics_collected- このフィールドには、エージェントにログ収集を指示するセクションを含めることができます。CloudWatch Application Signals と Container Insights のオブザーバビリティを Amazon EKS 向けに強化するといったユースケースを利用できるようになります。-
application_signals(オプション) CloudWatch Application Signals を有効にすることを指定します。この設定の詳細については、「CloudWatch Application Signals を有効にする」を参照してください。 -
kubernetes— このフィールドには、enhanced_container_insightsパラメータを含めることができます。これは、Amazon EKS 向けにオブザーバビリティが強化された Container Insights を有効にするために使用できます。-
enhanced_container_insights— これをtrueに設定すると、Amazon EKS 向けにオブザーバビリティが強化された Container Insights が有効になります。詳細については、「Amazon EKS 向けに拡張オブザーバビリティを備えた Container Insights」を参照してください。 -
accelerated_compute_metrics- Amazon EKS クラスターでの Nvidia GPU メトリクスの収集をオプトアウトするには、これをfalseに設定します。詳細については、「NVIDIA GPU メトリクス」を参照してください。
-
-
emf– ログに埋め込まれたメトリクスを収集するために、このemfフィールドを追加する必要はなくなりました。これは、エージェントが埋め込みメトリクス形式のログを収集するように指定するレガシーフィールドです。これらのログからメトリクスデータを生成できます。詳細については、「ログ内へのメトリクスの埋め込み」を参照してください。 -
otlp- オプション。OpenTelemetry SDK からメトリクスを収集することを指定します。このセクションで使用できるフィールドの詳細については、「OpenTelemetry を使用してメトリクスとトレースを収集する」を参照してください。
-
logs セクションの例を以下に示します。
"logs":{ "logs_collected": { "files": { "collect_list": [ { "file_path": "c:\\ProgramData\\Amazon\\AmazonCloudWatchAgent\\Logs\\amazon-cloudwatch-agent.log", "log_group_name": "amazon-cloudwatch-agent.log", "log_stream_name": "my_log_stream_name_1" }, { "file_path": "c:\\ProgramData\\Amazon\\AmazonCloudWatchAgent\\Logs\\test.log", "log_group_name": "test.log", "log_stream_name": "my_log_stream_name_2" } ] }, "windows_events": { "collect_list": [ { "event_name": "System", "event_ids": [ 1001, 1008 ], "log_group_name": "System", "log_stream_name": "System" }, { "event_name": "CustomizedName", "event_levels": [ "INFORMATION", "ERROR" ], "log_group_name": "CustomizedLogGroup", "log_stream_name": "CustomizedLogStream" }, { "event_name": "Application", "event_levels": [ "INFORMATION", "ERROR" ], "event_ids":[ 7369, 5624 ], "log_group_name": "CustomizedLogGroup", "log_stream_name": "CustomizedLogStream" } ] } }, "log_stream_name": "my_log_stream_name", "metrics_collected": { "kubernetes": { "enhanced_container_insights": true } } }
CloudWatch エージェント設定ファイルに traces セクションを追加することで、CloudWatch Application Signals を有効にできるほか、X-Ray や OpenTelemetry 計測 SDK からトレースを収集して X-Ray に送信することもできます。
重要
エージェントの IAM ロールまたは IAM ユーザーがトレースデータを X-Ray に送信できるようにするには、AWSXrayWriteOnlyAccess ポリシーが必要です。
トレースの収集を簡単に開始するために必要なのは、CloudWatch エージェント設定ファイルに次の内容を追加することだけです。
"traces_collected": { "xray": { }, "otlp": { } }
前のセクションを CloudWatch エージェント設定ファイルに追加してエージェントを再起動すると、エージェントは次のデフォルトのオプションと値を使用してトレースの収集を開始します。これらのパラメータの詳細については、このセクションで後述するパラメータの定義を参照してください。
"traces_collected": { "xray": { "bind_address": "127.0.0.1:2000", "tcp_proxy": { "bind_address": "127.0.0.1:2000" } }, "otlp": { "grpc_endpoint": "127.0.0.1:4317", "http_endpoint": "127.0.0.1:4318" } }
traces セクションでは、次のフィールドを含めることができます。
-
traces_collected–tracesセクションが含まれている場合に必要です。トレースの収集元になる SDK を指定します。次のフィールドを含めることができます。-
application_signals- オプション。CloudWatch Application Signals を有効にすることを指定します。この設定の詳細については、「CloudWatch Application Signals を有効にする」を参照してください。 -
xray- オプション。X-Ray SDK からトレースを収集することを指定します。このセクションには、次のフィールドを含めることができます。-
bind_address- オプション。CloudWatch エージェントが X-Ray のトレースのリッスンに使用する UDP アドレスを指定します。形式はip:portです。このアドレスは、X-Ray SDK で設定されたアドレスと一致する必要があります。このフィールドを省略した場合、
127.0.0.1:2000のデフォルトが使用されます。 -
tcp_proxy- オプション。X-Ray リモートサンプリングをサポートするために使用されるプロキシのアドレスを設定します。詳細については、X-Ray ドキュメントの「サンプリングルールの設定」を参照してください。このセクションには、次のフィールドを含めることができます。
-
bind_address- オプション。CloudWatch エージェントがプロキシを設定する必要がある TCP アドレスを指定します。形式はip:portです。このアドレスは、X-Ray SDK で設定されたアドレスと一致する必要があります。このフィールドを省略した場合、
127.0.0.1:2000のデフォルトが使用されます。
-
-
-
otlp- オプション。OpenTelemetry SDK からトレースを収集することを指定します。このセクションで使用できるフィールドの詳細については、「OpenTelemetry を使用してメトリクスとトレースを収集する」を参照してください)。AWS Distro for OpenTelemetry の詳細については、AWS Distro for OpenTelemetryを参照してください。AWS Distro for OpenTelemetry SDK の詳細については、「はじめに 」を参照してください。 このセクションには、次のフィールドを含めることができます。
-
grpc_endpoint- オプション。gRPC リモートプロシージャコールを使用して送信された OpenTelemetry トレースをリッスンするために使用する CloudWatch エージェントのアドレスを指定します。形式はip:portです。このアドレスは、OpenTelemetry SDK の gRPC エクスポーター用に設定されたアドレスと一致する必要があります。このフィールドを省略した場合、
127.0.0.1:4317のデフォルトが使用されます。 -
http_endpoint- オプション。HTTP 経由で送信される OTLP トレースをリッスンするために CloudWatch エージェントが使用するアドレスを指定します。形式はip:portです。このアドレスは、OpenTelemetry SDK の HTTP エクスポーター用に設定されたアドレスと一致する必要があります。このフィールドを省略した場合、
127.0.0.1:4318のデフォルトが使用されます。
-
-
-
concurrency- オプション。トレースのアップロードに使用できる、X-Ray に対する同時呼び出しの最大数を指定します。デフォルト値は、「8」です。 -
local_mode- オプション。trueの場合、エージェントは Amazon EC2 インスタンスのメタデータを収集しません。デフォルトはfalseです。 -
endpoint_override- オプション。 CloudWatch エージェントがトレースを送信するエンドポイントとして使用する FIPS エンドポイントまたはプライベートリンクを指定します。このフィールドを指定してプライベートリンクを設定すると、Amazon VPC エンドポイントにトレースを送信できます。詳細については、「Amazon VPC とは」を参照してください。endpoint_overrideの値は URL 文字列であることが必要です。 -
region_override- オプション。X-Ray エンドポイント用に使用するリージョンを指定します。CloudWatch エージェントは、指定されたリージョンの X-Ray にトレースを送信します。このフィールドを省略すると、エージェントは Amazon EC2 インスタンスが配置されているリージョンにトレースを送信します。ここでリージョンを指定すると、設定ファイルの
agentセクションのregionパラメータの設定よりも優先されます。 -
proxy_override- オプション。X-Ray にリクエストを送信する際に CloudWatch エージェントが使用するプロキシサーバーアドレスを指定します。プロキシサーバーのプロトコルは、このアドレスの一部として指定する必要があります。 -
credentials– 異なる AWS アカウントにトレースを送信する際に使用する IAM ロールを指定します。指定した場合、このフィールドには 1 つのパラメータrole_arnが含まれています。-
role_arn– 異なる AWS アカウントにトレースを送信する際の認証用 IAM ロールの ARN を指定します。詳細については、「別のアカウントへのメトリクス、ログ、トレースの送信」を参照してください。ここで指定した場合は、設定ファイルのrole_arnセクションで指定されたagentよりも優先されます (存在する場合)。
-
-
transit_spans_in_otlp_format- オプション。trueの場合、OpenTelemetry Protocol 形式でトレースを X-Ray に送信します。これはトランザクション検索のスパンイベントをサポートします。詳細については、「カスタム属性の追加」を参照してください。デフォルトはfalseです。
Linux サーバーの完全な CloudWatch エージェント設定ファイルの例を次に示します。
収集するメトリクスについて measurement セクションにリストされた項目では、完全なメトリクス名、またはリソースのタイプに追加するメトリクス名の一部のみを指定できます。たとえば、reads セクションの diskio_reads セクションで measurement または diskio を指定すると、diskio_reads メトリクスが収集されます。
この例には、measurement セクションでメトリクスを指定するための両方の方法が含まれています。
{ "agent": { "metrics_collection_interval": 10, "logfile": "/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log" }, "metrics": { "namespace": "MyCustomNamespace", "metrics_collected": { "cpu": { "resources": [ "*" ], "measurement": [ {"name": "cpu_usage_idle", "rename": "CPU_USAGE_IDLE", "unit": "Percent"}, {"name": "cpu_usage_nice", "unit": "Percent"}, "cpu_usage_guest" ], "totalcpu": false, "metrics_collection_interval": 10, "append_dimensions": { "customized_dimension_key_1": "customized_dimension_value_1", "customized_dimension_key_2": "customized_dimension_value_2" } }, "disk": { "resources": [ "/", "/tmp" ], "measurement": [ {"name": "free", "rename": "DISK_FREE", "unit": "Gigabytes"}, "total", "used" ], "ignore_file_system_types": [ "sysfs", "devtmpfs" ], "metrics_collection_interval": 60, "append_dimensions": { "customized_dimension_key_3": "customized_dimension_value_3", "customized_dimension_key_4": "customized_dimension_value_4" } }, "diskio": { "resources": [ "*" ], "measurement": [ "reads", "writes", "read_time", "write_time", "io_time" ], "metrics_collection_interval": 60 }, "swap": { "measurement": [ "swap_used", "swap_free", "swap_used_percent" ] }, "mem": { "measurement": [ "mem_used", "mem_cached", "mem_total" ], "metrics_collection_interval": 1 }, "net": { "resources": [ "eth0" ], "measurement": [ "bytes_sent", "bytes_recv", "drop_in", "drop_out" ] }, "netstat": { "measurement": [ "tcp_established", "tcp_syn_sent", "tcp_close" ], "metrics_collection_interval": 60 }, "processes": { "measurement": [ "running", "sleeping", "dead" ] } }, "append_dimensions": { "ImageId": "${aws:ImageId}", "InstanceId": "${aws:InstanceId}", "InstanceType": "${aws:InstanceType}", "AutoScalingGroupName": "${aws:AutoScalingGroupName}" }, "aggregation_dimensions" : [["ImageId"], ["InstanceId", "InstanceType"], ["d1"],[]], "force_flush_interval" : 30 }, "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", "log_stream_name": "amazon-cloudwatch-agent.log", "timezone": "UTC" }, { "file_path": "/opt/aws/amazon-cloudwatch-agent/logs/test.log", "log_group_name": "test.log", "log_stream_name": "test.log", "timezone": "Local" } ] } }, "log_stream_name": "my_log_stream_name", "force_flush_interval" : 15, "metrics_collected": { "kubernetes": { "enhanced_container_insights": true } } } }
Windows Server を実行しているサーバーの完全な CloudWatch エージェント設定ファイルの例を次に示します。
{ "agent": { "metrics_collection_interval": 60, "logfile": "c:\\ProgramData\\Amazon\\AmazonCloudWatchAgent\\Logs\\amazon-cloudwatch-agent.log" }, "metrics": { "namespace": "MyCustomNamespace", "metrics_collected": { "Processor": { "measurement": [ {"name": "% Idle Time", "rename": "CPU_IDLE", "unit": "Percent"}, "% Interrupt Time", "% User Time", "% Processor Time" ], "resources": [ "*" ], "append_dimensions": { "customized_dimension_key_1": "customized_dimension_value_1", "customized_dimension_key_2": "customized_dimension_value_2" } }, "LogicalDisk": { "measurement": [ {"name": "% Idle Time", "unit": "Percent"}, {"name": "% Disk Read Time", "rename": "DISK_READ"}, "% Disk Write Time" ], "resources": [ "*" ] }, "customizedObjectName": { "metrics_collection_interval": 60, "customizedCounterName": [ "metric1", "metric2" ], "resources": [ "customizedInstances" ] }, "Memory": { "metrics_collection_interval": 5, "measurement": [ "Available Bytes", "Cache Faults/sec", "Page Faults/sec", "Pages/sec" ] }, "Network Interface": { "metrics_collection_interval": 5, "measurement": [ "Bytes Received/sec", "Bytes Sent/sec", "Packets Received/sec", "Packets Sent/sec" ], "resources": [ "*" ], "append_dimensions": { "customized_dimension_key_3": "customized_dimension_value_3" } }, "System": { "measurement": [ "Context Switches/sec", "System Calls/sec", "Processor Queue Length" ] } }, "append_dimensions": { "ImageId": "${aws:ImageId}", "InstanceId": "${aws:InstanceId}", "InstanceType": "${aws:InstanceType}", "AutoScalingGroupName": "${aws:AutoScalingGroupName}" }, "aggregation_dimensions" : [["ImageId"], ["InstanceId", "InstanceType"], ["d1"],[]] }, "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "c:\\ProgramData\\Amazon\\AmazonCloudWatchAgent\\Logs\\amazon-cloudwatch-agent.log", "log_group_name": "amazon-cloudwatch-agent.log", "timezone": "UTC" }, { "file_path": "c:\\ProgramData\\Amazon\\AmazonCloudWatchAgent\\Logs\\test.log", "log_group_name": "test.log", "timezone": "Local" } ] }, "windows_events": { "collect_list": [ { "event_name": "System", "event_levels": [ "INFORMATION", "ERROR" ], "log_group_name": "System", "log_stream_name": "System", "event_format": "xml" }, { "event_name": "CustomizedName", "event_levels": [ "WARNING", "ERROR" ], "log_group_name": "CustomizedLogGroup", "log_stream_name": "CustomizedLogStream", "event_format": "xml" } ] } }, "log_stream_name": "example_log_stream_name" } }
CloudWatch エージェント設定ファイルを手動で保存するには
CloudWatch エージェント設定ファイルを手動で作成または編集する場合は、任意の名前を付けることができます。ファイルを作成したら、エージェントを実行する他のサーバーにそのファイルをコピーできます。
CloudWatch エージェント設定ファイルの Systems Manager Parameter Store へのアップロード
SSM Agent を使用して CloudWatch エージェントをサーバーにインストールする場合は、CloudWatch エージェント設定ファイルを手動で編集した後、Systems Manager Parameter Store にアップロードできます。これを行うには、Systems Manager put-parameter コマンドを使用します。
Parameter Store にファイルを保存できるようにするには、十分なアクセス権限を持つ IAM ロールを使用する必要があります。
次のコマンドを使用します。ここで、parameter name は Parameter Store でこのファイルに使用する名前で、configuration_file_pathname は編集した設定ファイルのパスとファイル名です。
aws ssm put-parameter --name "parameter name" --type "String" --value file://configuration_file_pathname