すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:systemd journal ログの収集

最終更新日:Nov 09, 2025

Logtail は、バイナリファイルから Linux systemd journal ログを収集します。このトピックでは、Simple Log Service コンソールで Logtail 構成を作成して systemd journal ログを収集する方法について説明します。

前提条件

Linux サーバーに Logtail 0.16.18 以降がインストールされていること。詳細については、「Linux サーバーに Logtail をインストールする」をご参照ください。

概要

systemd は、Linux オペレーティングシステムのシステムおよびサービスマネージャーです。init プロセス (PID=1) として実行されると、ユーザースペースサービスを起動および維持する初期化システムとして機能します。systemd は、カーネルログやアプリケーションログなど、すべてのユニットのログを一元管理します。構成ファイルは通常 /etc/systemd/journald.conf です。

説明

オペレーティングシステムは journal ログフォーマットをサポートしている必要があります。

機能

  • 初期収集位置を設定できます。チェックポイントは後続のデータ収集のために自動的に保存され、プロセスはアプリケーションの再起動の影響を受けません。

  • 指定したユニットをフィルターできます。

  • カーネルログを収集できます。

  • ログレベルは自動的に解析されます。

  • コンテナー内のホストから journal ログを収集できます。この機能は、Docker および Kubernetes のシナリオで役立ちます。

シナリオ

  • カーネルイベントを監視し、例外に対するアラートを自動的にトリガーします。

  • すべてのシステムログを収集して長期ストレージに保存し、ディスク領域の使用量を削減します。

  • 分析またはアラートのために、ソフトウェア (ユニット) から出力ログを収集します。

  • すべての journal ログを収集して、ログをすばやく取得したり、キーワードを検索したりします。これにより、journalctl と比較してクエリ効率が大幅に向上します。

