Amazon CloudWatch
ユーザーガイド

CloudWatch エージェント設定ファイルを手動で作成または編集する

CloudWatch エージェント設定ファイルは、agent、metrics、logs の 3 つのセクションを持つ JSON ファイルです。

  • agent セクションには、エージェントの全体的な設定に関するフィールドが含まれています。ウィザードを使用する場合、agent セクションは作成されません。

  • metrics セクションでは、収集と CloudWatch への発行に関するカスタムメトリクスが指定されます。ログを収集するためだけにエージェントを使用している場合は、ファイルからメトリクスセクションを省略できます。

  • logs セクションでは、CloudWatch Logs に発行されるログファイルが指定されます。サーバーで Windows Server が実行されている場合、これには Windows イベントログからのイベントが含まれることがあります。

以下のセクションでは、この JSON ファイルの構造とフィールドについて説明します。この設定ファイルのスキーマ定義を表示することもできます。スキーマ定義は、Linux サーバーでは installation-directory/doc/amazon-cloudwatch-agent-schema.json、Windows Server を実行しているサーバーでは installation-directory/amazon-cloudwatch-agent-schema.json にあります。

JSON ファイルを手動で作成または編集する場合は、任意の名前を付けることができます。トラブルシューティングを簡単にするため、Linux サーバーでは、/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json、Windows Server を実行しているサーバーでは、$Env:ProgramData\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent.json という名前を付けることをお薦めします。

CloudWatch エージェント設定ファイル: agent セクション

agent セクションには、次に示すフィールドを含めることができます。ウィザードでは、agent セクションは作成されません。代わりに、このセクションは省略されて、このセクションのすべてのフィールドにデフォルト値が使用されます。

  • metrics_collection_interval – オプション。この設定ファイルで指定されたすべてのメトリクスが収集される頻度を指定します。この値は、特定の種類のメトリクスで上書きされる場合があります。

    これは秒単位で指定されます。たとえば、10 と設定するとメトリクスが 10 秒ごとに収集されるように設定され、300 と設定するとメトリクスが 5 分ごとに収集されように指定されます。

    この値を 60 秒未満に設定した場合、各メトリクスは高解像度メトリクスとして収集されます。高解像度メトリクスの詳細については、「高解像度のメトリクス」を参照してください。

    デフォルトは 60 です。

  • region – Amazon EC2 インスタンスを監視しているときに CloudWatch エンドポイントに使用するリージョンを指定します。収集されたメトリクスは、us-west-1 など、このリージョンに送信されます。このフィールドを省略すると、エージェントは Amazon EC2 インスタンスが配置されているリージョンにメトリクスを送信します。

    オンプレミスサーバーを監視している場合、このフィールドは使用されず、エージェントは AWS 設定ファイルの awscloudwatchagent プロファイルからリージョンを読み取ります。

  • debug – オプション。デバッグログメッセージを使用して CloudWatch を実行することを指定します。デフォルト: false

  • ログファイル – CloudWatch エージェントがログメッセージを書き込む場所を指定します。空の文字列を指定すると、ログは stderr に書き込まれます。このオプションを指定しない場合、デフォルトの場所は次のようになります。

    • Linux: /opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log

    • Windows Server のバージョンが Windows Server 2003 以降である場合: c:\\ProgramData\\Amazon\\CloudWatchAgent\\Logs\\amazon-cloudwatch-agent.log

    ヒント

    このファイルが大きくなってディスクがいっぱいにならないようにログローテーションを設定することをお勧めします。

agent セクションの例を以下に示します。

"agent": { "metrics_collection_interval": 60, "region": "us-west-1", "logfile": "/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log", "debug": false }

CloudWatch エージェント設定ファイル: metrics セクション

