CloudWatch Logs on Windows 2012 Server
以前に紹介したCloudWatch Logs ですが、Windows Server向けにもLog送信サービスが開始されました。
実は結構前からサポートしていたようで、いろんなブログで紹介されておりますが、みんなが一番やりたいであろうアプリケーションログ(カスタムログ)を投げるまでをやってみたいと思います。
さて、実際にファイルを見張り、更新があった時に差分をCloudWatch Logsに飛ばしてくれるサービスは、Ec2Configという名前です。このプログラムは、様々なユーティリティーの集合体で、Windowsの場合、デスクトップにインスタンスタイプやIDが表示されていると思いますが、それもコイツの仕事です。ですので、ほとんどの方がこのEc2Configをアップデートすれば、準備は完了です。
ダウンロードはこちらから可能です
http://aws.amazon.com/developertools/5562082477397515
インストールは問題なくできると思うので省きます。設定ですが、Ec2 Service Properties のダイアログのCloudWatch Logsにチェックを入れます。
その後、設定ファイルを編集します。設定ファイルは C:\Program Files\Amazon\Ec2ConfigService\Settings\AWS.EC2.Windows.CloudWatchです。古いバージョンだと、GUI操作でこのファイルを設定出来たそうですが、現在の最新版では出来ませんでした。頑張って手編集です。
大事な所は まず "Id": "CloudWathLogs" です。インスタンスでIAMロールを使っていれば、Credentialの設定は省略出来ます。が、LogStreamをログファイルごとに分けたい場合は、別エントリを作ってやる必要があります。今回は元からある Default-Log-Groupとは別にアプリログが入るLogStreamを作成したいので、2つ作ります。(IAMロールを使っているので、AccessKye,SecretKeyは空です。ロールつけてない人は、入れないとダメです)
次に、"Id": "CustomLogs"です。カスタムログをここで指定しているので、日付の書式だけ変更しました。CultureNameなどの細かい設定は環境に合わせてください。
最後に、"Flows" です。これは、文字通り何を収集して、どこに投げるを表しています。デフォルトでは、(システム)アプリケーションイベントログと、システムイベントログを、CloudWathLogs(LogStream = Default-Log-Group) に投げろとなっています、カスタムログを 別のLogStreamに投げたいので、"CustomLogs,CloudWatchLogsApp1" を追加しております。
最後に超重要なこと!
設定ファイル変えたはいいが、いつ読み込まれるんだ?と鯖缶やインフラ屋なら思うでしょうが、再読み込みをするには、サービスの再起動が必要です。再起動させるサービスは Ec2Config という名前です。(ここでかなりの時間ハマってしまいました。是非ともでかでかと書いておいて欲しい。)
手書きでログを書いて、試してみたところ、ちゃんと取れました。
このCloudWatchLogsの機能ですが、実はLogだけではなく、CloudWatchのカスタムメトリックも対応しています。Windowsでカスタムメトリックとなったらやだなーと思っていたので、これはありがたいです。しかし、ドキュメントもCloudWatchLogs以外の記載がセットになっているので、読むのに骨が折れますが、便利な機能が満載なので、WindowsServerで運用されている方は、利用をオススメします。
実は結構前からサポートしていたようで、いろんなブログで紹介されておりますが、みんなが一番やりたいであろうアプリケーションログ(カスタムログ)を投げるまでをやってみたいと思います。
さて、実際にファイルを見張り、更新があった時に差分をCloudWatch Logsに飛ばしてくれるサービスは、Ec2Configという名前です。このプログラムは、様々なユーティリティーの集合体で、Windowsの場合、デスクトップにインスタンスタイプやIDが表示されていると思いますが、それもコイツの仕事です。ですので、ほとんどの方がこのEc2Configをアップデートすれば、準備は完了です。
ダウンロードはこちらから可能です
http://aws.amazon.com/developertools/5562082477397515
インストールは問題なくできると思うので省きます。設定ですが、Ec2 Service Properties のダイアログのCloudWatch Logsにチェックを入れます。
その後、設定ファイルを編集します。設定ファイルは C:\Program Files\Amazon\Ec2ConfigService\Settings\AWS.EC2.Windows.CloudWatchです。古いバージョンだと、GUI操作でこのファイルを設定出来たそうですが、現在の最新版では出来ませんでした。頑張って手編集です。
大事な所は まず "Id": "CloudWathLogs" です。インスタンスでIAMロールを使っていれば、Credentialの設定は省略出来ます。が、LogStreamをログファイルごとに分けたい場合は、別エントリを作ってやる必要があります。今回は元からある Default-Log-Groupとは別にアプリログが入るLogStreamを作成したいので、2つ作ります。(IAMロールを使っているので、AccessKye,SecretKeyは空です。ロールつけてない人は、入れないとダメです)
{ "Id": "CloudWatchLogs", "FullName": "AWS.EC2.Windows.CloudWatch.CloudWatchLogsOutput,AWS.EC2.Windows.CloudWatch", "Parameters": { "AccessKey": "", "SecretKey": "", "Region": "us-east-1", "LogGroup": "Default-Log-Group", "LogStream": "{instance_id}" } }, { "Id": "CloudWatchLogsApp1", "FullName": "AWS.EC2.Windows.CloudWatch.CloudWatchLogsOutput,AWS.EC2.Windows.CloudWatch", "Parameters": { "AccessKey": "", "SecretKey": "", "Region": "us-east-1", "LogGroup": "App1Log", "LogStream": "{instance_id}" } },
次に、"Id": "CustomLogs"です。カスタムログをここで指定しているので、日付の書式だけ変更しました。CultureNameなどの細かい設定は環境に合わせてください。
{ "Id": "CustomLogs", "FullName": "AWS.EC2.Windows.CloudWatch.CustomLog.CustomLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogDirectoryPath": "C:\\CustomLogs\\", "TimestampFormat": "HH:mm:ss yyyy/MM/dd", "Encoding": "UTF-8", "Filter": "", "CultureName": "en-US", "TimeZoneKind": "Local" } },
最後に、"Flows" です。これは、文字通り何を収集して、どこに投げるを表しています。デフォルトでは、(システム)アプリケーションイベントログと、システムイベントログを、CloudWathLogs(LogStream = Default-Log-Group) に投げろとなっています、カスタムログを 別のLogStreamに投げたいので、"CustomLogs,CloudWatchLogsApp1" を追加しております。
"Flows": { "Flows": [ "(ApplicationEventLog,SystemEventLog),CloudWatchLogs", "CustomLogs,CloudWatchLogsApp1" ] }
最後に超重要なこと!
設定ファイル変えたはいいが、いつ読み込まれるんだ?と鯖缶やインフラ屋なら思うでしょうが、再読み込みをするには、サービスの再起動が必要です。再起動させるサービスは Ec2Config という名前です。(ここでかなりの時間ハマってしまいました。是非ともでかでかと書いておいて欲しい。)
手書きでログを書いて、試してみたところ、ちゃんと取れました。
このCloudWatchLogsの機能ですが、実はLogだけではなく、CloudWatchのカスタムメトリックも対応しています。Windowsでカスタムメトリックとなったらやだなーと思っていたので、これはありがたいです。しかし、ドキュメントもCloudWatchLogs以外の記載がセットになっているので、読むのに骨が折れますが、便利な機能が満載なので、WindowsServerで運用されている方は、利用をオススメします。