Systemd-journald は、ログデータを収集して保管するシステムサービスです。さまざまなソースから受け取ったログ情報に基づいて、構造化およびインデックス化されたジャーナルを作成し、維持します。
ジャーナルファイルは、デフォルトでは、systemd-journal
システムグループによって所有され、読み取られます。ジャーナルログの収集を開始するには、以下のようにします。
systemd-journal
グループに dd-agent
ユーザーを追加します。usermod -a -G systemd-journal dd-agent
ホストで実行中の Agent に対してこのチェックを構成するには:
Agent のディレクトリのルートにある Agent の conf.d/
フォルダー内の journald.d/conf.yaml
ファイルを編集します。
Agent バージョン 6.0 以降で利用可能
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_mode
が true
に設定されている場合、Docker コンテナに基づいてログのデフォルトの動作変更が行われます。ログの source
属性は、単に docker
ではなく、対応するコンテナの短いイメージ名に自動的に設定されます。
最後に、Agent を再起動します。
コンテナ環境の場合は、オートディスカバリーのインテグレーションテンプレートのガイドを参照して、次のパラメーターを適用してください。
Agent バージョン 6.0 以降で利用可能
Datadog Agent で、ログの収集はデフォルトで無効になっています。有効にする方法については、Kubernetes ログ収集のドキュメントを参照してください。
パラメーター | 値 |
---|---|
<LOG_CONFIG> | {"source": "journald", "service": "<YOUR_APP_NAME>"} |
Agent は、デフォルトで次の場所でジャーナルを探します。
/var/log/journal
/var/run/journal
ジャーナルがこれ以外の場所にある場合は、path
パラメーターに、対応するジャーナルのパスを追加します。
以下のパラメーターを使用して、特定のユニットに絞り込んだり除外することができます。
include_units
: 指定されたすべてのユニットを含めます。exclude_units
: 指定されたすべてのユニットを除外します。例:
logs:
- type: journald
path: /var/log/journal/
include_units:
- docker.service
- sshd.service
高度に動的なコンテナ環境において情報を見つける際にタグは重要です。Agent が journald ログからコンテナタグを収集できる理由はここにあります。
Agent がホストから実行されている場合、これは自動的に機能します。Datadog Agent のコンテナバージョンを使用している場合は、ジャーナルパスと次のファイルをマウントしてください。
/etc/machine-id
: これで、Agent は、ホストに格納されたジャーナルに確実に問い合わせることができます。ご不明な点は、Datadog のサポートチームまでお問い合わせください。
お役に立つドキュメント、リンクや記事:
このページ