Windows ServerのログをCloudWatch Logsに転送する
技術検証として
Windows ServerのログをCloudWatch Logsに転送する。
ざっくりドキュメントを読む感じだと、いったんサーバー内で出力されたログをCloudWatch Logsに転送する感じなのだろうか。
直接ログをAPIからCloudWatch Logsに送信するのはありだろうか。
環境
- Windows Server2019
- EC2(AWS)
- .NET Framework 4.7.2の検証用Web API
CloudWatch Logsの概要
Amazon CloudWatch Logs を使用して、Amazon Elastic Compute Cloud (Amazon EC2) インスタンス、AWS CloudTrail、Route 53、およびその他のソースのログファイルの監視、保存、アクセスができます。
ロググループ
ロググループは、保持、監視、アクセス制御について同じ設定を共有するログストリームのグループを定義します。各ログストリームは、1 つのロググループに属している必要があります。たとえば、各ホストから Apache アクセスログの別のログストリームがある場合は、それらのログストリームを MyWebsite.com/Apache/access_log という名前の 1 つのロググループにグループ化できます。
1 つのロググループに属することができるログストリームの数に制限はありません。
ログストリーム
ログストリームは、同じソースを共有する一連のログイベントです。より具体的には、ログストリームは一般的に、モニタリングされているアプリケーションインスタンスやリソースから送信された順序でイベントを表すものです。たとえば、ログストリームは特定のホストの Apache アクセスログと関連付けられる場合があります。ログストリームを必要としなくなった場合、aws logs delete-log-stream コマンドを使用して、削除できます。
ログイベント
ログイベントは、モニタリングされているアプリケーションまたはリソースによって記録されたアクティビティのレコードです。CloudWatch Logs が理解するログイベントレコードには 2 つのプロパティがあります。イベント発生時のタイムスタンプおよび生のイベントメッセージです。イベントメッセージは UTF-8 でエンコードされている必要があります。
図で表すとこんな感じかな
- 統合CloudWatchエージェント経由でCloudWatch Logsに取り込むことが可能
- AWSLogger.Coreを利用すれば、アプリケーション側からCloudWatch Logsへの転送も可能