LoginSignup
1
0

こんにちは
株式会社クラスアクト インフラストラクチャ事業部の大塚です。

今回はタイトル通り、WindowsのEventlog(Application,System,Security)をCloudWatch Logsで確認できるようにしていきたいと思います。
近いうちにCloudWatch LogsからS3に対して自動で退避する方法も確認していきます。

用語

CloudWatch

Claudeから解説をしてもらいます。

AWSリソース(EC2インスタンス、Lambda関数など)のメトリクスを収集、視覚化する
これらのメトリクスに基づいてアラームを設定し、異常を検知できる
自動スケーリンググループへのメトリクスの提供も可能

CloudWatch Logs

こちらもClaudeから解説をしてもらいます。

EC2インスタンス、LambdaなどのログデータをCloudWatchLogsに転送し、中央集約できる
ログデータに対して検索やフィルタリングが可能
ログデータをメトリクスとして可視化したり、アラームを設定したりできる
ログの保存期間やアクセス制御の設定が可能

CloudWatchはメトリクス収集と監視に特化しており、CloudWatch Logsはログの集約と分析に特化したサービスです。これらを組み合わせることで、AWSリソースの状態を包括的に監視できるようになります。

環境イメージ

EC2に対してCloudWatchにアップロードするためのIAM Roleをアタッチします。
また、CloudWatch Agentをインストールします。
島田様02-ページ2.drawio.png

前提として、以下の環境に設定を追加していっています。

構築

IAM Role作成

EC2にアタッチされているIAM Roleに対してCloudWatchへのアクセス権を追加していきます。
1.png
CloudWatchLogsFullAccessを選択して追加していきます。
2.png

Windows ServerにCloudWatch Agentを導入する

任意のWebブラウザで以下のURLにアクセスし、msiをダウンロードします

msiがダウンロードできましたらダブルクリックし、実行します。
実行後特にポップアップするようなことはありませんでした。
3.png
Control Panel > Programs > Programs and FeaturesにAmazon CloudWatch Agentが表示されていることを確認します。表示されていればOKです。
4.png
C:\Users\Administrator\Documentsにamazon-cloudwatch-agent.jsonという設定ファイルを作成します。これがCloudWatch Agentの設定ファイルになっていきます。
5.png
設定ファイルの中身は以下としました。

amazon-cloudwatch-agent.json
{
    "logs": {
        "logs_collected": {
            "windows_events": {
                "collect_list": [
                    {
                        "event_name": "System",
                        "log_group_name": "SystemEventLog",
                        "log_stream_name": "{instance_id}",
                        "event_levels": [
                            "ERROR",
                            "WARNING",
                            "INFORMATION"
                        ]
                    },
                    {
                        "event_name": "Application",
                        "log_group_name": "ApplicationEventLog",
                        "log_stream_name": "{instance_id}",
                        "event_levels": [
                            "ERROR",
                            "WARNING",
                            "INFORMATION"
                        ]
                    },
                    {
                        "event_name": "Security",
                        "log_group_name": "SecurityEventLog",
                        "log_stream_name": "{instance_id}",
                        "event_levels": [
                            "ERROR",
                            "WARNING",
                            "INFORMATION"
                        ]
                    }
                ]
            }
        }
    }
}

powershellを起動して以下のコマンドを実行します。先ほど作成したjsonファイルを使ってCloudWatch Agentを起動させていているイメージかと思います。

PS C:\Users\Administrator> & "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -a fetch-config -m ec2 -c file:"C:\Users\Administrator\Documents\amazon-cloudwatch-agent.json" -s

****** processing amazon-cloudwatch-agent ******
I! Trying to detect region from ec2
D! [EC2] Found active network interface
I! imds retry client will retry 1 timesSuccessfully fetched the config and saved in C:\ProgramData\Amazon\AmazonCloudWatchAgent\Configs\file_amazon-cloudwatch-agent.json.tmp
Start configuration validation...
2024/06/16 07:53:05 Reading json config file path: C:\ProgramData\Amazon\AmazonCloudWatchAgent\Configs\file_amazon-cloudwatch-agent.json.tmp ...
2024/06/16 07:53:05 I! Valid Json input schema.
I! Trying to detect region from ec2
D! [EC2] Found active network interface
I! imds retry client will retry 1 times2024/06/16 07:53:05 Configuration validation first phase succeeded
Configuration validation second phase succeeded
Configuration validation succeeded
AmazonCloudWatchAgent has been stopped
AmazonCloudWatchAgent has been started

CloudWatchで確認

AWS管理コンソールでCloudWatchに移動し、ログ>ロググループに遷移します。
JSONファイル内のlog_group_nameが表示されることを確認します。
スクショではSecurityEventLogとSystemEventLogが表示されていることがわかります。
6.png
logを確認するにはロググループを選択して、ログストリームタブから遷移することで確認することが可能です。
7.png
8.png
出力されたログについては例えば以下の様なものになります。

<Event xmlns='http://schemas.microsoft.com/win/2004/08/events/event'><System><Provider Name='Service Control Manager' Guid='{555908d1-a6d7-4695-8e1e-26931d2012f4}' EventSourceName='Service Control Manager'/><EventID Qualifiers='16384'>7036</EventID><Version>0</Version><Level>4</Level><Task>0</Task><Opcode>0</Opcode><Keywords>0x8080000000000000</Keywords><TimeCreated SystemTime='2024-06-16T08:00:44.0253181Z'/><EventRecordID>94690</EventRecordID><Correlation/><Execution ProcessID='768' ThreadID='5940'/><Channel>System</Channel><Computer>EC2AMAZ-GDJBO1N</Computer><Security/></System><EventData><Data Name='param1'>AppX Deployment Service (AppXSVC)</Data><Data Name='param2'>stopped</Data><Binary>41007000700058005300760063002F0031000000</Binary></EventData><RenderingInfo Culture='en-US'><Message>The AppX Deployment Service (AppXSVC) service entered the stopped state.</Message><Level>Information</Level><Task></Task><Opcode></Opcode><Channel></Channel><Provider>Microsoft-Windows-Service Control Manager</Provider><Keywords><Keyword>Classic</Keyword></Keywords></RenderingInfo></Event>

Windows Server側も同じ時間帯に同じlogが出力されています。
CloudWatch LogsにXML形式でアップロードされていそうです。
問題なくログ取集できていそうですね。
9.png

2024/6/18 追記

この記事の続きとしてCloudWtach LogsにアップロードしたlogをS3に手動でエクスポートする方法も確認しました。近いうちに自動化までもっていきます。

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