web-dev-qa-db-ja.com

ログメッセージは、journaldとrsyslogでどこに行くのですか?

Ubuntu 18.04では、journaldとrsyslogの両方がインストールされています。どちらもログメッセージを収集して保存するという同じ目的を果たします。したがって、ここでは同じ作業を行う2つのプログラムがあります。

私が見つけたのは、journaldはjournalctlコマンドで照会できる独自のジャーナルファイルにログメッセージを保存するだけであることです。読み取り可能なファイルは書き込まれません。また、journalは常にsystemdによって開始されたすべてのサービスからのログ出力を収集します。最終的にsystemdはinitスクリプトなどの古いスキームからでもすべてのプロセスを開始するため、これは常にすべてのサービスでなければなりません。

Rsyslogは、syslogが過去50年ほど機能していたように機能するいくつかのソケットを介して、ログメッセージも受信します。アプリケーションはそのソケットにメッセージを送信する必要があり、rsyslogがそれらを受信します。どのようにしてjournaldが実際に何かを受け取るのかわかりません。次に、rsyslogは、これらの受信したメッセージを、その構成に従って異なる読み取り可能なファイルに転送します。

Ubuntuでは両方がインストールされていますが、接続されていないようです。少なくともrsyslogは、journaldからログメッセージを「読み取る」ことができる「imjournal」モジュールをロードしません。 rsyslogが(アクティブに)何かを読み取る方法がわかりません。メッセージを(パッシブに)受信するだけだと思いました。しかし、それはとにかくそれを使用していません。

ファイル/ var/log/syslogには、journalctlで示される内容とほぼ同じ内容が含まれていますが、Sudoからの出力だけがファイルにありません。しかし、私はそれをすべて比較していません。

これはどのように機能するのでしょうか?誰がどこにログメッセージを送信し、誰がそれらを受信し、どこに転送されますか?両方の宛先が入力されている場合、すべてのアプリケーションがsyslogとジャーナルの両方にメッセージを個別に送信する必要がありますか?それらが相互接続されている場合、メッセージが重複しないのはなぜですか?それらは再び除外されますか?どの場所がより完全であり、全体像が必要な場合はどこを見ればよいですか?

Ubuntuの新しいバージョンでこれらのいずれかが変更された場合、来年は古いサーバーを20.04に切り替える予定なので、これにも興味があります。

編集:このトピックに関するその他のリソースを次に示します。

この情報はすべて私を少し混乱させます。ジャーナルは最初にシステムコールからすべてのsyslogデータを受信するようです(私の/ dev/logは/ run/systemd/journal/dev-logを指します)。これは、ジャーナルが存在する前に使用されていました(/ run/systemd/journal/syslog、systemdが見つかると暗黙的に使用される)。次に、rsyslogはすべての高度なログ処理(レガシー/ var/logファイルの書き込みを含む)を実行できます。その魔法が必要なければ、rsyslogを無効にするだけかもしれません。しかし、それについてはよくわかりません!

2
ygoe

メッセージの保存場所

ジャーナルメッセージストレージ

journaldの古いメッセージをクリーンアップする時期になると(私は毎月実行します)、メッセージが保存されているファイルを確認できます。

Deleted archived journal /var/log/journal/1ff17e6df1874fb3b2a75e669fa978f1/[email protected]~ (32.0M).
Deleted archived journal /var/log/journal/1ff17e6df1874fb3b2a75e669fa978f1/[email protected]~ (8.0M).

ご覧のとおり、ファイル名は非常に長く、不可解です。

syslogメッセージストレージ

syslogメッセージは、より伝統的なファイル名形式で保持されます。

$ ll /var/log/syslog*
-rw-r----- 1 syslog adm   2161 Nov 29 04:47 /var/log/syslog
-rw-r----- 1 syslog adm 159700 Nov 29 04:32 /var/log/syslog.1
-rw-r----- 1 syslog adm  24466 Nov 28 04:27 /var/log/syslog.2.gz
-rw-r----- 1 syslog adm  23489 Nov 27 04:30 /var/log/syslog.3.gz
-rw-r----- 1 syslog adm  28087 Nov 26 04:28 /var/log/syslog.4.gz
-rw-r----- 1 syslog adm  28300 Nov 25 04:30 /var/log/syslog.5.gz
-rw-r----- 1 syslog adm  27445 Nov 24 05:36 /var/log/syslog.6.gz
-rw-r----- 1 syslog adm  27460 Nov 23 08:25 /var/log/syslog.7.gz

.gzで終わるファイル名には、ディスク上のスペースを節約するためにデータが圧縮されています。


記録されたメッセージは同じではありません

簡単なテストにより、2つのメッセージロギングシステムが正確に重複していないことがわかります。 loggerコマンドを使用してメッセージをシステムに入力し、それを検索してその前の5行を表示します。

$ logger $0 "ygoe to two logs?"


$ cat /var/log/syslog | grep ygoe -a5 Nov 27 20:53:35 alien upowerd[2032]: message repeated 3 times: [ (upowerd:2032): UPower-Linux-WARNING **: treating change event as add on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-9/1-9:1.2/0003:046D:C52B.017E/0003:046D:101A.017F/power_supply/hidpp_battery_63] Nov 27 20:54:23 alien upowerd[2032]: (upowerd:2032): UPower-Linux-WARNING **: treating change event as add on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-9/1-9:1.2/0003:046D:C52B.017E/0003:046D:2010.0180/power_supply/hidpp_battery_64 Nov 27 20:59:25 alien wpa_supplicant[1591]: wlp60s0: WPA: Group rekeying completed with ae:20:2e:cc:94:50 [GTK=CCMP] Nov 27 21:00:02 alien CRON[24890]: (root) CMD (/usr/bin/updatedb) Nov 27 21:07:48 alien upowerd[2032]: (upowerd:2032): UPower-Linux-WARNING **: treating change event as add on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-9/1-9:1.2/0003:046D:C52B.017E/0003:046D:2010.0180/power_supply/hidpp_battery_64 Nov 27 21:08:22 alien rick: bash ygoe to two logs?


$ journalctl -xe | grep ygoe -a5 Nov 27 20:59:25 alien wpa_supplicant[1591]: wlp60s0: WPA: Group rekeying completed with ae:20:2e:cc:94:50 [GTK=CCMP] Nov 27 21:00:01 alien CRON[24881]: pam_unix(cron:session): session opened for user root by (uid=0) Nov 27 21:00:01 alien CRON[24890]: (root) CMD (/usr/bin/updatedb) Nov 27 21:00:04 alien CRON[24881]: pam_unix(cron:session): session closed for user root Nov 27 21:07:48 alien upowerd[2032]: (upowerd:2032): UPower-Linux-WARNING **: treating change event as add on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-9/1-9:1.2/0003:046D:C52B.017E/0003:046D:2010.0180/power_supply/hidpp_battery_64 Nov 27 21:08:22 alien rick[8000]: bash ygoe to two logs?

ご覧のとおり、journalctlsyslogよりも詳細を提供します。さらにjournalctl

数年前にjournaldsyslogを複製することについて開発者の間で議論がありましたが、私は今のところリンクを見つけることができませんでした。

1