概要
Observability Pipelines を使用すると、オンプレミスまたはクラウド環境からデータが離れる前に、ログを収集・処理し、どこへルーティングするかを決定できます。
ログはすべて同じ価値があるわけではありません。たとえば、ライブ運用のトラブルシューティングでは、error ログの方が info ログより有用であることが多いです。本番環境のログは、非本番環境のログよりも重要です。そのため、すべてのログをインデックス ソリューションへルーティングすると、データ全体の価値が希薄化し、予算を超過する可能性があります。
次のような状況でも、ログ ボリュームとコストが不必要に増加することがあります:
- アプリケーション チームが誤って debug ロギングを有効にしてしまう。
- エラー ループ条件を含む新しいビルドをリリースし、エラーが大量発生する。
- チームが他のテレメトリー ソリューションを実装するよりも簡単だと思い、ログにできる限り多くのパフォーマンス データやメトリクス データを追加しようとする。
- ログに使用されないフィールドや値が余計に含まれている。
本ガイドでは、Observability Pipelines のプロセッサーを活用してログ ボリュームを削減する戦略を紹介し、コストを抑えつつ保存データの価値を高める方法を説明します。
ログ ボリュームを削減する戦略
次の戦略に従ってログ ボリュームを削減しましょう:
ログをサンプリングする
繰り返しが多くノイズが多い、または価値が低いと分かっている大量のログの一部を破棄することで、全体のログ ボリュームを削減します。サンプル プロセッサーを使用してフィルター クエリに一致するログのサブセットを抽出し、指定した割合のログのみを保持します。これにより、可視性と分析能力を維持しつつ、大量ログ ストリームの代表的なビューを得ることができます。
ログをフィルタリングする
すべてのログが価値を持ち、保存が必要とは限りません。たとえば、非本番システムの debug ログを保持する必要はおそらくないでしょう。そのため、フィルター プロセッサーを使用してそれらのログを破棄し、ログ管理ソリューションへ送信しないようにします。
ログの属性を削除する
ログには数百の属性が含まれることがありますが、調査や分析に使用される属性はごくわずかです。使用されていない、または有用でない属性を削除することでログのサイズを縮小し、取り込みコストを下げるためにフィールド編集プロセッサーを使用します。
ログを削減する
システムは 1 秒あたり数百、場合によっては数千のログを出力します。これらのログを、連結、合計、値の配列化など、さまざまな方法でフィールドをマージし、1 つのイベントにまとめます。選択したマージ戦略に基づいて複数のログ イベントを 1 つのイベントにまとめるには、リデュース プロセッサーを使用します。これにより、送信先へ送られるイベントの総数が削減されます。
ログを重複排除する
ログを重複排除すると、データの正確性と一貫性を維持し、誤ってログが重複送信される上流側のミスから保護できます。デデュプリケーション プロセッサーを使用してフィールドを比較し、内容が同一かどうかを確認して重複を破棄し、ログ ボリュームを削減しましょう。
クォータを実装する
クォータを利用すると、さまざまなレベルでログをガバナンスおよび制御できます。たとえば詳細レベルでは特定のアプリケーション ログ (app:xyz
) に上限を適用し、より高いレベルでは info ログ (status:info
) に上限を適用できます。これにより、予算と使用量の要件を満たすことが可能です。
クォータ プロセッサーを使用して次の設定を行います。
- フィルターを定義する: 監視対象のログを絞り込むためのフィルターを設定します。これは環境単位の高レベル フィルターでも、チーム単位の詳細フィルターでも構いません。また、複数のログ属性を組み合わせてフィルタリングすることも可能です。
- クォータを定義する: バイト数またはイベント数に基づいてクォータを設定します。クォータを超過したログを破棄するか、あるいは上限到達時にアラートのみを受け取り、調査・対処を行うかを選択できます。
ログを直接アーカイブへルーティングする
ログを Datadog でリハイドレート可能な形式で、Amazon S3、Google Cloud Storage、Azure Storage など自社クラウド ストレージへ直接ルーティングできます。必要に応じてアーカイブを Datadog へ再取り込みできます。詳細はログをアーカイブするを参照してください。
ログ ボリューム削減戦略の有力な候補
ユーザーは前述の戦略を実施して、総ログ ボリュームを削減しています。以下は、ログ削減戦略の対象として特に有力なログ ソースの例です。
- CDN
- VPC とネットワーク フロー
- Web サーバー アクティビティ
- ロード バランサー
- CI/CD サービス
- コントロール プレーン
- サービス メッシュ
- ファイアウォール
- ネットワーク アプライアンス
- DNS
- デバッグ ログ
- 監査ログ
- 非本番環境のログ
参考資料