手順

  1. Simple Log Service コンソールにログインします。

  2. [データ収集] エリアで、[カスタムデータプラグイン] を選択します。

  3. プロジェクトと Logstore を選択します。次に、[次へ] をクリックします。

  4. [マシングループ構成] ステップで、マシングループを構成します。

    1. 必要に応じて、シナリオとインストール環境のパラメーターを構成します。

      重要

      マシングループが利用可能かどうかにかかわらず、シナリオとインストール環境のパラメーターを構成する必要があります。パラメーター設定は、後続の構成に影響します。

    2. [適用済みサーバーグループ] セクションにマシングループが表示されていることを確認し、[次へ] をクリックします。

      利用可能なマシングループ

      [ソースマシングループ] セクションからマシングループを選択します。

      image

      利用可能なマシングループなし

      [マシングループの作成] をクリックします。[マシングループの作成] パネルで、パラメーターを構成します。[マシングループ識別子] パラメーターを [IP アドレス] または [カスタム識別子] に設定できます。詳細については、「カスタム識別子ベースのマシングループを作成する」または「IP アドレスベースのマシングループを作成する」をご参照ください。

      重要

      マシングループを作成した直後に適用すると、マシングループのハートビートステータスが [FAIL] になる場合があります。この問題は、マシングループが Simple Log Service に接続されていないために発生します。この問題を解決するには、[自動再試行] をクリックします。問題が解決しない場合は、「Logtail でハートビート接続が検出されない場合の対処方法」をご参照ください。

  5. [データソース設定] タブで、[構成名][プラグイン構成] を設定し、[次へ] をクリックします。

      {
        "inputs": [
          {
            "detail": {
              "JournalPaths": [
                "/var/log/journal"
              ],
              "Kernel": true,
              "ParsePriority": true,
              "ParseSyslogFacility": true
            },
            "type": "service_journal"
          }
        ]
      }

      パラメーター

      タイプ

      必須

      説明

      type

      文字列

      はい

      データソースのタイプ。これを service_journal に設定します。

      JournalPaths

      文字列配列

      はい

      journal ログのパス。これを、/var/log/journal など、journal ログが保存されているディレクトリに設定することをお勧めします。

      SeekPosition

      文字列

      いいえ

      Logtail が初めてログの収集を開始する位置。これを head または tail に設定できます。デフォルト値は tail です。

      • head: 既存のすべてのデータを収集します。

      • tail: Logtail 構成が適用された後に生成された新しいデータのみを収集します。

      Kernel

      boolean

      いいえ

      カーネルログを収集するかどうかを指定します。デフォルト値は true で、カーネルログが収集されることを示します。

      Units

      文字列配列

      いいえ

      ログを収集するユニットのリスト。デフォルトでは、このパラメーターは空で、すべてのユニットからログが収集されることを示します。

      ParseSyslogFacility

      boolean

      いいえ

      syslog ログの facility フィールドを解析するかどうかを指定します。デフォルト値は false です。このパラメーターを構成しない場合、フィールドは解析されません。

      ParsePriority

      boolean

      いいえ

      Priority フィールドを解析するかどうかを指定します。デフォルト値は false です。このパラメーターを構成しない場合、フィールドは解析されません。

      これを true に設定すると、Priority フィールドは次のマッピングに基づいて解析されます。

        "0": "emergency"
        "1": "alert"
        "2": "critical"
        "3": "error"
        "4": "warning"
        "5": "notice"
        "6": "informational"
        "7": "debug"

      UseJournalEventTime

      boolean

      いいえ

      journal ログのフィールドをログ時間として使用するかどうかを指定します。デフォルト値は false です。このパラメーターを構成しない場合、収集時間がログ時間として使用されます。

      リアルタイムログ収集の場合、時間差は通常 3 秒以内です。

    • インデックスを作成し、データをプレビューします。次に、[次へ] をクリックします。デフォルトでは、Simple Log Service でフルテキストインデックスが有効になっています。収集したログのフィールドインデックスを手動で作成するか、[インデックスの自動生成] をクリックすることもできます。その後、Simple Log Service はフィールドインデックスを生成します。詳細については、「インデックスの作成」をご参照ください。

      重要

      ログ内のすべてのフィールドをクエリする場合は、フルテキストインデックスを使用することをお勧めします。特定のフィールドのみをクエリする場合は、フィールドインデックスを使用することをお勧めします。これにより、インデックストラフィックを削減できます。フィールドを分析する場合は、フィールドインデックスを作成する必要があります。分析には、クエリ文に SELECT 文を含める必要があります。

    • [ログのクエリ] をクリックします。Logstore のクエリおよび分析ページにリダイレクトされます。

      インデックスが有効になるまで約 1 分待つ必要があります。その後、[Raw ログ] タブで収集されたログを表示できます。ログのクエリと分析の方法の詳細については、「ログのクエリと分析のガイド」をご参照ください。

    • 例 1

      デフォルトの /var/log/journal ディレクトリから journal ログを収集します。収集構成は次のとおりです。

      {
        "inputs": [
          {
            "detail": {
              "JournalPaths": [
                "/var/log/journal"
              ]
            },
            "type": "service_journal"
          }
        ]
      }

      ログのサンプル:

      MESSAGE:  rejected connection from "192.168.0.250:43936" (error "EOF", ServerName "")
      PACKAGE:  embed
      PRIORITY:  6
      SYSLOG_IDENTIFIER:  etcd
      _BOOT_ID:  fe919cd1268f4721bd87b5c18afe59c3
      _CAP_EFFECTIVE:  0
      _CMDLINE:  /usr/bin/etcd --election-timeout=3000 --heartbeat-interval=500 --snapshot-count=50000 --data-dir=data.etcd --name 192.168.0.251-name-3 --client-cert-auth --trusted-ca-file=/var/lib/etcd/cert/ca.pem --cert-file=/var/lib/etcd/cert/etcd-server.pem --key-file=/var/lib/etcd/cert/etcd-server-key.pem --peer-client-cert-auth --peer-trusted-ca-file=/var/lib/etcd/cert/peer-ca.pem --peer-cert-file=/var/lib/etcd/cert/192.168.0.251-name-3.pem --peer-key-file=/var/lib/etcd/cert/192.168.0.251-name-3-key.pem --initial-advertise-peer-urls https://192.168.0.251:2380 --listen-peer-urls https://192.168.0.251:2380 --advertise-client-urls https://192.168.0.251:2379 --listen-client-urls https://192.168.0.251:2379 --initial-cluster 192.168.0.249-name-1=https://192.168.0.249:2380,192.168.0.250-name-2=https://192.168.0.250:2380,192.168.0.251-name-3=https://192.168.0.251:2380 --initial-cluster-state new --initial-cluster-token abac64c8-baab-4ae6-8412-4253d3cfb0cf
      _COMM:  etcd
      _EXE:  /opt/etcd-v3.3.8/etcd
      _GID:  995
      _HOSTNAME:  iZbp1f7y2ikfe4l8nx95amZ
      _MACHINE_ID:  f0f31005fb5a436d88e3c6cbf54e25aa
      _PID:  10926
      _SOURCE_REALTIME_TIMESTAMP:  1546854068863857
      _SYSTEMD_CGROUP:  /system.slice/etcd.service
      _SYSTEMD_SLICE:  system.slice
      _SYSTEMD_UNIT:  etcd.service
      _TRANSPORT:  journal
      _UID:  997
      __source__:  172.16.1.4
      __tag__:__hostname__:  logtail-ds-8kqb9
      __topic__:  
      _monotonic_timestamp_:  1467135144311
      _realtime_timestamp_:  1546854068864309
    • 例 2

      説明

      コンテナーを使用してホストから journal ログを収集する場合、次の制限が適用されます。

      • コンテナー内の systemd バージョンが 247 以前の場合、systemd バージョン 249 以降のホストによって生成された journal ログを収集することはできません。

      • コンテナー内の systemd バージョンが 249 以降の場合、古いフォーマットと新しいフォーマットの両方を読み取ることができます。

      Kubernetes シナリオでは、DaemonSet モードを使用してホストからシステムログを収集できます。ログには重要でないフィールドが多数含まれているため、処理プラグインを使用して重要なログフィールドのみを選択できます。収集構成は次のとおりです。

      {
        "inputs": [
          {
            "detail": {
              "JournalPaths": [
                "/logtail_host/var/log/journal"
              ],
              "ParsePriority": true,
              "ParseSyslogFacility": true
            },
            "type": "service_journal"
          }
        ],
        "processors": [
          {
            "detail": {
              "Exclude": {
                "UNIT": "^libcontainer.*test"
              }
            },
            "type": "processor_filter_regex"
          },
          {
            "detail": {
              "Include": [
                "MESSAGE",
                "PRIORITY",
                "_EXE",
                "_PID",
                "_SYSTEMD_UNIT",
                "_realtime_timestamp_",
                "_HOSTNAME",
                "UNIT",
                "SYSLOG_FACILITY",
                "SYSLOG_IDENTIFIER"
              ]
            },
            "type": "processor_pick_key"
          }
        ]
      }

      ログのサンプル:

      MESSAGE:  rejected connection from "192.168.0.251:48914" (error "EOF", ServerName "")
      PRIORITY:  informational
      SYSLOG_IDENTIFIER:  etcd
      _EXE:  /opt/etcd-v3.3.8/etcd
      _HOSTNAME:  iZbp1i0czq3zgvxlx7u8ueZ
      _PID:  10590
      _SYSTEMD_UNIT:  etcd.service
      __source__:  172.16.0.141
      __tag__:__hostname__:  logtail-ds-dp48x
      __topic__:  
      _realtime_timestamp_:  1547975837008708

    トラブルシューティング

    Logtail を使用してログを収集した後、プレビューページまたはクエリページにデータが表示されない場合は、「Logtail を使用してログを収集するときにエラーが発生した場合の対処方法」に記載されている手順に基づいてエラーのトラブルシューティングを行うことができます。