Linux または Windows Server を実行しているサーバーでは、metrics セクションに次のフィールドが含まれています。

  • namespace – オプション。エージェントによって収集されるメトリクスに使用する名前空間。デフォルト: CWAgent

  • append_dimensions – オプション。エージェントによって収集されたメトリクスに Amazon EC2 メトリクスのディメンションを追加します。ディメンションごとに、キーと値のペアを指定する必要があります。キーは、Amazon EC2 ディメンション ImageID:image-idInstanceId:instance-idInstanceType:instance-type、または AutoScalingGroupName:AutoScaling-group-name に一致します。

    Amazon EC2 メタデータに依存する値を指定し、プロキシーを使用する場合は、サーバーが Amazon EC2 のエンドポイントにアクセスできることを確認する必要があります。これらのエンドポイントの詳細については、アマゾン ウェブ サービス全般のリファレンスの「Amazon Elastic Compute Cloud (Amazon EC2)」を参照してください。

  • aggregation_dimensions – 収集されたメトリクスが集約されるディメンションを指定します。たとえば、AutoScalingGroupName ディメンションでメトリクスをロールアップした場合、各 Auto Scaling グループ内のすべてのインスタンスのメトリクスが集約され、全体として参照できるようになります。

    1 つまたは複数のディメンションに沿ってメトリクスをロールアップすることができます。たとえば、[["InstanceId"], ["InstanceType"], ["InstanceId","InstanceType"]] を指定すると、インスタンス ID 単独、インスタンスタイプ単独、および 2 つのディメンションの組み合わせのメトリクスが集約されます。

    [] を指定することにより、すべてのディメンションを無視して、すべてのメトリクスを 1 つのコレクションにロールアップすることもできます。

  • metrics_collected – 必須。収集するメトリクスを指定します。このセクションには、いくつかのサブセクションがあります。

    この metrics_collected セクションの内容は、この設定ファイルが Linux を実行しているサーバー用か Windows Server を実行しているサーバー用かによって異なります。

Linux

