systemd + rsyslogホストから `/dev/log`を復元する方法は?

systemd + rsyslogホストから `/dev/log`を復元する方法は?

RHEL7では、バグや2つのデーモン間の衝突によってsystemd-journald一度引き継がれた多くの項目が失われる場合があります。したがって、ソケットを復元する方法など、この呼び出しに依存するプログラムは正しく機能しません。rsyslogd/dev/logsyslog(3)logger/dev/log

ベストアンサー1

Googleはこの問題についてあまり役に立ちませんので、直接質問して回答することをお勧めします。

通常、を使用すると、rsyslogdモジュールはimuxsockソケット自体を作成し、前のエントリを作成する前に切断します。停止した/dev/log場合rsyslogd(誤った設定と再起動に失敗したため)rsyslogdを削除 /dev/log

ただし、提供されたrsyslogはRHEL7とともに使用されることが予想され、systemdこのモジュールは実際にソケットをimuxsock開いて削除します。/run/systemd/journal/syslog同時にトリガーされた/dev/logシステムサービスファイルによってデバイスが作成されます。systemd-journald.socketjournald

明らかに$imjournal、以下はモジュールを使用するかどうかに関係なく機能します。

要約すると、/dev/log消えた場合:

  1. systemd-journald.socket を再起動します。

    systemctl restart systemd-journald.socket
    
  2. その後、rsyslogd を再起動します。

    systemctl start rsyslogd
    

アップデート:ソケットがすでに実行されている場合は、ソケットをもう一度削除できると思いますsystemctl restart rsyslogdrsyslogd

おすすめ記事