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ベースのクエリよりも効率的です。
手順
Log Serviceコンソールにログインします。
[データのインポート] セクションで、[カスタムデータプラグイン] をクリックします。
プロジェクトとLogstoreを選択します。 [次へ] をクリックします。
マシングループの設定ステップで、マシングループを設定します。
ビジネス要件に基づいて、シナリオとインストール環境のパラメーターを設定します。
重要マシングループが使用可能かどうかに関係なく、シナリオパラメーターとインストール環境パラメーターを設定する必要があります。 パラメーター設定は、以降の設定に影響します。
[応用サーバーグループ] セクションにマシングループが表示されていることを確認し、[次へ] をクリックします。
マシングループ利用可能
[ソースマシングループ] セクションからマシングループを選択します。
マシングループがありません
[マシングループの作成] をクリックします。 マシングループの作成パネルで、パラメーターを設定します。 マシングループ識別子パラメーターをIPアドレスまたはカスタム識別子に設定できます。 詳細については、「カスタム識別子ベースのマシングループの作成」または「IPアドレスベースのマシングループの作成」をご参照ください。
重要マシングループを作成した直後にマシングループを適用すると、マシングループのハートビートステータスがFAILになる可能性があります。 この問題は、マシングループがSimple Log Serviceに接続されていないために発生します。 この問題を解決するには、[再試行] をクリックします。 問題が解決しない場合は、Logtailでハートビート接続が検出されない場合はどうすればよいですか?
[応用サーバーグループ] セクションにマシングループが表示されていることを確認し、[次へ] をクリックします。
重要マシングループを作成した直後にマシングループを適用すると、マシングループのハートビートステータスがFAILになる可能性があります。 この問題は、マシングループがSimple Log Serviceに接続されていないために発生します。 この問題を解決するには、[自動再試行] をクリックします。 問題が解決しない場合は、Logtailでハートビート接続が検出されない場合はどうすればよいですか?
[データソースの指定] ステップで、[設定名] および [プラグイン設定] パラメーターを設定します。 [次へ] をクリックします。
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. 有効な値: headとtail。 デフォルト値: 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秒未満です。
データをプレビューし、インデックスを設定し、[次へ] をクリックします。
デフォルトでは、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コンソールでデータを表示できます。