WindowsイベントログをAmazon CloudWatch Logsに流してみた
2024.08.26
今回は、Amazon CloudWatch Logs でWindowsイベントログを管理する方法を紹介します。
以下のような方に読んでいただきたい記事です!
・サーバーの動作に問題が発生した時、迅速に原因を特定し解決したい
・不正アクセスやセキュリティ監視を強化したい
・ログを集中管理することでコンプライアンス要件を満たしたい
・システムのパフォーマンス低下の原因を特定して、パフォーマンスを向上させたい
はじめに
皆様の中で、AWS環境に構築したインスタンスのログデータを有効活用したいと考えている方も多いのではないでしょうか。
しかし、収集すべきログは無数にあり、場所や種類もバラバラで管理が大変ですよね。
そこで今回は、Amazon CloudWatch Logsを利用してWindows イベントログを簡単に一元管理する方法をご紹介します。
Windows イベントログにはシステムのエラーや警告、セキュリティ関連の重要な情報等が含まれているため、これをAmazon CloudWatch Logsで監視・分析することで、不正アクセスなどの問題の早期解決や、セキュリティ監視の精度を高めることにつながります。
Amazon CloudWatch Logsとは?
Amazon CloudWatch Logsは、AWSクラウド上の様々なリソースやアプリケーションから生成されるログデータの管理を効率的に行うことができるAWSマネージドサービスです。
使用中のすべてのシステム、アプリケーション、AWSサービスからのログをほぼリアルタイムに一元管理ができるようになるだけでなく、Amazon CloudWatchと連携してアラーム通知を設定することなどもでき、とても便利です。
また、CloudWatch Logs Insights(有料)を使用することで、ログデータの高度な検索、分析も可能になります。
ログの保持期間は調整できるので、必要なときに生のログデータにアクセスできるようになります。詳しくは以下サイトもご覧ください。(AWS公式サイト)
設定方法
1. IAMロールの準備
まず、Amazon CloudWatch Logsにログを送信する権限を持ったIAMロールが必要です。
AWSマネジメントコンソールでIAMサービスを選択し、[ロール]→[ロールを作成]と進み、信頼されたエンティティタイプでは[AWSのサービス]を選択します。
ユースケースは[EC2]を選択します。
許可ポリシーの検索欄で、Amazon CloudWatch Logsへのアクセス権限を持つ以下のポリシーを検索します。
→ Amazon CloudWatch エージェントがメトリクスやログをAmazon CloudWatchに書き込むために必要なアクセスを許可します。
→ 設定ファイルの作成や変更をしないEC2インスタンスに割り当てるポリシー
パラメータストアへのファイルの書き込み、パラメータストアからのファイルのダウンロードを許可します。
今回は「CloudWatchAgentServerPolicy」と入力します。
チェックを入れたら次へ進みます。
任意のロール名を入力しロールが作成できたらEC2サービスに移動し、一覧から対象のEC2インスタンスにチェックを入れ、[アクション]→ [セキュリティ]→[IAM ロールを変更]と進みます。
インスタンスとIAMロールを確認したら[IAM ロールの更新]をして、EC2インスタンスにアタッチしましょう。
参考サイト
2. Amazon CloudWatch エージェントのインストール
WindowsのイベントログをAmazon CloudWatch Logsに送るために、Amazon CloudWatch エージェントをインストールします。(対象のEC2にはSSM Agentがインストールされていることを前提とします。)
今回はAWS Systems Manager を使用してエージェントをダウンロードする方法をご紹介します。
AWS Systems Managerの左ペインから、[フリートマネージャー]を選択します。
対象インスタンスがマネージドノートとして認識(実行中)されていることを確認します。
左ペインから[Run command]を選択します。
[Run command]をクリックします。
検索窓に「AWS-ConfigureAWSPackage」と入力し、コマンドドキュメントから AWS-ConfigureAWSPackage にチェックを入れます。
画面下にコマンドのパラメータ項目があるので、Name に「AmazonCloudWatchAgent」と入力します。
ターゲット項目で[インスタンスを手動で選択する]を選択し、インストールするインスタンスのチェックボックスをクリックします。タグの指定やリソースグループを選択すると、複数台に一括でインストールすることもできます。
Run commandの完全なログを記録したい場合は、出力オプションにS3バケットを指定し、コマンドを実行します。
正常に送信されました!と表示された直後は、ステータスが”進行中”となっていますが…
通常であればすぐに成功に変わります。
参考サイト
3. Amazon CloudWatch エージェント設定ファイルの作成
新規ディレクトリにエージェント設定ファイルを作成し、Windows イベントログを収集する設定をします。
具体的には、収集したいイベントログのソースやロググループの名前を指定する JSON ファイルです。
一から手動で複雑に作成することもできますが、後から変更できるため、まずは簡単で必要な設定項目を見落としにくいウィザードを使用して Amazon CloudWatch エージェント設定ファイルを作成するのがおすすめです。
設定は質問形式で行われ、設定が完了するとconfig.jsonファイルが作成されます。ログを含む設定の例については、AWS公式ドキュメントを参照してください。
質問が多く少し大変ですが、がんばりましょう!
参考サイト
エージェントの起動
設定ファイルが作成できたら、AWS Systems ManagerでRun Commandまたはコマンドラインを使用してAmazon CloudWatch エージェントを再起動します。設定しただけでは反映されないので、注意してくださいね。
これにより、設定したイベントログがAmazon CloudWatch Logsに送信されるようになります。エージェントを再起動するには、CloudWatch エージェントを起動する の手順をご確認ください。
確認
再起動をしたら、ログデータが正しく送信されているか確認をします。なお、ここでは実際のログが出力されていないと確認できないので注意してください。
Amazon CloudWatchのダッシュボード画面の左ペインから[ロググループ]をクリック
対象のログストリームをクリック
ログイベントが作成されていることが確認できれば、設定完了です!
5.終わりに
今回は、Windows イベントログをAmazon CloudWatch Logsに流す方法についてご紹介しました。プロジェクトの運用に必要不可欠なログの管理が簡単に行えるようになるのは、非常に効率的で便利ですね!
ぜひこの機会にAmazon CloudWatch エージェントを利用して、Windows イベントログをAmazon CloudWatch Logsに収集してみてはいかがでしょうか?
最後に宣伝となりますが、JIG-SAWからAWSをご契約いただくとAWSの利用料が割引でご利用いただけます。
利用料の割引だけでなく様々な無料特典もつき、システム構築や監視・運用、セキュリティサポートなど各種オプションサービスもご用意しておりますので、お気軽にご相談ください。