ForwardToSyslogオプションを使用したログソケットのバッファリング

ForwardToSyslogオプションを使用したログソケットのバッファリング

私の設定では、JournaldはForwardToSyslog=yes.Referenced fromに設定されています。文書:

syslog に転送が有効になっているが、ソケットからメッセージを読み取ることがない場合は、syslog に転送しても効果はありません。

私は次のテストを通してさまざまな観察を経験しました。

systemctl disable rsyslog
systemctl stop rsyslog
logger "rsyslog is dropped, journald won't forward this message"
systemctl enable rsyslog
systemctl start rsyslog

# This shouldn't find anything
grep "rsyslog is dropped" /var/log/syslog
    Mar 15 16:26:23 hostname user: rsyslog is dropped, journald won't forward this message

その結果、rsyslog はメッセージを正常に処理しました。

rsyslogが設定されていますが、設定されていません。ジャーナルデータベースを読み取る能力

私の仮説は、ソケットバッファリング機能のためにrsyslogが実行される前に受信されるということです。

この場合、rsyslogsの記録が開始されるようにbashからソケットを強制的にフラッシュするバッファリングを何らかの方法で削除できますか?

ベストアンサー1

1つのオプションは、rsyslogにソケットからのデータの受信に依存せずにソケットを直接使用させることですsystemd

# /etc/rsyslog.conf should contain
module(load="imuxsock"
       SysSock.Use="on"
       SysSock.Name="/run/systemd/journal/syslog")


# cat /lib/systemd/system/rsyslog.service
[Unit]
Description=System Logging Service
Documentation=man:rsyslogd(8)
Documentation=http://www.rsyslog.com/doc/

[Service]
Type=notify
ExecStart=/usr/sbin/rsyslogd -n
StandardOutput=null
Restart=on-failure

[Install]
WantedBy=multi-user.target

これにはいくつかの意味があります。

  • ソケットにイベントがある場合、rsyslogは自動的に起動しません(これが私が達成したいものです。明確にしましょう)。
  • これがシステムソケットの有効化に関連するrsyslogコードと競合するかどうかはわかりません。
  • そうだ正式に落胆

おすすめ記事