1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

Systems Manager の Fleet Manager を利用する機会があり、インスタンス管理やログ確認について改めて調査しました。
調べていく中で、SSM エージェントのログを CloudWatch Logs に転送できるという情報が AWS の公式ドキュメントに掲載されていることを知りました。

本記事では、その公式情報をもとに 実際に設定を行い、動作を確認した内容を紹介します。

前提条件

・対象の EC2 インスタンスはWindows Serverとします
・Fleet Manager からインスタンスが表示・操作できる状態であること
・EC2 インスタンスに SSM Agent がインストールされ、起動していること
・EC2 インスタンスに付与されている IAM ロールに必要な権限(logs:CreateLogGroup,logs:CreateLogStream,logs:PutLogEventsなど)があること
・EC2 インスタンスにCloudwatchエージェントがインストールされていること
・FleetManagerのデフォルトのホスト管理設定を設定を有効にすること

設定方法

まずCloudWatch Logs にロググループを作成します。
ここではロググループ名を「ssm-agentlogs」とします。
スクリーンショット 2025-12-21 232030_ALG.png
ロググループの作り方の詳細は別途こちらを参照ください。

次に、FleetManagerを使ってEC2にRDPします。
EC2インスタンスにログイン後、「%ProgramFiles%\Amazon\SSM\」ディレクトリに移動します。
「%ProgramFiles%\Amazon\SSM\」のディレクトリにある「seelog.xml.template」ファイルのファイル名を「seelog.xml」 に変更します。

スクリーンショット 2025-12-21 232526_see.png

「seelog.xml」 をエディターなどで開きます。
スクリーンショット 2025-12-22 033057-P.png

以下は「seelog.xml」の内容の抜粋です。

<outputs formatid="fmtinfo">
   <console formatid="fmtinfo"/>
   <rollingfile type="size" maxrolls="5" maxsize="30000000" filename="{{LOCALAPPDATA}}\Amazon\SSM\Logs\amazon-ssm-agent.log"/>
   <filter formatid="fmterror" levels="error,critical">
      <rollingfile type="size" maxrolls="5" maxsize="10000000" filename="{{LOCALAPPDATA}}\Amazon\SSM\Logs\errors.log"/>
   </filter>
</outputs>

この箇所を以下のように変更します。

<outputs formatid="fmtinfo">
   <console formatid="fmtinfo"/>
   <rollingfile type="size" maxrolls="5" maxsize="30000000" filename="{{LOCALAPPDATA}}\Amazon\SSM\Logs\amazon-ssm-agent.log"/>
   <filter formatid="fmterror" levels="error,critical">
      <rollingfile type="size" maxrolls="5" maxsize="10000000" filename="{{LOCALAPPDATA}}\Amazon\SSM\Logs\errors.log"/>
   </filter>
   <custom name="cloudwatch_receiver" formatid="fmtdebug" data-log-group="your-CloudWatch-log-group-name"/>
</outputs>

この内

<custom name="cloudwatch_receiver" formatid="fmtdebug" data-log-group="your-CloudWatch-log-group-name"/>

の箇所が追加されています。
実際には「"your-CloudWatch-log-group-name"」の部分を、先ほど作成したCloudWatch Logs のロググループ名に読み替えてください。
本記事の場合は以下のようになります。

<custom name="cloudwatch_receiver" formatid="fmtdebug" data-log-group="ssm-agentlogs"/>

次に、PowerShellなどを使いSSMエージェントを再起動します。
EC2インスタンス内でPowerShellを立ち上げ、再起動コマンドを実行します。
PowerShellでの再起動コマンドは以下になります。

Restart-Service AmazonSSMAgent

出力結果はこちらです。
スクリーンショット 2025-12-22 020321.png

コマンドを打つと、数秒でSSMエージェントの再起動が完了します。

その後、CloudWatch Logs コンソールを開き、先ほど作成したロググループ(本記事では ssm-agentlogs)を確認します。
ロググループ内にログストリームが作成されており、SSM エージェントのログが正常に出力されていることが確認できます。
スクリーンショット 2025-12-22 030752-P.png

※もし再起動後もログが出力されていない場合は、数分ほど時間をおいてから、再度再起動コマンドを実行してみてください。

なお、CloudWatch Logs で確認できるログは、EC2 インスタンスのローカルに保存されているログになります。
ローカル上では、以下のパスでログを確認できます。

%PROGRAMDATA%\Amazon\SSM\Logs\amazon-ssm-agent.log
%PROGRAMDATA%\Amazon\SSM\Logs\errors.log

まとめ

今回は、SSM エージェントのログを CloudWatch Logs に転送する方法についてまとめました。
公式サイトに手順は記載されていますが、実際に設定してみると、seelog.xml の記述方法、再起動のタイミングなど、いくつか注意すべきポイントがあることが分かりました。
CloudWatch Logs に集約することで、インスタンスへ直接ログインせずとも SSM エージェントの挙動を確認できるようになるため、トラブルシュートや運用監視がしやすくなると感じました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?