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

관련 정보