
設定と構成されたシステムサービスユニットを含む構成があります。/etc/systemd/[email protected]
ForwardToSyslog=yes
LogNamespace=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.conf
UDP転送設定もあります
*.* @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-cat
syslogサーバーとローカルsyslogログの2つの場所に表示されました。
この答えは名前空間を説明しようとしません。しかし、私が望むのは、すべてのログメッセージを渡すことです。