Rsyslog 構成に再起動する必要はありません。

Rsyslog 構成に再起動する必要はありません。

ロギングに問題があります。以下の構成に従ってアプリケーションログファイルを/ var / logに保存するには、rsyslogの再起動を実行する必要があります。また、ログの回転を防ぐためにrsyslogを再起動する必要がありました。 rsyslogの再起動を防ぐためのrsyslogサービスとsystemdサービスの正しい設定は何ですか?

私の設定:/etc/rsyslog.d/myapp.conf

if $programname == 'myapp' then {
    /var/log/myapp/myapp.log
    stop
}

/etc/systemd/system/myapp.service

[Unit]
Description=myapp

[Service]
User=myapp
ExecStart=/usr/bin/myapp
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=myapp

[Install]
WantedBy=multi-user.target

/etc/logrotate.d/myapp.conf

/var/log/myapp/myapp.log {
  rotate 7
  daily
  size 100MB
  compress
  missingok
  notifempty
  postrotate
    sudo systemctl restart rsyslog.service
  endscript
}

ベストアンサー1

次のように、rsyslogdにログファイルを再度開くように指示できる必要があります。

/usr/bin/systemctl kill -s HUP rsyslog.service 

構成を再ロードする方法が見つかりませんでした。ほとんどのクリックでは、新しい設定を適用するには再起動する必要があると言います。

その情報をリンクするサーバーエラーの質問が見つかりました。不可能:
https://serverfault.com/q/1053728/343786

この投稿はなぜこれは不可能です:
https://rainer.gerhards.net/2008/10/new-rsyslog-hup-processing.html
https://github.com/rsyslog/rsyslog/issues/3759

後者は、再起動中にログメッセージの損失を防ぐために使用できるRELPを表します。以下を参照してください。
https://en.wikipedia.org/wiki/Reliable_Event_Logging_Protocol

おすすめ記事