概要

アーカイブ検索では、事前にリハイドレートすることなく、長期オブジェクトストレージアーカイブのログを直接クエリできます。アーカイブ検索を使用すると、アーカイブされたログに即座にアクセスすることができ、インデックス保持期間を超えた調査、監査、トラブルシューティングが可能です。

アーカイブ検索は、データがスキャンされたときにリアルタイムで結果をストリーミングする点で、リハイドレートとは異なります。バックグラウンドバッチジョブとして実行されるわけではありません。最初の 100,000 件のログは一時的に無料で保持され、スキャン自体の料金しかかからないため、コスト効率が高く、より迅速です。

検索を起動すると、次のようになります。

  • ログが専用の結果ページにストリーミングされます。
  • 最大 100,000 件のログ24 時間保持されます。
  • 必要に応じて、検索の前後に結果をリハイドレートできます。これにより、結果を長く保持し、Datadog 全体で利用可能にすることができます。

この機能は、次の方法でアーカイブされたログをサポートします。

典型的な使用例

アーカイブ検索は、外部アーカイブに保存されているログをクエリする必要がある場合に最適です。 一般的な使用例には次のものがあります。

  • インシデント調査: インデックス保持期間を超える transaction_iduser_id、または session_id に関連するログを取得します。
    例: 特定の user_id を使用して、インデックス保持期間が 15 日間であっても、3 週間前のログを検索します。

  • セキュリティ分析: IPまたはユーザーによるログイン試行やその他の活動を調査するために、アーカイブされたログを確認します。
    例: 過去 12 か月間の特定の IP アドレスからのすべてのログイン試行を取得します。

  • コンプライアンスおよび監査サポート: 大量のデータを永続的に再インデックス化することなく、監査のためにアーカイブされた顧客または請求ログにアクセスします。
    例: 税務監査のために、過去 18 か月間の請求書関連のログ (customer_id:12345service:billing) をクエリします。

前提条件

アーカイブ検索を使用する前に

  1. 外部アーカイブ (Amazon S3、Azure Storage、または Google Cloud Storage) を構成します。ログアーカイブを参照してください。
  2. アーカイブからの読み取り権限が Datadog に割り当てられていることを確認してください。クラウド特有の権限を参照してください。
    • Amazon S3: IAM ロールの委任
    • Azure Storage: Storage Blob Data Contributor ロールを持つ Azure AD
    • Google Cloud Storage: Storage Object Viewer ロールを持つサービスアカウント

権限

アーカイブ検索を実行するには、logs_write_historical_views 権限が必要です。これはグローバルな権限ですが、ユーザーは Logs Read Archive 権限を持つアーカイブからのみログを検索できます。

アーカイブ検索の結果は、アーカイブ検索機能にアクセスできる組織内のすべてのユーザーに表示されます。ただし、制限クエリ (Datadog で構成されたログセキュリティフィルターやデータ制限など) は、結果ページでも引き続き適用され、すべてのユーザーに適用されます。これは、各ユーザーが組織全体の権限とフィルターに基づいて表示を許可されたログのみを確認できることを意味します。

アクセス制御とログセキュリティに関する詳細は、ログ用に RBAC を設定する方法を参照してください。

  1. Logs > Archive Search > New Search の順に移動します。
  2. アーカイブとタイムレンジを選択します。
  3. user_id:abc123 のようなクエリを入力します。
  4. (オプション) 検索の名前を変更します。
  5. Mode の下で、実行する検索の種類を選択します。
    • リアルタイムで結果を取得するには、Search を選択します。最大 100,000 件のログが 24 時間保持されます。
    • 完全なプラットフォームアクセスとカスタム保持のために結果をリハイドレートするには、Search & Rehydration を選択します。
  6. Search をクリックします。

ログがリアルタイムで結果ページにストリーミングされます。進行状況バーにスキャンのステータスが表示され、いつでも検索をキャンセルできます。

クエリのプレビュー

検索を実行すると、Datadog は選択されたアーカイブとタイムレンジから小さなサンプル (最大 1,000 件のログ) をダウンロードします。 このプレビューを使用して、クエリの構文を確認し、ログの構造を調べ、フィルターを調整します。

