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

Simple Log Service:systemdジャーナルログの収集

最終更新日:Aug 21, 2024

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

始める前に

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

概要

systemdは、Linuxオペレーティングシステム用のシステムおよびサービスマネージャです。 systemdは、PID 1のinitプロセスとして実行されます。 systemdは、ユーザースペースでサービスを起動および維持するためのinitシステムとしてUpstartを置き換えます。 systemdは、すべてのユニットのログを集中管理します。 設定ファイルは /etc/systemd/journald.confで、ログにはカーネルログとアプリケーションログが含まれます。

説明

systemdが実行されるオペレーティングシステムは、ジャーナルログ形式をサポートしている必要があります。

機能

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

  • 単位をフィルタリングできます。

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

  • ログレベルの自動解析をサポートします。

  • systemdをコンテナーとして実行し、ホストからジャーナルログを収集できます。 この機能は、DockerおよびKubernetesクラスターからログを収集する場合に適用されます。

シナリオ

  • カーネルイベントを監視し、例外発生時にアラートを生成します。 アラートは自動的に生成されます。

  • 長期保存のためにすべてのシステムログを収集し、ディスク容量を解放します。

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

  • すべてのジャーナルログを収集します。 これにより、より高速なログクエリとキーワードベースのクエリを実行できます。 これらのタイプのクエリは、journalctlベースのクエリよりも効率的です。

手順

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

  2. [データのインポート] セクションで、[カスタムデータプラグイン] をクリックします。

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

  4. マシングループの設定ステップで、マシングループを設定します。

    1. ビジネス要件に基づいて、シナリオとインストール環境のパラメーターを設定します。

      重要

      マシングループが使用可能かどうかに関係なく、シナリオパラメーターとインストール環境パラメーターを設定する必要があります。 パラメーター設定は、以降の設定に影響します。

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

      マシングループ利用可能

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

      image

      マシングループがありません

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

      重要

      マシングループを作成した直後にマシングループを適用すると、マシングループのハートビートステータスがFAILになる可能性があります。 この問題は、マシングループがSimple Log Serviceに接続されていないために発生します。 この問題を解決するには、[再試行] をクリックします。 問題が解決しない場合は、Logtailでハートビート接続が検出されない場合はどうすればよいですか?

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

    重要

    マシングループを作成した直後にマシングループを適用すると、マシングループのハートビートステータスがFAILになる可能性があります。 この問題は、マシングループがSimple Log Serviceに接続されていないために発生します。 この問題を解決するには、[自動再試行] をクリックします。 問題が解決しない場合は、Logtailでハートビート接続が検出されない場合はどうすればよいですか?

  6. [データソースの指定] ステップで、[設定名] および [プラグイン設定] パラメーターを設定します。 [次へ] をクリックします。

    Logtailプラグインのコレクション

    • 入力は必須であり、Logtail構成のデータソース設定を構成するために使用されます。

      重要

      inputsに指定できるデータソースの種類は1つだけです。

    • processorsはオプションで、データを解析するLogtail設定のデータ処理設定を設定するために使用されます。 1つ以上の処理方法を指定できます。

      入力の設定のみに基づいてログを解析できない場合は、[プラグイン設定] フィールドでプロセッサを設定して、データ処理用のプラグインを追加できます。 たとえば、フィールドの抽出、ログ時間の抽出、データのマスク、ログのフィルタリングができます。 詳細については、「Logtailプラグインを使用したデータ処理」をご参照ください。

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

    パラメーター

    データ型

    必須/任意

    説明

    タイプ

    String

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

    JournalPaths

    文字列配列

    ジャーナルログへのパス。 このパラメーターは、ジャーナルログのデフォルトディレクトリに設定することを推奨します。 例: /var/log/journal

    SeekPosition

    String

    初期収集のメソッド。The method for initial collection. 有効な値: headtail。 デフォルト値: tail

    • このパラメーターをheadに設定すると、すべてのデータが収集されます。

    • このパラメーターをtailに設定した場合、Logtail設定が有効になった後に生成されたデータのみが収集されます。

    カーネル

    Boolean

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

    単位

    文字列配列

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

    ParseSyslogFacility

    Boolean

    システムログのファシリティフィールドを解析するかどうかを指定します。 デフォルト値: "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

    ログ時間としてジャーナルログのフィールドを使用するかどうかを指定します。 デフォルト値: "false" このパラメーターを追加しない場合、収集時間はログ時間として使用されます。

    リアルタイムログ収集シナリオでは、ログ生成時間とログ収集時間の差は3秒未満です。

  7. データをプレビューし、インデックスを設定し、[次へ] をクリックします。

    デフォルトでは、Log Serviceでフルテキストインデックスが有効になっています。 手動モードまたは自動モードで収集したログに基づいてフィールドインデックスを設定することもできます。 自動モードでフィールドインデックスを設定するには、[自動インデックス生成] をクリックします。 これにより、Log Serviceは自動的にフィールドインデックスを作成します。 詳細については、「インデックスの作成」をご参照ください。

    重要

    ログをクエリおよび分析する場合は、フルテキストインデックス作成またはフィールドインデックス作成を有効にする必要があります。 フルテキストインデックスとフィールドインデックスの両方を有効にすると、フィールドインデックスのみが使用されます。

  • 例 1

    デフォルトのディレクトリ /var/log/journalからジャーナルログを収集します。 Logtail設定:

    {
      "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

    DaemonSetモードでKubernetesクラスターのホストからシステムログを収集します。 Logtailプラグインを使用して、重要なフィールドのログフィールドをフィルタリングします。 Logtail設定:

    {
      "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を使用してログを収集するときにエラーが発生した場合はどうすればよいですか?で提供されている手順に基づいてエラーをトラブルシューティングできます。

次のタスク

LogtailがLog Serviceにデータを収集した後、Log Serviceコンソールでデータを表示できます。