ホスト Agent ログの収集

ホスト Agent ログの収集

ログの収集には、Datadog Agent v6.0 以上が必要です。古いバージョンの Agent には、log collection インターフェイスが含まれていません。まだ Agent を使用していない場合は、Agent のインストール手順に従ってください。

ログ収集を有効にする

Datadog Agent では、ログの収集はデフォルトで有効になっていません。Agent を Kubernetes または Docker 環境で実行している場合は、専用の Kubernetes ログ収集または Docker ログ収集のドキュメントを参照してください。

ホストで実行されている Agent でログ収集を有効にするには、Agent のメインコンフィギュレーションファイル (datadog.yaml) で logs_enabled:falselogs_enabled:true に変更します。

datadog.yaml

## @param logs_enabled - boolean - optional - default: false
## @env DD_LOGS_ENABLED - boolean - optional - default: false
## Enable Datadog Agent log collection by setting logs_enabled to true.
 logs_enabled: false

## @param logs_config - custom object - optional
## Enter specific configurations for your Log collection.
## Uncomment this parameter and the one below to enable them.
## See https://docs.datadoghq.com/agent/logs/
 logs_config:

  ## @param container_collect_all - boolean - optional - default: false
  ## @env DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL - boolean - optional - default: false
  ## Enable container log collection for all the containers (see ac_exclude to filter out containers)
   container_collect_all: false

  ## @param logs_dd_url - string - optional
  ## @env DD_LOGS_CONFIG_DD_URL - string - optional
  ## Define the endpoint and port to hit when using a proxy for logs. The logs are forwarded in TCP
  ## therefore the proxy must be able to handle TCP connections.
   logs_dd_url: <ENDPOINT>:<PORT>

  ## @param logs_no_ssl - boolean - optional - default: false
  ## @env DD_LOGS_CONFIG_LOGS_NO_SSL - optional - default: false
  ## Disable the SSL encryption. This parameter should only be used when logs are
  ## forwarded locally to a proxy. It is highly recommended to then handle the SSL encryption
  ## on the proxy side.
   logs_no_ssl: false

  ## @param processing_rules - list of custom objects - optional
  ## @env DD_LOGS_CONFIG_PROCESSING_RULES - list of custom objects - optional
  ## Global processing rules that are applied to all logs. The available rules are
  ## "exclude_at_match", "include_at_match" and "mask_sequences". More information in Datadog documentation:
  ## https://docs.datadoghq.com/agent/logs/advanced_log_collection/#global-processing-rules
   processing_rules:
     - type: <RULE_TYPE>
       name: <RULE_NAME>
       pattern: <RULE_PATTERN>

  ## @param use_http - boolean - optional - default: false
  ## @env DD_LOGS_CONFIG_USE_HTTP - boolean - optional - default: false
  ## By default, logs are sent through TCP, use this parameter
  ## to send logs in HTTPS batches to port 443
   use_http: true

  ## @param use_tcp - boolean - optional - default: false
  ## By default, logs are sent through HTTP if possible, use this parameter
  ## to send logs in TCP
   use_tcp: true

  ## @param use_compression - boolean - optional - default: false
  ## @env DD_LOGS_CONFIG_USE_COMPRESSION - boolean - optional - default: false
  ## This parameter is available when sending logs with HTTPS. If enabled, the Agent
  ## compresses logs before sending them.
   use_compression: true

  ## @param compression_level - integer - optional - default: 6
  ## @env DD_LOGS_CONFIG_COMPRESSION_LEVEL - boolean - optional - default: false
  ## The compression_level parameter accepts values from 0 (no compression)
  ## to 9 (maximum compression but higher resource usage).
   compression_level: 6

  ## @param batch_wait - integer - optional - default: 5
  ## @env DD_LOGS_CONFIG_BATCH_WAIT - integer - optional - default: 5
  ## The maximum time the Datadog Agent waits to fill each batch of logs before sending.
   batch_wait: 5

Agent v6.19+/v7.19+ 以降、使用されるデフォルトのトランスポートは HTTPS トランスポートです。HTTPS/TCP トランスポートを実行する方法の詳細については、Agent トランスポートのドキュメントを参照してください。

環境変数を伴った形でログを送信するには、以下の構成を行ってください。

  • DD_LOGS_ENABLED=true

ログ収集を有効にすると、Agent から Datadog にログを転送できるようになります。次に、Agent でログの収集元を設定します。

インテグレーションからのログ収集を有効にする

特定のインテグレーションのログを収集するには、そのインテグレーションの conf.yaml ファイルのログセクションのコメントを外して、環境に合わせて構成します。Agent を Kubernetes または Docker 環境で実行している場合は、専用の Kubernetes ログ収集または Docker ログ収集のドキュメントを参照してください。

そのまま使用できるログ構成が含まれているサポートされているインテグレーションのリストを参照してください。

カスタムログ収集

Datadog Agent v6 は、収集したログをファイル、ネットワーク (TCP または UDP)、journald、Windows チャンネルから Datadog に転送できます。

  1. Agent のコンフィギュレーションディレクトリのルートにある conf.d/ ディレクトリに、<CUSTOM_LOG_SOURCE>.d/ フォルダーを新規作成します。
  2. この新しいフォルダーに新しい conf.yaml ファイルを作成します。
  3. 下記のパラメーターを指定して、カスタムログ収集構成グループを追加します。
  4. Agent を再起動してこの新しい設定を適用します。
  5. Agent の status サブコマンドを実行し、Checks セクションで <カスタムログソース> を検索します。