: プレビューサンプルには、クエリに一致するログが含まれない場合があります。検証と調査のみを目的としています。

結果を表示および保持する

デフォルトでは、スキャンに対してのみ料金が発生します。最初の 100,000 件のログは一時的に (24 時間) 無料で保存され、アーカイブ検索結果ページから直接アクセスすることができ、任意のログをクリックしてその詳細とコンテキストを確認できます。24 時間後に結果は自動的に期限切れになります。

より多くのデータを保持したり、他の Datadog 製品でログにアクセスしたりするには、次のいずれかを選択します。

  • 起動前にリハイドレートする: 100,000 件を超えるログを保持し、カスタム保持期間 (たとえば、7 日、15 日、30 日) を設定し、プラットフォーム全体で結果にすぐにアクセスできます。
  • 完了後にリハイドレートする: 24 時間のウィンドウ内で、結果をリハイドレートして保持期間を延長し、ログエクスプローラー、ダッシュボード、ノードブックで利用できるようにすることができます。

結果を分析する

検索の起動後、ログは Archive Search Results ページにストリーミングされます。このページから、フィルターを使用して結果を絞り込み、特定のログの詳細を開いて問題を調査することができます。

制限事項

アーカイブ検索はアーカイブされたログへのアクセスを提供しますが、インデックス化されたログと比較して分析機能は限られています。

  • 集計や分析はない: アーカイブ検索結果に対して直接集計を実行したり、視覚化を作成したり、高度な分析を行ったりすることはできません。
  • 結果ページのみ: アーカイブ検索結果は専用の結果ページでのみ利用可能で、Datadog プラットフォームの他の部分 (ダッシュボード、ノートブック、ログエクスプローラーなど) からクエリを実行することはできません。

完全な分析とプラットフォーム全体の可視性を有効にするには、検索結果をリハイドレートする必要があります (検索の起動前または完了後の 24 時間のウィンドウ内に行います)。リハイドレートすると、ログがすべての Datadog 製品で利用可能になり、完全な集計、視覚化、および分析機能が提供されます。

検索を管理する

Archive Search list view から、次のことができます。

  • 実行中の検索をキャンセルする: すでに取得されたログは保持されます。
  • 検索を複製する: 効率的な再実行のために同じパラメーターでアーカイブ検索作成フォームを開きます。

検索のパフォーマンスと最適化

アーカイブ検索では、選択したタイムレンジ内のアーカイブされたログファイルがスキャンされます。スキャンボリュームは、クエリ中に読み取られたファイルの合計サイズを指します。スキャンボリュームが大きいと、検索時間とクラウドのエグレスコストの両方が増大する可能性があります。

パフォーマンスを最適化してコストを削減するには

  • タイムレンジを狭める: 検索を可能な限り小さなウィンドウに制限します。
  • スキャン制限を設定する: Logs Write Archives 権限を持つ管理者は、Settings でアーカイブごとに最大スキャンサイズを設定できます。
  • パーティション属性を使用する (プレビュー): serviceenvstatus のような低カーディナリティデータの検索を加速する最も効果的な方法です。Datadog は、クエリに一致しないパーティション全体をスキップします。
  • ルックアップ属性を使用する (プレビュー): trace_iduser_id のような高カーディナリティデータの検索を加速する最も効果的な方法です。
  • zstd 圧縮を使用する: アーカイブには、デフォルトでは zstd 圧縮が使用されます。gzip と比較してスキャンボリュームとクラウドのエグレスコストが削減されます。アーカイブに gzip を使用している場合は、ログアーカイブを参照して zstd に切り替えてください。

: パーティション属性またはルックアップ属性を構成する場合、検索が速くなるのは構成後にアーカイブされたログのみです。この構成前にアーカイブされたログには効果がありません。

パーティション属性で検索を加速する

アーカイブにパーティション属性を設定して、書き込み時に低カーディナリティフィールドの値でログをグループ化できます。servicesourceenv、または status のような属性を使用してください。

