22.7. Rsyslog と Journal の相互作用

ここまで説明してきたように、使用中のシステムに存在する RsyslogJournal の 2 つのロギングアプリケーションには、特別のユースケースに適したいくつかの特徴的な機能があります。多くの状況では、これらの機能を組み合わせると便利になります。たとえば、構造化されたメッセージを作成して、ファイルデータベースに保存する場合 (「Rsyslog での構造化ロギング」 を参照) などです。ここで必要となる通信インターフェースは、Rsyslog 側の出入力モジュールと Journal の通信ソケットが提供します。
デフォルトで rsyslogd は、ジャーナルファイルのデフォルト入力モードとしてimjournal モジュールを使用します。このモジュールを使用すると、メッセージだけでなく、journald が提供する構造化データもインポートできます。古いデータも、(IgnorePreviousMessages オプションで禁止されていない場合は) journald からインポートできます。imjournal の基本設定は 「Journal からのデータのインポート」 を参照してください。
別の方法では、syslog ベースのアプリケーション用の出力に、journal が提供するソケットから読み取るように rsyslogd を設定することもできます。ソケットへのパスは、/run/systemd/journal/syslog です。プレーンな rsyslog メッセージを維持したい場合は、このオプションを使用します。imjournal と比較すると、ソケット入力は現在、ruleset バインディングやフィルタリングなど、より多くの機能を提供しています。ソケットを使用して Journal データをインポートするには、/etc/rsyslog.conf で以下の設定を使用します。
module(load="imuxsock"   
       SysSock.Use="on"
       SysSock.Name="/run/systemd/journal/syslog")
また、omjournal モジュールで Rsyslog から Journal にメッセージを出力することもできます。/etc/rsyslog.conf で出力を以下のように設定します。
module(load="omjournal") 
action(type="omjournal")
たとえば、以下の設定では、tcp ポート 10514 で受信したメッセージをすべて Journal に転送します。
module(load="imtcp")
module(load="omjournal") 

ruleset(name="remote") {
	action(type="omjournal")
}

input(type="imtcp" port="10514" ruleset="remote")