ログの収集とインテグレーション

ログの収集とインテグレーション

概要

以下のコンフィギュレーションオプションを選択して、ログの取り込みを開始します。すでに log-shipper デーモンを使用している場合は、RsyslogSyslog-ngNXlogFluentD、または Logstash の専用ドキュメントを参照してください。

ログを Datadog に直接送信する場合は、使用可能な Datadog ログ収集エンドポイントのリストを参照してください。

: ログを JSON 形式で Datadog に送信する場合は、Datadog 内にある特定の予約属性を使用します。詳細については、予約属性セクションをご覧ください。

セットアップ

Datadog Agent のインストール手順 に従って、メトリクスとトレースとともにログの転送を開始します。Agent では、ログファイルの監視UDP/TCP で送信されたログの待機ができます。ユーザーは、ログの絞り込み機密データのスクラビング複数行に渡るログの集約を行うように Agent を設定することができます。

ログ収集を有効にしたら、ログ生成に使用されるアプリケーション言語を設定します。

: JSON 形式のログは、複数行のアプリケーションログの処理に役立ちます。JSON 形式のログは Datadog によって自動的にパースされます。Datadog に送信するログ形式を制御できる場合は、カスタムパースルールが不要になるように、ログを JSON として形式化することをお勧めします。

Datadog Agent では、ログドライバーを使用せずにコンテナ stdout/stderr から直接ログを収集できます。Agent の Docker チェックを有効にすると、コンテナとオーケストレーターのメタデータがログにタグとして自動的に追加されます。 全てのコンテナから、またはコンテナのイメージ、ラベル、名前によってフィルタリングしたサブセットのみからログを収集することができます。また、オートディスカバリーを使用して、コンテナラベルでログ収集を直接設定することもできます。Kubernetes 環境では、デーモンセットのインストールも活用できます。

以下から環境を選択して、専用のログ収集手順を確認してください。


Datadog で、AWS Lambda からログを収集できます。これを有効にするには、サーバーレスモニタリングのドキュメントを参照してください。

以下からクラウドプロバイダーを選択すると、ログを自動的に収集して Datadog に転送する方法を確認できます。


Datadog のインテグレーションとログ収集は連携しています。インテグレーションのデフォルト構成ファイルを使用すると、Datadog で専用の処理パース、およびファセットを有効にできます。

利用可能なサポートされているインテグレーションのリストを参照してください。

追加のコンフィギュレーションオプション

ログのエンドポイント

Datadog では、SSL で暗号化された接続と暗号化されていない接続の両方にログのエンドポイントが提供されます。可能な場合は常に、暗号化されたエンドポイントを使用してください。Datadog Agent では、暗号化されたエンドポイントを使用して、ログが Datadog に送信されます。詳細は、Datadog のセキュリティに関するドキュメントで確認できます。

Datadog US リージョンへのログの送信に使用できるエンドポイントは以下のとおりです。

SSL で暗号化された接続のエンドポイントポート説明
agent-intake.logs.datadoghq.com10516SSL で暗号化された TCP 接続を介して Agent が protobuf 形式のログを送信する際に使用されます。
agent-http-intake.logs.datadoghq.com443HTTPS 経由で JSON 形式のログを送信するために Agent が使用。HTTP 経由のログ送信方法ドキュメント参照。
http-intake.logs.datadoghq.com443HTTPS 経由で JSON またはプレーンテキスト形式のログを送信するためにカスタムフォワーダーが使用。HTTP 経由のログ送信方法ドキュメント参照。
intake.logs.datadoghq.com10516SSL で暗号化された TCP 接続を介してカスタムフォワーダーが生ログ、Syslog、または JSON 形式のログを送信する際に使用されます。
lambda-intake.logs.datadoghq.com10516SSL で暗号化された TCP 接続を介して Lambda 関数が生ログ、Syslog、または JSON 形式のログを送信する際に使用されます。
lambda-http-intake.logs.datadoghq.com443HTTPS 経由で未加工、Syslog、または JSON 形式のログを送信するために Lambda 関数が使用。
functions-intake.logs.datadoghq.com10516SSL で暗号化された TCP 接続を介して Azure 関数が生ログ、Syslog、または JSON 形式のログを送信する際に使用されます。: 他のクラウドプロバイダーもこのエンドポイントを使用できます。
暗号化されていない接続のエンドポイントポート説明
intake.logs.datadoghq.com10514暗号化されていない TCP 接続を介してカスタムフォワーダーが生ログ、Syslog、または JSON 形式のログを送信する際に使用されます。

Datadog EU リージョンへのログの送信に使用できるエンドポイントは以下のとおりです。

SSL で暗号化された接続のエンドポイントポート説明
agent-intake.logs.datadoghq.eu443SSL で暗号化された TCP 接続を介して Agent が protobuf 形式のログを送信する際に使用されます。
agent-http-intake.logs.datadoghq.eu443HTTPS 経由で JSON 形式のログを送信するために Agent が使用。Agent のログドキュメント参照。
http-intake.logs.datadoghq.eu443HTTPS 経由で JSON またはプレーンテキスト形式のログを送信するためにカスタムフォワーダーが使用。Agent のログドキュメント参照。
tcp-intake.logs.datadoghq.eu443SSL で暗号化された TCP 接続を介してカスタムフォワーダーが生ログ、Syslog、または JSON 形式のログを送信する際に使用されます。
lambda-intake.logs.datadoghq.eu443SSL で暗号化された TCP 接続を介して Lambda 関数が生ログ、Syslog、または JSON 形式のログを送信する際に使用されます。
lambda-http-intake.logs.datadoghq.eu443HTTPS 経由で未加工、Syslog、または JSON 形式のログを送信するために Lambda 関数が使用。
functions-intake.logs.datadoghq.eu443SSL で暗号化された TCP 接続を介して Azure 関数が生ログ、Syslog、または JSON 形式のログを送信する際に使用されます。: 他のクラウドプロバイダーもこのエンドポイントを使用できます。
暗号化されていない接続のエンドポイントポート説明
tcp-intake.logs.datadoghq.eu1883暗号化されていない TCP 接続を介してカスタムフォワーダーが生ログ、Syslog、または JSON 形式のログを送信する際に使用されます。

