Tagbangers Blog

Windows Server 2016 に CloudWatchAgent をインストールしてログ転送する

Windows で設定することがあまりなかったため、メモ程度に残しておきます。

以下をダウンロードして実行する

https://s3.amazonaws.com/amazoncloudwatch-agent/windows/amd64/latest/amazon-cloudwatch-agent.msi

MSI パッケージをダウンロードディレクトリに移動して以下のコマンドを実行する

msiexec /i amazon-cloudwatch-agent.msi

コマンドプロンプトの例

以下のファイルを作成してルールを定義する

C:\ProgramData\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent.json

↑のパスが推奨らしい

https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html

amazon-cloudwatch-agent.json のサンプル

メモリ使用率メトリクスやシステムログも指定できるが今回はとりあえず nginx の access.log を転送してみる

{
  "agent": {
    "metrics_collection_interval": 60,
    "logfile": "c:\\ProgramData\\Amazon\\AmazonCloudWatchAgent\\Logs\\amazon-cloudwatch-agent.log"
  },
  "logs": {
    "logs_collected": {
      "files": {
        "collect_list": [
          {
            "file_path": "C:\\Program Files\\nginx\\logs\\access.log",
            "log_group_name": "nginx_access_log",
            "timezone": "Local"
          }
        ]
      }
    }
  }
}

EC2 が CloudWatchLogs へ書き込みをするための権限を付与する

CloudWatchAgentServerPolicy(AWS管理ポリシー)を持つIAMロールを作成してEC2にアタッチする(EC2へのアタッチは割愛)

ログが転送されてくることを確認する

以上です!