Linux を実行しているサーバーでは、設定ファイルの metrics_collected セクションには以下のフィールドが含まれていることもあります。

  • cpu – オプション。収集する cpu メトリクスを指定します。このセクションは、Linux インスタンスでのみ有効です。このセクションには、3 つのフィールドがあります。

    • resources – オプション。収集する per-cpu メトリクスを指定します。許容されている値は * のみです。このフィールドと値を含めた場合、per-cpu メトリクスが収集されます。

    • totalcpu – オプション。すべての CPU コア間で集計された cpu メトリクスを報告するかどうかを指定します。デフォルトは true です。

    • measurement – 収集する cpu メトリクスの配列を指定します。指定できる値は time_activetime_guesttime_guest_nicetime_idletime_iowaittime_irqtime_nicetime_softirqtime_stealtime_systemtime_userusage_activeusage_guestusage_guest_niceusage_idleusage_iowaitusage_irqusage_niceusage_softirqusage_stealusage_system、および usage_user です。このフィールドは、cpu を含めた場合にのみ必要です。

      デフォルトでは、cpu_usage_* メトリクスの単位は Percent であり、cpu_time_* メトリクスには単位がありません。

      各メトリクスのエントリ内には、必要に応じて次のいずれかまたは両方を指定できます。

      • rename – このメトリクスに別の名前を指定します。

      • unit – メトリクスのデフォルト単位を上書きして、このメトリクスに使用する単位を指定します。指定する単位は、「MetricDatum」の Unit に関する説明にリストされている有効な CloudWatch メトリクス単位でなければなりません。

    • metrics_collection_interval – オプション。設定ファイルの agent セクションで指定されたグローバルな metrics_collection_interval を上書きして、cpu メトリクスを収集する頻度を指定します。

      これは秒単位で指定されます。たとえば、10 と設定するとメトリクスが 10 秒ごとに収集されるように設定され、300 と設定するとメトリクスが 5 分ごとに収集されように指定されます。

      この値を 60 秒未満に設定した場合、各メトリクスは高解像度メトリクスとして収集されます。高解像度メトリクスの詳細については、「高解像度のメトリクス」を参照してください。

    • append_dimensions – オプション。cpu メトリクスにのみ使用する追加のディメンション。このフィールドを指定した場合、エージェントにより収集されるすべてのタイプのメトリクスに使用されるグローバル append_dimensions フィールドで指定されたディメンションに加えて使用されます。

  • disk – オプション。収集する disk メトリクスを指定します。このセクションは、Linux インスタンスでのみ有効です。このセクションには、2 つのフィールドがあります。

    • resources – オプション。ディスクのマウントポイントの配列を指定します。このフィールドは、リストされているマウントポイントのみから CloudWatch がメトリクスを収集するように制限します。値として * を指定すると、すべてのマウントポイントからメトリクスを収集できます。デフォルトでは、すべてのマウントポイントからメトリクスが収集されます。

    • measurement – 収集する disk メトリクスの配列を指定します。指定できる値は freetotalusedused_percentinodes_freeinodes_used、および inodes_total です。このフィールドは、disk を含めた場合にのみ必要です。

      disk メトリクスのデフォルトの単位を確認するには、「Linux インスタンスで CloudWatch エージェントにより収集されるメトリクス」を参照してください。

      各メトリクスのエントリ内には、必要に応じて次のいずれかまたは両方を指定できます。

      • rename – このメトリクスに別の名前を指定します。

      • unit – メトリクスのデフォルト単位を上書きして、このメトリクスに使用する単位を指定します。指定する単位は、「MetricDatum」の Unit に関する説明にリストされている有効な CloudWatch メトリクス単位でなければなりません。

    • ignore_file_system_types – ディスクのメトリクスを収集するときに除外するファイルシステムのタイプを指定します。有効な値は、sysfsdevtmpfs などです。

    • metrics_collection_interval – オプション。設定ファイルの agent セクションで指定されたグローバルな metrics_collection_interval を上書きして、disk メトリクスを収集する頻度を指定します。

      これは秒単位で指定されます。

      この値を 60 秒未満に設定した場合、各メトリクスは高解像度メトリクスとして収集されます。高解像度メトリクスの詳細については、「高解像度のメトリクス」を参照してください。

    • append_dimensions – オプション。disk メトリクスにのみ使用する追加のディメンション。このフィールドを指定した場合、エージェントにより収集されるすべてのタイプのメトリクスに使用される append_dimensions フィールドで指定されたディメンションに加えて使用されます。

  • diskio – オプション。収集する diskio メトリクスを指定します。このセクションは、Linux インスタンスでのみ有効です。このセクションには、2 つのフィールドがあります。

    • resources – オプション。デバイスの配列を指定した場合、CloudWatch はそれらのデバイスからのみメトリクスを収集します。それ以外の場合、すべてのデバイスのメトリクスが収集されます。値として * を指定し、すべてのデバイスからメトリクスを収集することもできます。

    • measurement – 収集する diskio メトリクスの配列を指定します。指定できる値は readswritesread_byteswrite_bytesread_timewrite_timeio_time、および iops_in_progress です。このフィールドは、diskio を含めた場合にのみ必要です。

      diskio メトリクスのデフォルトの単位を確認するには、「Amazon EC2 のメトリクスとディメンション」を参照してください。

      各メトリクスのエントリ内には、必要に応じて次のいずれかまたは両方を指定できます。

      • rename – このメトリクスに別の名前を指定します。

      • unit – メトリクスのデフォルト単位を上書きして、このメトリクスに使用する単位を指定します。指定する単位は、「MetricDatum」の Unit に関する説明にリストされている有効な CloudWatch メトリクス単位でなければなりません。

    • metrics_collection_interval – オプション。設定ファイルの agent セクションで指定されたグローバルな metrics_collection_interval を上書きして、diskio メトリクスを収集する頻度を指定します。

      これは秒単位で指定されます。

      この値を 60 秒未満に設定した場合、各メトリクスは高解像度メトリクスとして収集されます。高解像度メトリクスの詳細については、「高解像度のメトリクス」を参照してください。

    • append_dimensions – オプション。diskio メトリクスにのみ使用する追加のディメンション。このフィールドを指定した場合、エージェントにより収集されるすべてのタイプのメトリクスに使用される append_dimensions フィールドで指定されたディメンションに加えて使用されます。

  • swap – オプション。収集するスワップメモリメトリクスを指定します。このセクションは、Linux インスタンスでのみ有効です。このセクションには、1 つのフィールドを含めることができます。

    • measurement – 収集する swap メトリクスの配列を指定します。指定できる値は freeused、および used_percent です。このフィールドは、swap を含めた場合にのみ必要です。

      swap メトリクスのデフォルトの単位を確認するには、「Linux インスタンスで CloudWatch エージェントにより収集されるメトリクス」を参照してください。

      各メトリクスのエントリ内には、必要に応じて次のいずれかまたは両方を指定できます。

      • rename このメトリクスに別の名前を指定します。

      • unit – メトリクスのデフォルト単位を上書きして、このメトリクスに使用する単位を指定します。指定する単位は、「MetricDatum」の Unit に関する説明にリストされている有効な CloudWatch メトリクス単位でなければなりません。

    • metrics_collection_interval – オプション。設定ファイルの agent セクションで指定されたグローバルな metrics_collection_interval を上書きして、swap メトリクスを収集する頻度を指定します。

      これは秒単位で指定されます。

      この値を 60 秒未満に設定した場合、各メトリクスは高解像度メトリクスとして収集されます。高解像度メトリクスの詳細については、「高解像度のメトリクス」を参照してください。

    • append_dimensions オプション。swap メトリクスにのみ使用する追加のディメンション。このフィールドを指定した場合、エージェントにより収集されるすべてのタイプのメトリクスに使用されるグローバル append_dimensions フィールドで指定されたディメンションに加えて使用されます。高解像度メトリクスとして収集されます。

  • mem – オプション。収集するメモリメトリクスを指定します。このセクションは、Linux インスタンスでのみ有効です。このセクションには、1 つのフィールドを含めることができます。

    • measurement – 収集する swap メトリクスの配列を指定します。指定できる値は activeavailableavailable_percentbufferedcachedfreeinactivetotalused、および used_percent です。このフィールドは、mem を含めた場合にのみ必要です。

      mem メトリクスのデフォルトの単位を確認するには、「Linux インスタンスで CloudWatch エージェントにより収集されるメトリクス」を参照してください。

      各メトリクスのエントリ内には、必要に応じて次のいずれかまたは両方を指定できます。

      • rename – このメトリクスに別の名前を指定します。

      • unit – メトリクスのデフォルト単位を上書きして、このメトリクスに使用する単位を指定します。指定する単位は、「MetricDatum」の Unit に関する説明にリストされている有効な CloudWatch メトリクス単位でなければなりません。

    • metrics_collection_interval – オプション。設定ファイルの agent セクションで指定されたグローバルな metrics_collection_interval を上書きして、mem メトリクスを収集する頻度を指定します。

      これは秒単位で指定されます。

      この値を 60 秒未満に設定した場合、各メトリクスは高解像度メトリクスとして収集されます。高解像度メトリクスの詳細については、「高解像度のメトリクス」を参照してください。

    • append_dimensions – オプション。mem メトリクスにのみ使用する追加のディメンション。このフィールドを指定した場合、エージェントにより収集されるすべてのタイプのメトリクスに使用される append_dimensions フィールドで指定されたディメンションに加えて使用されます。

  • net – オプション。収集するネットワーキングメトリクスを指定します。このセクションは、Linux インスタンスでのみ有効です。このセクションには、2 つのフィールドがあります。

    • resources – オプション。ネットワークインターフェイスの配列を指定した場合、CloudWatch はそれらのインターフェイスからのみメトリクスを収集します。それ以外の場合、すべてのデバイスのメトリクスが収集されます。値として * を指定し、すべてのインターフェイスからメトリクスを収集することもできます。

    • measurement – 収集するネットワーキングメトリクスの配列を指定します。指定できる値は bytes_sentbytes_recvdrop_indrop_outerr_inerr_outpackets_sent、および packets_recv です。このフィールドは、net を含めた場合にのみ必要です。

      net メトリクスのデフォルトの単位を確認するには、「Linux インスタンスで CloudWatch エージェントにより収集されるメトリクス」を参照してください。

      各メトリクスのエントリ内には、必要に応じて次のいずれかまたは両方を指定できます。

      • rename – このメトリクスに別の名前を指定します。

      • unit – メトリクスのデフォルト単位を上書きして、このメトリクスに使用する単位を指定します。指定する単位は、「MetricDatum」の Unit に関する説明にリストされている有効な CloudWatch メトリクス単位でなければなりません。

    • metrics_collection_interval – オプション。設定ファイルの agent セクションで指定されたグローバルな metrics_collection_interval を上書きして、net メトリクスを収集する頻度を指定します。

      これは秒単位で指定されます。たとえば、10 と設定するとメトリクスが 10 秒ごとに収集されるように設定され、300 と設定するとメトリクスが 5 分ごとに収集されように指定されます。

      この値を 60 秒未満に設定した場合、各メトリクスは高解像度メトリクスとして収集されます。高解像度メトリクスの詳細については、「高解像度のメトリクス」を参照してください。

    • append_dimensions – オプション。net メトリクスにのみ使用する追加のディメンション。このフィールドを指定した場合、エージェントにより収集されるすべてのタイプのメトリクスに使用される append_dimensions フィールドで指定されたディメンションに加えて使用されます。

  • netstat – オプション。収集する TCP 接続状態と UDP 接続メトリクスを指定します。このセクションは、Linux インスタンスでのみ有効です。このセクションには、1 つのフィールドを含めることができます。

    • measurement – 収集する netstat メトリクスの配列を指定します。指定できる値は tcp_closetcp_close_waittcp_closingtcp_establishedtcp_fin_wait1tcp_fin_wait2tcp_last_acktcp_listentcp_nonetcp_syn_senttcp_syn_recvtcp_time_wait、および udp_socket です。このフィールドは、netstat を含めた場合にのみ必要です。

      netstat メトリクスのデフォルトの単位を確認するには、「Linux インスタンスで CloudWatch エージェントにより収集されるメトリクス」を参照してください。

      各メトリクスのエントリ内には、必要に応じて次のいずれかまたは両方を指定できます。

      • rename – このメトリクスに別の名前を指定します。

      • unit – メトリクスのデフォルト単位を上書きして、このメトリクスに使用する単位を指定します。指定する単位は、「MetricDatum」の Unit に関する説明にリストされている有効な CloudWatch メトリクス単位でなければなりません。

    • metrics_collection_interval – オプション。設定ファイルの agent セクションで指定されたグローバルな metrics_collection_interval を上書きして、netstat メトリクスを収集する頻度を指定します。

      これは秒単位で指定されます。

      この値を 60 秒未満に設定した場合、各メトリクスは高解像度メトリクスとして収集されます。高解像度メトリクスの詳細については、「高解像度のメトリクス」を参照してください。

    • append_dimensions – オプション。netstat メトリクスにのみ使用する追加のディメンション。このフィールドを指定した場合、エージェントにより収集されるすべてのタイプのメトリクスに使用される append_dimensions フィールドで指定されたディメンションに加えて使用されます。

  • processes – オプション。収集するプロセスメトリクスを指定します。このセクションは、Linux インスタンスでのみ有効です。このセクションには、1 つのフィールドを含めることができます。

    • measurement – 収集するプロセスメトリクスの配列を指定します。指定できる値は blockeddeadidlepagingrunningsleepingstoppedtotaltotal_threadswait、および zombies です。このフィールドは、processes を含めた場合にのみ必要です。

      すべての processes メトリクスで、デフォルトの単位は Count です。

      各メトリクスのエントリ内には、必要に応じて次のいずれかまたは両方を指定できます。

      • rename – このメトリクスに別の名前を指定します。

      • unit – メトリクスのデフォルト単位を上書きして、このメトリクスに使用する単位を指定します。指定する単位は、「MetricDatum」の Unit に関する説明にリストされている有効な CloudWatch メトリクス単位でなければなりません。

    • metrics_collection_interval – オプション。設定ファイルの agent セクションで指定されたグローバルな metrics_collection_interval を上書きして、processes メトリクスを収集する頻度を指定します。

      これは秒単位で指定されます。たとえば、10 と設定するとメトリクスが 10 秒ごとに収集されるように設定され、300 と設定するとメトリクスが 5 分ごとに収集されように指定されます。

      この値を 60 秒未満に設定した場合、各メトリクスは高解像度メトリクスとして収集されます。詳細については、「高解像度のメトリクス」を参照してください。

    • append_dimensions – オプション。process メトリクスにのみ使用する追加のディメンション。このフィールドを指定した場合、エージェントにより収集されるすべてのタイプのメトリクスに使用される append_dimensions フィールドで指定されたディメンションに加えて使用されます。