カスタムログ転送

TCP または HTTP 経由でログを転送できるカスタムプロセスまたはロギングライブラリを、Datadog ログと共に使用​​できます。

HTTP 経由で Datadog プラットフォームにログを送信できます。開始するには、Datadog ログ HTTP API ドキュメントを参照してください。

セキュリティ保護された TCP エンドポイントは intake.logs.datadoghq.com 10516 (セキュリティ保護されていない接続の場合はポート 10514) です。

ログエントリの前に必ず Datadog API キーを付けます。例:

<DATADOG_API_キー><ペイロード>

: <ペイロード>には未加工、Syslog、または JSON 形式を使用できます。

Telnet を使用して手動でテストします。未加工形式の<ペイロード>の例:

telnet intake.logs.datadoghq.com 10514 
<DATADOG_API_キー> TCP 経由で直接送信されるログ

これにより、ライブ追跡ページに次の結果が生成されます。

<ペイロード>が JSON 形式である場合、Datadog はその属性を自動的にパースします:

telnet intake.logs.datadoghq.com 10514
<DATADOG_API_キー> {"message":"json formatted log", "ddtags":"env:my-env,user:my-user", "ddsource":"my-integration", "hostname":"my-hostname", "service":"my-service"}

セキュリティ保護された TCP エンドポイントは tcp-intake.logs.datadoghq.eu 443 (セキュリティ保護されていない接続の場合はポート 1883) です。

ログエントリの前に必ず Datadog API キーを付けます。例:

<DATADOG_API_キー><ペイロード>

: <ペイロード>には未加工、Syslog、または JSON 形式を使用できます。

Telnet を使用して手動でテストします。未加工形式の<ペイロード>の例:

telnet tcp-intake.logs.datadoghq.eu 443
<DATADOG_API_KEY> Log sent directly via TCP

これにより、ライブ追跡ページに次の結果が生成されます。

<ペイロード>が JSON 形式である場合、Datadog はその属性を自動的にパースします:

telnet tcp-intake.logs.datadoghq.eu 1883
<DATADOG_API_キー> {"message":"json formatted log", "ddtags":"env:my-env,user:my-user", "ddsource":"my-integration", "hostname":"my-hostname", "service":"my-service"}

:

  • 最適な利用のために、Datadog ではログイベントのサイズが 25KB を超えないようにすることをお勧めしています。Datadog Agent を使用する場合、ログイベントは 256KB を超え、いくつかのエントリに分割されます。Datadog TCP または HTTP API を直接使用する場合、許容可能なログイベントは最大 1MB までとなります。
  • 1 つのログイベントが持つことができるタグは 100 個以下です。1 日あたり最大 1,000 万個の一意のタグに対して、各タグは 256 文字を超えてはなりません。
  • JSON 形式に変換されたログイベントが保持できる属性は 256 未満です。これらの各属性のキーは 50 文字未満、連続するネストのレベルは 10 未満、 それぞれの値は (ファセットに昇格した場合) 1024 文字未満となります。
  • ログイベントは過去 18 時間、未来の 2 時間まで送信が可能です。

上の制限に準拠しないログイベントは、システムによって変換されるか、切り詰められます。または、所定のタイムレンジ外の場合はインデックス化されません。ただし、Datadog はユーザーデータを可能な限り維持するよう全力を尽くします。

属性とタグ

属性は、ログエクスプローラーでのフィルタリングと検索に使用されるログファセットを規定します。以下に示すように、ログとともに自動的に取り込まれる予約済みの属性がいくつかあります。また、APM などの Datadog の他の部分を使用する場合は、追加のコンフィギュレーションが必要な属性もあります。ログ収集を構成した後、以下の予約済み属性リストを確認してください。

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

スタックトレースの属性

スタックトレースをログに記録するに当たっては、Datadog アプリケーション内に専用の UI 表示を持つ特別な属性があります。ロガー名、現在のスレッド、エラーの種類、スタックトレース自体などです。

この機能を使用するには、以下の属性名を使用します。

属性説明
logger.nameロガーの名前
logger.thread_name現在のスレッドの名前
error.stack実際のスタックトレース
error.messageスタックトレースに含まれるエラーメッセージ
error.kindエラーのタイプ (“kind”) (“Exception”、“OSError” など)

: インテグレーションパイプラインは、デフォルトのログライブラリパラメーターをこれらの属性に再マップし、スタックトレースをパースまたはトレースバックして、自動的に error.messageerror.kind を抽出しようとします。

詳細については、完全なソースコード属性のドキュメントを参照してください。

統合サービスタグ付け

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

次のステップ

ログが収集されて取り込まれると、ログエクスプローラーで利用できるようになります。ログエクスプローラーでは、ログのアラートを検索、強化、表示できます。ログエクスプローラーのドキュメントを参照してログデータの分析を開始するか、以下の追加のログ管理ドキュメントを参照してください。

その他の参考資料


*Logging without Limits は Datadog, Inc. の商標です。