ウィザードを使用して作成した CloudWatch Agent の設定を変更する方法

2020.09.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

CloudWatch Agent を利用して、 EC2 のログ監視を行っています。
初回導入時のログ監視設定は、 CloudWatch Agent の エージェント設定ファイルウィザードを利用して実施しました。
しかし、追加で監視したい項目が増えたため、設定を追加する必要があります。既存の監視設定は削除したくありません。
CloudWatch Agent の設定を変更する方法を教えてください。

どう対応すればいいの?

設定の変更は、CloudWatch エージェント設定ファイル config.json を編集することで可能です。
エージェント設定ファイルウィザードを利用して初回設定を行っている場合、ウィザードがエージェント設定ファイルを自動作成しています。

設定ファイル config.json の場所

設定ファイル config.json ローカルにを保存している場合、デフォルトの保存場所は下記の通りです。
Linuxの場合

/opt/aws/amazon-cloudwatch-agent/bin/

Windows Serverの場合

C:\Program Files\Amazon\AmazonCloudWatchAgent

どのフィールド・パラメータを変更すればよいか

ドキュメントに設定項目とフィールド・パラメータの対応が記載されています。こちらを参考にJSONファイルを書き換えます。
CloudWatch エージェント設定ファイルを手動で作成または編集する - Amazon CloudWatch
たとえば、Linuxシステムでcpu_usage_activeメトリクスを任意の名前[CPU_USAGE_ACTIVE_001]として収集し、cpu_usage_guestメトリクスは変更しない場合、 metrics フィールドの measurement セクションで下記のように指定します。 (コード内のコメントアウトは、実際の設定時には削除してください)

〜中略〜
  "metrics": {                 //metricsセクション
    "metrics_collected": {
      "collectd": {},
      "cpu": {
        "resources": [
          "*"
        ],
        "measurement": [    //measurementセクション
          {"name": "cpu_usage_active", "rename": "CPU_USAGE_ACTIVE_001"},  //cpu_usage_activeの別名を指定
          "cpu_usage_guest"  //cpu_usage_guestは変更なし
        ],
        〜中略〜
     }
  }

注意事項

エージェントの全体的な設定を指定する agent セクションは、ウィザードを用いて設定ファイルを自動作成した際には作成されません。
agentセクションが作成されていない場合、すべてのフィールドで設定のデフォルト値が適用されます。

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

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

ウィザードにて設定ファイルを自動作成した場合で、agent セクションで設定される項目をデフォルト値以外に変更したい場合は、対象の設定ファイルにagentセクションを追記する必要があります。

参考情報

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

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

CloudWatch エージェントにより収集されるメトリクス - Amazon CloudWatch