Supported OS Linux Mac OS Windows

インテグレーションバージョン3.0.0

概要

Systemd-journald は、ログデータを収集して保管するシステムサービスです。 さまざまなソースからのログ情報に基づいて、構造化およびインデックス化されたジャーナルを作成し、維持します。

セットアップ

インストール

journald チェックは Datadog Agent パッケージに含まれています。 サーバーに追加でインストールする必要はありません。

構成

ジャーナルファイルは、デフォルトでは、systemd-journal システムグループによって所有され、読み取られます。ジャーナルログの収集を開始するには、以下のようにします。

  1. ジャーナルを実行しているインスタンスに Agent をインストールします
  2. 以下を実行して、systemd-journal グループに dd-agent ユーザーを追加します。
     usermod -a -G systemd-journal dd-agent
    

ホストで実行中の Agent に対してこのチェックを構成するには

ログの収集を開始するには、Agent のコンフィギュレーションディレクトリのルートにある conf.d/ フォルダーの journald.d/conf.yaml ファイルを編集します。

ログ収集

Datadog Agent で、ログの収集はデフォルトで無効になっています。以下のように、datadog.yaml でこれを有効にする必要があります。

logs_enabled: true

ログの収集を開始するには、次の構成ブロックを journald.d/conf.yaml ファイルに追加します。

logs:
    - type: journald
      container_mode: true

source および service 属性の値を埋めるために、Agent は SYSLOG_IDENTIFIER_SYSTEMD_UNIT_COMM を収集し、最初に検出した空でない値に設定します。インテグレーションのパイプラインを活用するため、Datadog は systemd サービスファイルまたは systemd サービスオーバーライドファイルに SyslogIdentifier パラメーターを直接設定することをおすすめしています。これらの場所はお使いのディストリビューションにより異なりますが、systemctl show -p FragmentPath <unit_name> コマンドを使って systemd サービスファイルの場所を検索することができます。

: Agent 7.17 以降では、container_modetrue に設定されている場合、Docker コンテナに基づいてログのデフォルトの動作変更が行われます。ログの source 属性は、単に docker ではなく、対応するコンテナの短いイメージ名に自動的に設定されます。

Agent を再起動します

コンテナ環境の場合は、オートディスカバリーのインテグレーションテンプレートのガイドを参照して、次のパラメーターを適用してください。

ログ収集

Datadog Agent で、ログの収集はデフォルトで無効になっています。有効にする方法については、Kubernetes ログ収集を参照してください。

パラメーター
<LOG_CONFIG>{"source": "journald", "service": "<YOUR_APP_NAME>"}

高度な機能

ジャーナルの場所の変更

Agent は、デフォルトで次の場所でジャーナルを探します。

  • /var/log/journal
  • /run/log/journal

ジャーナルがこれ以外の場所にある場合は、path パラメーターに、対応するジャーナルのパスを追加します。

ジャーナルユニットの絞り込み

これらのパラメーターを使用することで、特定の_システムレベル_ユニットをフィルターにかけることができます。

  • include_units: 指定されたすべてのシステムレベルユニットを含めます。
  • exclude_units: 指定されたすべてのシステムレベルユニットを除外します。

例:

logs:
    - type: journald
      path: /var/log/journal/
      include_units:
          - docker.service
          - sshd.service

Datadog Agent バージョン 7.37.0+ では、これらのパラメーターを使用して、_ユーザーレベル_ユニットをフィルターにかけることができます。

  • include_user_units: 指定されたすべてのユーザーレベルユニットを含めます。
  • exclude_user_units: 指定されたすべてのユーザーレベルユニットを除外します。

: exclude_units または exclude_user_units でワイルドカード * を使用すると、特定の Journald ログを指定できます。ワイルドカード *include_units では機能しません。デフォルトでは、システムにもユーザーにもユニットがなく、一致するものが定義されていない場合、すべてのジャーナルログが収集されます。

例:

logs:
    # すべてのシステムレベルユニットログを収集します。
    - type: journald
      exclude_user_units:
          - '*'
ジャーナルメッセージのフィルター

Datadog Agent バージョン 7.39.0+ では、これらのパラメーターを持つキー値ペアを使用して、任意のメッセージをフィルターにかけることができます。

  • include_matches: key=value に一致するメッセージを含めます。
  • exclude_matches: key=value に一致するメッセージを除外します。

例:

logs:
    - type: journald
      path: /var/log/journal/
      include_matches:
          - _TRANSPORT=kernel
同じジャーナルを複数回追跡する

異なるソースタグやサービスタグを持つユニットを報告したい場合、これらは別々の journald 構成に表示する必要があります。

これを行うには、ジャーナル構成を config_id で一意に識別する必要があります (Agent 7.41.0+ で利用可能)。

logs:
    - type: journald
      config_id: my-app1
      source: my-app1
      service: my-app1
      include_units:
          - my-app1.service

    - type: journald
      config_id: my-app2
      source: my-app2
      service: my-app2
      include_units:
          - my-app2.service
コンテナタグの収集

高度に動的なコンテナ環境において情報を見つける際にタグは重要です。Agent が journald ログからコンテナタグを収集できる理由はここにあります。

Agent がホストから実行されている場合、これは自動的に機能します。Datadog Agent のコンテナバージョンを使用している場合は、ジャーナルパスと次のファイルをマウントしてください。

  • /etc/machine-id: これで、Agent は、ホストに格納されたジャーナルに確実に問い合わせることができます。

検証

Agent の status サブコマンドを実行し、ログ Agent セクションで journald を探します。

収集データ

メトリクス

journald には、メトリクスは含まれません。

サービスチェック

journald には、サービスのチェック機能は含まれません。

イベント

journald には、イベントは含まれません。

トラブルシューティング

ご不明な点は、Datadog のサポートチームまでお問合せください。