概要

さまざまなテクノロジーやアプリケーションから取得されるログを一元化すると、ログ管理環境に数十個から数百個の属性が生成されます。特に多数のチームのユーザーが同じ環境内で作業している場合は、その傾向が顕著です。

たとえば、クライアントの IP も、clientIP、client_ip_address、remote_address、client.ip など、さまざまなログ属性が存在します。リクエストの実行時間の場合は、exec_time、request_latency、request.time_elapsed などのようになります。

属性とエイリアスを使用して、ログ環境を統一します。

属性の種類とエイリアス設定

属性は、ログエクスプローラーでのフィルタリングと検索に使用されるログファセットとタグを規定します。

  • 予約済み属性は自動的に取り込まれます。

  • 標準属性は、組織で使用する命名規則の基盤となる存在です。アプリに標準的な属性のデフォルトセットが用意されていますが、このリストをカスタマイズして、チームの命名規則を作ることができます。

  • 標準属性で命名規則を実装した場合や、複数のログソースから一意の標準ファセットを作成する場合、エイリアス設定を使用します。たとえば、ハイブリッド Apache および Amazon Cloud Front インフラストラクチャーの場合、標準の Network Client IP ファセットと標準の duration を使用して、レイテンシーに最も影響を受けるクライアントを追跡できます。エイリアス設定によりチームの技術スタックを変更することなく命名規則を実装できます。

予約済み属性

次の一覧は、ログと共に自動的に取り込まれる予約済みの属性の一覧です。

注: トレースまたはメトリクスも収集している場合は、統合サービスタグ付けを構成することをお勧めします。このコンフィギュレーションは、env、service、version の 3 つの標準タグを使用して、Datadog テレメトリを結び付けます。詳細については、専用の統合サービスタグ付けドキュメントを参照してください。

属性説明
hostメトリクスで定義されている発信元ホストの名前です。Datadog は、Datadog 内の一致するホストから対応するホストタグを自動的に取得し、それをログに適用します。Agent はこの値を自動的に設定します。
sourceこれは、ログの発生元技術である統合名に対応します。統合名と一致する場合、Datadog は対応するパーサーとファセットを自動的にインストールします。たとえば、nginx、postgresql などです。
statusこれは、ログのレベル/重大度に対応します。パターンの定義に使用され、Datadog Logs UI に専用のレイアウトがあります。
serviceログイベントを生成するアプリケーションまたはサービスの名前です。Logs から API への切り替えに使用されます。このため、両方の製品を使用する際には必ず同じ値を定義してください。
trace_idこれは、トレースに使用されるトレース ID に対応します。ログとそのトレースを関連付けるために使用されます。
messageデフォルトでは、Datadog は message 属性の値をログエントリーの本文として取り込みます。Live Tail では、この値はハイライトされて表示され、全文検索用にインデックス化されます。

標準属性

ログのインテグレーションは標準属性のデフォルトセットに依存します。

標準属性テーブルには、定義済み標準属性のセットが付属しています。このリストに独自の属性を追加したり、既存の標準属性を編集または削除することができます。

新しい標準属性を作成する

管理ユーザーは標準属性リストを管理できます。

  1. 標準属性の構成ページに移動します。
  2. New Standard Attribute をクリックします。
  3. 標準属性を定義します。
    • Path: JSON で確認できる標準属性のパス (例: network.client.ip)。
    • Type: (string、integer、double、boolean): 属性の型。再マップリストの要素をキャストするために使用されます。
    • Description: 属性に関する人間が読める説明。
    • (オプション) Remapping list: 標準属性に再マッピングすべき準拠していない属性のカンマ区切りのリスト。

デフォルトの標準属性リスト

ログ管理のデフォルトの標準属性の完全なリストをご覧ください。リストは機能ドメイン別に分かれています。

標準属性説明
ネットワーク/通信ネットワーク通信で使用されるデータに関連する属性です。すべてのフィールドとメトリクスに network というプレフィックスが付けられています。
位置情報ネットワーク通信で使用される IP アドレスの位置情報に関連する属性です。すべてのフィールドに network.client.geoip または network.destination.geoip というプレフィックスが付けられています。
HTTP リクエストHTTP リクエストおよびアクセスで一般に使用されるデータに関連する属性です。すべての属性に http というプレフィックスが付けられています。これらの属性に依存する代表的なインテグレーションには、Apache、Rails、AWS CloudFront、Web アプリケーションサーバーなどがあります。URL の詳細に関する属性には、http.url_details というプレフィックスが付きます。これらの属性は、HTTP URL のパースされた各部に関する詳細を提供します。URL パーサーによって生成されます。
ソースコードカスタムアプリケーションのロガーを使用してログまたはエラーを生成する際に使用されるデータに関連する属性です。すべての属性に logger または error というプレフィックスが付けられています。これらの属性に依存する代表的なインテグレーションには、Java、Node.js、.NET、Golang、Python などがあります。
データベースこれらの属性に依存する代表的なインテグレーションには、Cassandra、MySQL、RDS、Elasticsearch などがあります。
パフォーマンスパフォーマンスメトリクスに関連する属性です。Datadog ではこの属性をトレース検索のデフォルトのメジャーとして表示および使用するため、この属性に関するログ内で処理時間を再マッピングすることを推奨しています。
ユーザー関連の属性すべての属性とメジャーに usr というプレフィックスが付けられています。
Syslog とログシッパーsyslog またはログシッパーエージェントによって追加されたデータに関連する属性です。すべてのフィールドとメトリクスに syslog というプレフィックスが付けられています。これらに依存するインテグレーションには、Rsyslog、NxLog、Syslog-ng、Fluentd、Logstash などがあります。
DNSすべての属性とメジャーに dns というプレフィックスが付けられています。
イベントすべての属性に evt というプレフィックスが付けられています。

エイリアス設定

宛先属性にマップされるソース属性のエイリアスを作成することで、ログにソースと宛先の両方の属性が含まれるようにできます。

ユーザーはエイリアス設定された (ソース) ファセット属性または標準 (宛先) ファセット属性のいずれかを利用することができますが、推奨されるのは、エイリアス設定されたファセットではなく標準ファセットです。これにより命名規則に従う必要性が強調され、非標準のコンテンツに基づくアセットの構築 (保存済みのビューやダッシュボードなど) を回避することができます。

エイリアス設定に関する確認事項:

  • エイリアス設定はパイプラインによってログが処理された後に実行されます。抽出済みまたは処理済みの属性は、エイリアス設定時のソースとして利用可能です。
  • Datadog ではエイリアス設定済みの属性の型が適用されます。これが不可能な場合、エイリアス設定はスキップされます。
  • ログにすでに宛先属性が含まれている場合、エイリアス設定によりその値が上書きされます。
  • 1 つの標準属性で複数の属性をエイリアス化する場合、ログにこれらのソース属性が複数含まれているケースでは、そのうち 1 つのソース属性のみエイリアス設定が可能です。
  • 更新または追加された標準属性データは、新しく収集されるログにのみ適用されます。
  • 標準属性にエイリアス設定を行うことはできません。
  • 属性は標準属性に対してのみエイリアス設定が可能です。
  • ログの JSON 構造を尊重するため、ある標準属性を別の標準属性の子とすることはできません (user と user.name の両方を標準属性にすることは不可)。

詳しくは、ファセットのエイリアス設定を参照してください。

参考資料