以下に、カスタムログ収集設定の例を示します。

<PATH_LOG_FILE>/<LOG_FILE_NAME>.log に保存されているログを <APP_NAME> アプリケーションから収集するには、Agent の構成ディレクトリのルートに以下の内容の <APP_NAME>.d/conf.yaml ファイルを作成します。

logs:
  - type: file
    path: "<PATH_LOG_FILE>/<LOG_FILE_NAME>.log"
    service: "<APP_NAME>"
    source: "<SOURCE>"

TCP ポート 10518 にログを転送する <APP_NAME> アプリケーションからログを収集するには、Agent の構成ディレクトリのルートに以下の内容の <APP_NAME>.d/conf.yaml ファイルを作成します。

logs:
  - type: tcp
    port: 10518
    service: "<APP_NAME>"
    source: "<CUSTOM_SOURCE>"

Serilog を使用している場合、UDP を使用して接続するには、Serilog.Sinks.Network オプションを使用します。

Agent バージョン 7.31.0 以降では、TCP 接続はアイドル状態でも無期限に開いたままになります。

: Agent は、単純文字列、JSON、および Syslog 形式のログをサポートします。複数のログを一度に送信する場合は、改行文字を使用してログを区切ってください。

journald からログを収集するには、Agent の構成ディレクトリのルートに以下の内容の journald.d/conf.yaml ファイルを作成します。

logs:
  - type: journald
    path: /var/log/journal/

コンテナ化環境およびユニットフィルタリングの設定については、journald インテグレーションに関するドキュメントを参照してください。

Windows のイベントをログとして Datadog に送信するには、conf.d/win32_event_log.d/conf.yaml にチャンネルを手動で追加するか、Datadog Agent Manager を使用します。

チャンネルリストを表示するには、PowerShell で以下のコマンドを実行します。

Get-WinEvent -ListLog *

最もアクティブなチャンネルを表示するには、PowerShell で以下のコマンドを実行します。

Get-WinEvent -ListLog * | sort RecordCount -Descending

次に、チャンネルを win32_event_log.d/conf.yaml 構成ファイルに追加します。

logs:
  - type: windows_event
    channel_path: "<CHANNEL_1>"
    source: "<CHANNEL_1>"
    service: "<SERVICE>"
    sourcecategory: windowsevent

  - type: windows_event
    channel_path: "<CHANNEL_2>"
    source: "<CHANNEL_2>"
    service: "<SERVICE>"
    sourcecategory: windowsevent

<CHANNEL_X> パラメーターは、イベントの収集に使用する Windows チャンネル名に変更してください。 インテグレーションの自動処理パイプライン設定を利用するには、対応する source パラメーターを同じチャンネル名に設定します。

最後に、Agent を再起動します。

ログの収集に使用可能なパラメーターのリスト

パラメーター必須説明
typeログ入力ソースの種類。有効な値は、tcpudpfilewindows_eventdockerjournald です。
porttypetcp または udp の場合、ログをリスニングするポートを設定します。
pathtypefile または journald の場合、ログを収集するファイルパスを設定します。
channel_pathtypewindows_event の場合、ログを収集する Windows イベントチャンネルをリストします。
serviceログを所有しているサービスの名前。ご使用のサービスを Datadog APM でインスツルメントしている場合、これは同じサービス名にする必要があります。複数のデータタイプにわたって service を構成する場合は、統合サービスタグ付けの手順を確認してください。
sourceログを送信しているインテグレーションを定義する属性。既存のインテグレーションに由来するログでない場合、このフィールドはカスタムソース名にすることができます。ただし、関連して収集しているカスタムメトリクスがある場合は、そのネームスペースと一致させることをお勧めします。たとえば、myapp.request.countmyapp を使用します。
include_unitstypejournald の場合、対象とする journald ユニットのリスト。
exclude_pathstypefile で、path にワイルドカード文字が含まれている場合、ログ収集から除外する必要がある一致するファイルをリストします。6.18 以降の Agent バージョンで使用できます。
exclude_unitstypejournald の場合、対象としない journald ユニットのリスト。
sourcecategoryソース属性が属するカテゴリーの定義に使用される属性。たとえば、source:postgres、sourcecategory:databasesource: apache, sourcecategory: http_web_access` です。 |
start_positiontypefile の場合、Agent がファイルの読み取りを開始する位置を設定します。有効な値は beginningend です (デフォルト: end)。path にワイルドカード文字が含まれている場合、beginning はサポートされません。Agent v6.19/v7.19 に追加されました
encodingtypefile の場合、Agent がファイルを読み込む際のエンコーディングを設定します。UTF16 リトルエンディアン の場合は utf-16-le に、UTF16 ビッグエンディアンの場合は utf-16-be に設定します。その他の値は無視され、Agent はファイルを UTF-8 形式で読み込みます。Agent v6.23/v7.23 での追加機能です。
tags収集される各ログに追加するタグのリスト (タグ付けの詳細はこちら)。

その他の参考資料