AWS CloudWatch LogsでWindows OSのイベントログを収集する
ども、大瀧です。A CloudWatch Logsはニアリアルタイムなログストアとして主にLinux向けに利用されてきました。APIをコールするだけなので技術的にはWindowsからでも使えるのですが、AWSが提供する標準ツールが無くてなかなか手が出せなかったのではないでしょうか。
今朝未明にWindows AMIに同梱されるエージェントEC2ConfigがCloudWatch Logsに対応し、Windowsのイベントログを送信できるようになったので、早速試してみました!
- Using CloudWatch Logs with Amazon EC2 Running Microsoft Windows Server - Application Management Blog
動作確認環境
- AMI : Microsoft Windows Server 2012 R2 Base - ami-c9466bc8(東京リージョン)
IAMロールの割り当て
EC2ConfigからCloudWatch APIにアクセスするためのAPIキーが必要です。IAMユーザーを作成、APIキーを発行しても良いのですが、よりセキュアな方法としてIAMロールがオススメです。以下の権限を設定したIAMロールを作成し、EC2インスタンス起動時に設定しましょう。
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "cloudwatch:*", "logs:*" ], "Effect": "Allow", "Resource": "*" } ] }
EC2Configの構成
起動したインスタンスにRDP接続し、EC2Configの設定画面を開きます。スタートメニューから下矢印のボタンでアプリケーション一覧を表示し、[EC2ConfigService Settings]をクリックします。
既定ではCloudWatch Logsへのログ出力は無効になっているので、[CloudWatch Logs]セクションの[Enable CloudWatch Logs integration]のチェックをオンにし、有効化します。続いて[Settigns]ボタンからログ送信設定画面を開きます。
EC2Configのバージョン2.2.10以降では、設定ボタンが削除され、有効/無効のみ切り替えられるようです。設定は別途、以下のテキストファイルをエディタで開き編集することになります。
%PROGRAMFILES%\Amazon\Ec2ConfigService\Settings\AWS.EC2.Windows.CloudWatch.json
設定項目はAWSドキュメント を参照ください。
[Region]では、CloudWatch Logsのエンドポイントのリージョンを選択します。インスタンスを実行するリージョンではないことに注意します。今回はバージニア(us-east-1)を選択します。[CloudWatch Logs]セクションでは、ログの格納単位であるLog GroupとLog streamを設定します。多くの場合、Log streamはインスタンスIDで問題ないと思いますので、必要に応じて[Log Group]を変更しましょう。今回はどちらも初期値のままにします。
[Event Logs]タブでは、送信するログの種類を選択できます。
設定できたら、[OK] - [OK]とクリックし、設定は完了です。変更した設定の反映には、EC2Configサービスの再起動が必要ですので、サービス管理画面からRestartを実行します。
これで、ログの送信がスタートするはずです。
Management Consoleでのログ出力の確認
AWS Management ConsoleのCloudWatchの画面から、送信したログを確認します。EC2Configの設定で選択した送信先リージョンを選択、[CloudWatch] - [Logs]をメニューから選択します。Log Group一覧に、こちらもEC2Configの設定で指定したLog Groupが表示されているはずです。グループ名をクリックします。
Log Stream一覧に、EC2インスタンスのインスタンスIDが表示されるはずです。クリックします。
ログが表示されました!収集したログを検索したり、キーワードベースでアラームを設定することもできます!
収集したログを検索したり、キーワードベースでアラームを設定することもできます!詳しくは横田のエントリーを参照ください。
まとめ
AWSのブログではEC2Configの設定ファイルを直接編集する手順が紹介されていましたが、EC2ConfigのGUIだけでかなり簡単に設定することができました!小規模なWindowsログ管理であれば、すぐにはじめられるCloudWatch Logsが有力な選択肢になると思います!
また、今回のアップデートでEC2ConfigにCloudWatchカスタムメトリクスをPutする機能も追加されました。早速弊社佐々木がブログにまとめていますので、こちらもどうぞ!