Datadogはログ保存期間をすぎるとDatadog内で確認できなくなる。
そのため、S3にアーカイブする機能がもともと備わっている。
それがLog Rehydration™
機能によりDatadog内で取得できるようになってたのでメモ*1。
アーカイブから復元するためのIAMポリシーをロールに当てる
ぶっちゃけ書いてある通りなので恐縮だが、以下のポリシーを作る。
ポリシーの内容はJSONタブで以下を貼り付ける。MY_BUCKET_NAME_1_
などは自身のに読み替える。
DatadogUploadAndRehydrateLogArchives
のResourcesの_MY_OPTIONAL_BUCKET_PATH_1
はワイルドカードも使える様子。
実際のログファイルまでワイルドカードを使って掘って指定した。
ポリシーの名前はDatadogUploadAndRehydrateLogArchivesPolicy
としておく(任意)。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DatadogUploadAndRehydrateLogArchives", "Effect": "Allow", "Action": ["s3:PutObject", "s3:GetObject"], "Resource": [ "arn:aws:s3:::<MY_BUCKET_NAME_1_/_MY_OPTIONAL_BUCKET_PATH_1>/*", "arn:aws:s3:::<MY_BUCKET_NAME_2_/_MY_OPTIONAL_BUCKET_PATH_2>/*" ] }, { "Sid": "DatadogRehydrateLogArchivesListBucket", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": [ "arn:aws:s3:::<MY_BUCKET_NAME_1>", "arn:aws:s3:::<MY_BUCKET_NAME_2>" ] } ] }
作成したポリシーをロールに割り当てる。
すでにDatadogを使っている人は、DatadogAWSIntegrationRole
というロールがあると思う(Amazon Web Services Integrationで設定したRole
https://app.datadoghq.com/account/settings#integrations/amazon-web-services )。
これにポリシーをアタッチする。
Archivesページで設定
呼び戻したいログ
欲しいログを検索する。
数分でアクティブになった。
時系列が遠いと、より時間がかかる様子(40Minitesとか書いてあるけど実際そんなに掛かってない)。
Log Explorerで見る
プルダウンで選択する。
なお復元したログは課金対象なので注意!
削除
右側のゴミ箱アイコンから削除できる。 24時間以内であれば、削除を取りやめることも出来るようだ。
おわりに
ポリシー作成時のS3バケットのパス指定で若干ハマった。よく英語読めばすぐわかるので良く読もうな。
Be sure to edit the bucket names and, if desired, specify the paths that contain your log archives.
AthenaでちびちびSQL書かなくても検索できるのでアツい機能ですね。さっそく社内に展開しよう。
*1:相変わらず公式ドキュメントは書いてある場所が散らかっている