同じパーティションの値を共有するログは、ストレージ内で同じ場所に配置されます。検索時に、Datadog はクエリをパーティションメタデータに対して評価し、一致しないパーティションをスキップすることで、スキャンするデータ量を削減します。

これを設定するには、ログアーカイブのドキュメントを参照してください。

ルックアップ属性で検索を加速する

アーカイブにルックアップ属性を設定して、ストレージバケット内の無関係なデータブロックをスキップできます。たとえば、trace_id または user_id を設定すると、スキャンされるデータの量が大幅に減少し、クラウドプロバイダーのエグレス料金が少なくなります。

これを設定するには、ログアーカイブのドキュメントを参照してください。

パーティション属性とルックアップ属性の違い

パーティションルックアップ
カーディナリティ低 (数十から数百)高 (数百万)
典型的な属性servicesourceenvstatustrace_idcontainer_iduser_idtransaction_id
どのように役立つかスキャン対象からパーティション全体を除外できる個々のログエントリを特定できる
最適な用途環境/サービスによる広範なフィルタリング特定の識別子に対するアドホック調査

最大の検索パフォーマンスを得るために、両方を組み合わせて使用します。パーティション属性は検索スコープを関連するデータセグメントに絞り込み、ルックアップ属性はそれらのセグメント内の特定のログを瞬時に見つけることができます。

結果のリハイドレートのためのデフォルトの制限

Logs Write Archives 権限を持つ管理者は、チーム間での Archive Search の効率的な使用を確保するためにデフォルトの制御を構成できます。Settings をクリックして次を構成します。

  • Default Rehydration volume limit: Search & Rehydration モードでアーカイブ検索ごとにリハイドレートできるログのデフォルト数 (百万単位) を定義します。制限に達した場合、アーカイブ検索は自動的に停止しますが、すでにリハイドレートされたログには引き続きアクセスできます。管理者は、アーカイブ検索の作成中にこの制限をオーバーライドすることも許可できます。

  • Rehydration retention periods: 結果をリハイドレートする際に利用可能な保持期間を選択します。選択された期間 (たとえば、3、7、15、30、45、60、90、または 180 日) のみが、Datadog でログを検索可能な期間を選択する際のドロップダウンメニューに表示されます。

クラウド特有の権限

Datadog は、アーカイブからコンテンツを検索するためにアーカイブを読み取る権限を必要とします。この権限はいつでも変更できます。

ログイベントをアーカイブからリハイドレートするために、Datadog は AWS インテグレーションで構成する AWS アカウントの IAM ロールを使用します。このロールをまだ作成していない場合は、こちらの手順に従って作成してください。このロールに対してアーカイブからのログイベントのリハイドレートを許可するには、下記のアクセス許可ステートメントを IAM ポリシーに追加する必要があります。バケット名を編集し、必要であればログアーカイブへのパスを指定してください。

{
  "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>"
      ]
    }
  ]
}

ロールの委任を S3 アーカイブに追加する

Datadog では、ロールの委任を使用してアクセスを許可するように構成されたアーカイブからの検索のみをサポートしています。Datadog IAM ロールに先ほどの IAM ポリシーを含めた後で、アーカイブコンフィギュレーションのページにある各アーカイブが、AWS アカウントとロールの正しい組み合わせで構成されていることを確認してください。

Datadog は、アーカイブのストレージアカウントのスコープを持つ Storage Blob Data Contributor ロールが割り当てられた Azure AD グループを使用して、ログイベントを検索します。このロールを Datadog のサービスアカウントに付与するには、ストレージアカウントの Access Control (IAM) ページで、Storage Blob Data Contributor ロールを Datadog インテグレーションアプリに割り当てます。

アーカイブからログイベントを検索するために、Datadog は Storage Object Viewer ロールが割り当てられたサービスアカウントを使用します。このロールを Datadog のサービスアカウントに付与するには、Google Cloud IAM 管理者ページでサービスアカウントのアクセス許可を編集し、ロールを 1 つ追加してから Storage > Storage Object Viewer の順に選択します。

参考資料