こんにちは。
株式会社クラスアクト インフラストラクチャ事業部の大塚です。
前回、WindowsのEventlogをCloudWatch Agentを使って自動でCloudWatch Logsにアップロードする手順を確認しました。
今回はこのCloudWatch LogsにアップロードしているlogをS3に手動で退避する方法をメモって行きたいと思います。
環境イメージ
構築
S3作成
今回はwineventlog-cloudwatchlogsという名前のS3バケットを作成し、取得するEventlogであるApplication,Security,Systemのフォルダを切りました。
S3作成時、名前を設定しただけで他はデフォルトのままで作成しております。
作成したバケットのバケットポリシーを編集します。
今回は以下のように編集しました。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "logs.ap-northeast-1.amazonaws.com"
},
"Action": "s3:GetBucketAcl",
"Resource": "arn:aws:s3:::wineventlog-cloudwatchlogs"
},
{
"Effect": "Allow",
"Principal": {
"Service": "logs.ap-northeast-1.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::wineventlog-cloudwatchlogs/*",
"Condition": {
"StringEquals": {
"s3:x-amz-acl": "bucket-owner-full-control"
}
}
}
]
}
手動でS3にlogをエクスポートする
手動でCloudWatch LogsからS3にデータをエクスポートしたいと思います。
CloudWatch Logsの画面からS3にエクスポートしたいロググループを選択して、データをAmazon S3にエクスポートを選択します。
エクスポートします。
エクスポート先のバケット名と、プレフィクス(フォルダのこと)を入力します。
エクスポートを開始するとタスクが表示されます。
ステータスがsuccesfullyとなることを確認します。
バケットを確認してみます。少し深いですが圧縮されたログがあります。
これをローカルにダウンロードし解凍することで、CloudWatch Logs上で見ていたlogをローカルで見ることが出来ます。
近いうちにEventBridgeを使って自動化する。
⇒自動化しました。