Datadog logsとても便利ですよね。ですがデータを長時間保持することはできず、古いデータは消えてしまいます。
そういうときに、S3などのクラウドストレージにログを保存する設定を入れておくと消えた後でも再度ログを持ってくることで検索可能にすることができます。
本当はまだ使ったことのないDatadogの新しい機能を使ってみて「使ってみた」記事を書こうと思ったのですが、最近この仕組みに助けられたためにLog Rehydrationの紹介をします。
なにができるのか
Datadog logsの保存期間は一定(デフォルトでは2週間)でそれを超えると、Datadog logsからデータが消えます。
以下は2ヶ月間を指定して、直近一月以上前のデータが消えている状態です。(弊社は保存期間をひと月にしています)
課金すれば、さらに長い保持期間を設定できるのですが、いつまでもログを保存しておくと高額になります。そこで取り込んだログを別のストレージに保管しておくことで、必要になったときに検索可能にすることができます。
設定方法
まずDatadogにあるログをクラウドストレージに保存する設定をDatadogにする必要があります。Archives → New Archiveを押下すると、どのクラウドストレージに保存をするのかを設定できます(AWS、GCP、Azureが指定できます)
ここではAWS S3を選択します。画面ではDatadogで設定しているIAMの権限が選択可能になっていますが、そのロールにS3に書き込む権限が必要になるのが注意点です。
S3への書き込み権限の設定例
以上の設定をすると自動的に過去のログをS3に保存してくれます。
以下は保存されているS3の画面です。
Log Rehydrationの手順
さてクラウドストレージへの保存が完了したので、そこからdatadogへログを再度流し込んでみましょう。
Rehydrate from Archives → New Historycal Viewを押下し、いつのログを戻したいのか選択します。
上の図は11/10-11/11の2日間のログを戻してくる設定。
クラウドストレージからDatadogにログを戻すのには少し時間がかかります。その推定時間は画面に表示されます。
またどれぐらいの量のログを戻すことになるのかは、同じ画面から推定することもできます。
検索してみる
作成したIndexはdatadog logsのIndexでHistorycal Indexesとして選択することができるようになります。
以上です。
これで過去のデータも検索できてさらに調査が捗りますね。