VTRyo Blog

一歩ずつ前に進むブログ

ログ保存期間が過ぎてアーカイブされたログをDatadog内に復元する Rehydrating from Archives

Datadogはログ保存期間をすぎるとDatadog内で確認できなくなる。

そのため、S3にアーカイブする機能がもともと備わっている。

それがLog Rehydration™機能によりDatadog内で取得できるようになってたのでメモ*1

アーカイブから復元するためのIAMポリシーをロールに当てる

docs.datadoghq.com

ぶっちゃけ書いてある通りなので恐縮だが、以下のポリシーを作る。

ポリシーの内容は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 )。

これにポリシーをアタッチする。

f:id:vtryo:20200123220900p:plain
Roleにポリシーアタッチ

Archivesページで設定

app.datadoghq.com

f:id:vtryo:20200123221026p:plain

呼び戻したいログ

欲しいログを検索する。

f:id:vtryo:20200123215006p:plain
https://app.datadoghq.com/logs/pipelines/historical-views

f:id:vtryo:20200123215044p:plain
https://app.datadoghq.com/logs/pipelines/historical-views

数分でアクティブになった。

f:id:vtryo:20200123232259p:plain

時系列が遠いと、より時間がかかる様子(40Minitesとか書いてあるけど実際そんなに掛かってない)。

f:id:vtryo:20200123232736p:plain

Log Explorerで見る

f:id:vtryo:20200123232354p:plain
プルダウンでRehydrate一覧が出る

プルダウンで選択する。

f:id:vtryo:20200123233250p:plain
Jump to Historical View's Time Rangeを押すと表示される(検索したログがあれば)

なお復元したログは課金対象なので注意!

f:id:vtryo:20200123233803p:plain

削除

右側のゴミ箱アイコンから削除できる。 24時間以内であれば、削除を取りやめることも出来るようだ。

f:id:vtryo:20200123233111p:plain

おわりに

ポリシー作成時のS3バケットのパス指定で若干ハマった。よく英語読めばすぐわかるので良く読もうな。

Be sure to edit the bucket names and, if desired, specify the paths that contain your log archives.

AthenaでちびちびSQL書かなくても検索できるのでアツい機能ですね。さっそく社内に展開しよう。

*1:相変わらず公式ドキュメントは書いてある場所が散らかっている