systemdログ名前空間のシステムログ配布を設定する方法

systemdログ名前空間のシステムログ配布を設定する方法

設定と構成されたシステムサービスユニットを含む構成があります。/etc/systemd/[email protected]ForwardToSyslog=yesLogNamespace=my-namespace

ドキュメントによると、my-namespaceのログをsyslogに渡す方法は不明です。

私が知っている限り、UNIXドメインソケットまたは.journalファイルを介してsyslogにログを渡す方法は2つあります。このシナリオでは、/run/systemd/journal.my-namespace/syslogログを書き込むためのジャーナルド用のソケットとsyslogを受信して​​転送するためのrsyslogd用のソケットを設定するとします。ドキュメントを読みましたが、まだ設定方法を理解していません。

答え1

読んだ後、最小限の解決策を見つけました。rsyslog ドキュメント/etc/rsyslog.d/my-namespace.confこれは、次の内容でrsyslog設定ファイルを生成することです。

input(type="imuxsock" Socket="/run/systemd/journal.my-namespace/syslog")

答え2

rsyslog.conf

次のようなこのガイド、ローカルsyslogクライアントにファイルを追加しました。/etc/rsyslog.conf

module(load="imjournal")

rsyslogモジュールimjournalログメッセージを記録するのに特に便利です。/etc/rsyslog.confUDP転送設定もあります

*.* @some-remote-syslog-server.local:514

その後、再起動してくださいrsyslog

systemctl restart rsyslog.service

テスト

リモートsyslogサーバーからtailこのホスト用に収集されたsyslog(このパスはリモートsyslogサーバー構成によって異なります)

$ tail -F /var/log/rsyslog/my-host/*

ローカルsyslogサーバー上のログを追跡します。

$ journalctl -xf

次に、古いloggerプログラムと新しいプログラムを使用してsystemd-catログメッセージを作成します。

$ echo MESSAGE FROM $(hostname) USING logger | logger -t user
$ echo MESSAGE FROM $(hostname) USING systemd-cat | systemd-cat -t user

(ログメッセージラベルはuser任意です)

私の場合、vialoggerとviaの両方のメッセージがリモートsystemd-catsyslogサーバーとローカルsyslogログの2つの場所に表示されました。

この答えは名前空間を説明しようとしません。しかし、私が望むのは、すべてのログメッセージを渡すことです。

関連情報