Linux サーバーの metrics セクションの例を次に示します。

"metrics": { "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": { "test": "test1", "date": "2017-10-01" } }, "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" : [["AutoScalingGroupName"], ["InstanceId", "InstanceType"],[]] }

Windows Server

Windows Server の metrics_collected セクションでは、Windows パフォーマンスオブジェクトごとに MemoryProcessorLogicalDisk などのサブセクションを含めることができます。使用可能なオブジェクトとカウンタについては、Microsoft Windows のドキュメントを参照してください。

各オブジェクトのサブセクション内では、収集するカウンタの measurement 配列を指定します。measurement 配列は、設定ファイルで指定するオブジェクトごとに必要です。resources フィールドを指定して、メトリクスの収集元のインスタンスを指定することもできます。resources* を指定し、すべてのインスタンスの別個のメトリクスを収集することもできます。resources を省略すると、すべてのインスタンスのデータが 1 つのセットに集約されます。

各オブジェクトセクション内で、以下のオプションフィールドを指定することもできます。

  • metrics_collection_interval – オプション。設定ファイルの agent セクションで指定されたグローバルな metrics_collection_interval を上書きして、このオブジェクトのメトリクスを収集する頻度を指定します。

    これは秒単位で指定されます。たとえば、10 と設定するとメトリクスが 10 秒ごとに収集されるように設定され、300 と設定するとメトリクスが 5 分ごとに収集されように指定されます。

    この値を 60 秒未満に設定した場合、各メトリクスは高解像度メトリクスとして収集されます。詳細については、「高解像度のメトリクス」を参照してください。

  • append_dimensions – オプション。このオブジェクトのメトリクスにのみ使用する追加のディメンション。このフィールドを指定した場合、エージェントにより収集されるすべてのタイプのメトリクスに使用されるグローバル append_dimensions フィールドで指定されたディメンションに加えて使用されます。

各カウンタセクション内で、以下のオプションフィールドを指定することもできます。

  • rename – このメトリクスに、CloudWatch で使用する別の名前を指定します。

  • unit – このメトリクスに使用する単位を指定します。指定する単位は、「MetricDatum」の Unit に関する説明にリストされている有効な CloudWatch メトリクス単位でなければなりません。

Windows Server で使用する metrics セクションの例を次に示します。

"metrics": { "metrics_collected": { "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"],[]] } }

CloudWatch エージェント設定ファイル: logs セクション

logs セクションには、次のフィールドがあります。

  • logs_collectedlogs セクションがある場合に必須です。サーバーから収集するログファイルおよび Windows イベントログを指定します。2 つのフィールド files および windows_events を含めることができます。

    • files は、CloudWatch エージェントがログファイルを定期的に収集することを指定します。それらのファイルを詳細に定義する 1 つのフィールド collect_list が含まれます。

      • collect_listfiles が含まれている場合に必須です。エントリの配列が含まれており、それぞれ収集するログファイルを 1 つ指定します。これらの各エントリには、次のフィールドを含めることができます。

        • file_path – CloudWatch Logs にアップロードするログファイルのパスを指定します。スーパーアスタリスクとして ** を追加すると、標準 Unix glob マッチングルールが受け入れられます。たとえば、/var/log/**.log と指定すると /var/log ディレクトリツリー内のすべての .log ファイルが収集されます。他の例については、「Glob Library」を参照してください。

          標準のアスタリスク (*) は、標準のワイルドカードとして使用することもできます。たとえば、/var/log/system.log* は、/var/logsystem.log_1111system.log_2222 などのファイルに一致します。

          ファイルの変更時間に基づいて、最新のファイルのみが CloudWatch Logs にプッシュされます。access_log.2018-06-01-01access_log.2018-06-01-02 など同じ形式の一連のファイルを指定するにはワイルドカードの使用をお勧めします。ただし、access_log_80access_log_443 のように複数の種類のファイルには使用しないでください。複数の種類のファイルを指定するには、エージェント設定ファイルに別のストリームログのエントリを追加して、各種類のログファイルが異なるログストリームに行くようにします。

        • log_group_name – オプション。CloudWatch Logs でロググループ名として何を使用するかを指定します。ここで使えるのは、a~z、A~Z、0~9、"_" (アンダーバー)、"-" (ハイフン)、"/" (スラッシュ) および "." (ピリオド) です。

          混乱を防ぐために、このフィールドを指定することをお勧めします。このフィールドを指定しない場合、末尾のドットまでのファイルパスがロググループ名として使用されます。たとえば、ファイルパスが /tmp/TestLogFile.log.2017-07-11-14 の場合、ロググループ名は /tmp/TestLogFile.log です。

        • log_stream_name – オプション。CloudWatch Logs でログストリーム名として何を使用するかを指定します。名前の一部として、名前では変数として {instance_id}{hostname}{local_hostname}{ip_address} を使用することができます。{hostname} は、EC2 メタデータからホスト名を取得し、{local_hostname} は、ネットワーク設定ファイルからホスト名を使用します。

          このフィールドを省略した場合、{instance_id} のデフォルトが使用されます。ログストリームが存在しない場合には、自動的に作成されます。

        • timezone – オプション。ログイベントにタイムスタンプを付けるときに使用するタイムゾーンを指定します。有効な値は UTCLocal です。デフォルト: Local

        • timestamp_format – オプション。% で始まる特殊記号とプレーンテキストを使用して、タイムスタンプ形式を指定します。このフィールドを省略した場合は、現在の時刻が使用されます。このフィールドを使用する場合、形式の一部として以下を使用できます。

          %y

          ゼロ詰め 10 進数での年 (世紀なし)

          %Y

          ゼロ詰め 10 進数での年 (世紀あり)

          %b

          ロケールの省略名称での月

          %B

          ロケールの正式名称での月

          %m

          ゼロ詰め 10 進数での月

          %-m

          10 進数での月 (ゼロ詰めなし)

          %d

          ゼロ詰め 10 進数での日

          %-d

          10 進数での日 (ゼロ詰めなし)

          %A

          曜日のフルネーム。Monday など

          %自

          曜日の略称。Mon など

          %H

          ゼロ詰め 10 進数での時 (24 時間形式の時計)

          %l

          ゼロ詰め 10 進数での時 (12 時間形式の時計)

          %-l

          10 進数での時間 (12 時間制) (ゼロ詰めなし)

          %p

          AM または PM

          %M

          ゼロ詰め 10 進数での分

          %-M

          10 進数での分 (ゼロ詰めなし)

          %S

          ゼロ詰め 10 進数での秒

          %-S

          10 進数での秒 (ゼロ詰めなし)

          %Z

          タイムゾーン。PST など

          %z

          タイムゾーンは、ローカルタイムゾーンと UTC の間のオフセットとして表されます。 ("-0700" など)。この形式のみがサポートされています。たとえば、-07:00 は有効な形式ではありません。

        • multi_line_start_pattern – ログメッセージの開始を識別するパターンを指定します。ログメッセージは、パターンに一致する 1 行と、それに続くパターンに一致しない行で構成されます。

          このフィールドを指定しない場合、複数行モードが無効になり、空白文字以外の文字で始まる行は、前のログメッセージを終了して新しいログメッセージを開始します。

          このフィールドを含める場合、{timestamp_format} を指定し、タイムスタンプ形式として同じ正規表現を使用することができます。それ以外の場合、CloudWatch Logs が複数行エントリの最初の行を判断するために使用する別の正規表現を指定できます。

        • エンコード – 正しく読み込むことができるように、ログファイルのエンコードを指定します。正しくないエンコードを指定すると、デコードできない文字がその他の文字に置き換えられるため、データ損失が生じる可能性があります。

          デフォルトは 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, windows-874, windows-1250, windows-1251, windows-1252, windows-1253, windows-1254, windows-1255, windows-1256, windows-1257, windows-1258, x-mac-cyrillic

  • windows_events セクションでは、Windows Server を実行しているサーバーから収集する Windows イベントのタイプを指定します。次のフィールドが含まれています。

    • collect_listwindows_events が含まれている場合に必須です。収集する Windows イベントのタイプとレベルを指定します。収集される各ログには、このセクションのエントリがあります。次のフィールドが含まれる可能性があります。

      • event_name – ログ記録する Windows イベントのタイプを指定します。SystemSecurityApplication などが該当します。このフィールドは、ログ記録する Windows イベントのタイプごとに必要です。

      • event_levels – ログ記録するイベントのレベルを指定します。ログ記録する各レベルを指定する必要があります。指定できる値には、INFORMATIONWARNINGERRORCRITICALおよび VERBOSE などがあります。このフィールドは、ログ記録する Windows イベントのタイプごとに必要です。

      • log_group_name – 必須。CloudWatch Logs でロググループ名として何を使用するかを指定します。

      • log_stream_name – オプション。CloudWatch Logs でログストリーム名として何を使用するかを指定します。名前の一部として、名前では変数として {instance_id}{hostname}{local_hostname}{ip_address} を使用することができます。{hostname} は、EC2 メタデータからホスト名を取得し、{local_hostname} は、ネットワーク設定ファイルからホスト名を使用します。

        このフィールドを省略した場合、{instance_id} のデフォルトが使用されます。ログストリームが存在しない場合には、自動的に作成されます。

      • event_format – オプションです。Windows のイベントを CloudWatch Logs に保存する際に使用する形式を指定します。xml は、Windows イベントビューワーと同じように XML 形式を使用します。text は、レガシーの CloudWatch Logs エージェント形式を使用します。

  • log_stream_name – 必須。collect_list のエントリで個々のログストリーム名が定義されていないログまたは Windows イベントに使用するデフォルトのログストリーム名を指定します。

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", "timestamp_format":"%H:%M:%S %y %b %-d" }, { "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_levels":[ "INFORMATION", "ERROR" ], "log_group_name":"System", "log_stream_name":"System" }, { "event_name":"Application", "event_levels":[ "INFORMATION", "ERROR" ], "log_group_name":"Application", "log_stream_name":"Application" } ] } }, "log_stream_name":"my_log_stream_name" }

CloudWatch エージェント設定ファイル: 完全な例

Linux サーバーの完全なエージェント設定ファイルの例を次に示します。

{ "agent": { "metrics_collection_interval": 10, "logfile": "/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log" }, "metrics": { "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"],[]] }, "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" } }

Windows Server を実行しているサーバーの完全なエージェント設定ファイルの例を次に示します。

{ "agent": { "metrics_collection_interval": 60, "logfile": "c:\\ProgramData\\Amazon\\AmazonCloudWatchAgent\\Logs\\amazon-cloudwatch-agent.log" }, "metrics": { "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": [ "customizedInstaces" ] }, "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": "Application", "event_levels": [ "WARNING", "ERROR" ], "log_group_name": "Application", "log_stream_name": "Application", "event_format": "xml" } ] } }, "log_stream_name": "example_log_stream_name" } }

CloudWatch エージェント設定ファイルを Systems Manager Parameter Store にアップロードする

CloudWatch エージェントを Amazon EC2 インスタンス、または SSM Agent がインストールされたオンプレミスサーバーにインストールする場合、CloudWatch エージェント設定ファイルを手動で編集した後、Systems Manager Parameter Store にアップロードする必要があります。これを行うには、Systems Manager put-parameter コマンドを使用します。

Parameter Store にファイルを保存できるようにするには、十分なアクセス権限を持つ IAM ロールを使用する必要があります。詳細については、「CloudWatch エージェントで使用する IAM ロールおよびユーザーを作成する」を参照してください。

次のコマンドを使用します。ここで、parameter name は Parameter Store でこのファイルに使用する名前で、configuration_file_pathname は編集した設定ファイルのパスとファイル名です。

aws ssm put-parameter --name "parameter name" --type "String" --value file://configuration_file_pathname