2016.03.01 버전의 Archlinux와 rsyslogd 8.18.0 패키지를 사용하여 최소한의 빌드 구성으로 시작했습니다.매우 간단한 구성 :
# cat rsyslog.conf
$ModLoad immark
$ModLoad imudp
$ModLoad imtcp
$ModLoad imuxsock
$ModLoad imklog
$template SyslFormat,"%timegenerated% [WJCG]-%HOSTNAME% %syslogtag%%msg:::space$
kern.debug /var/adm/syslog.dated/kern.log;SyslFormat
user.debug /var/adm/syslog.dated/user.log;SyslFormat
daemon.debug /var/adm/syslog.dated/daemon.log;SyslFormat
auth.crit;syslog.debug /var/adm/syslog.dated/syslog.log;SyslFormat
mail,lpr.debug /var/adm/syslog/misc.log;SyslFormat
kern.debug /var/adm/messages;SyslFormat
kern.debug /dev/console;SyslFormat
*.emerg *
local4.* /var/log/local4.log
이제 (사용자 또는 루트로) 시도하면 다음과 같습니다.
# echo hello|logger -p local4.info
아무것도 기록되지 않으며 /var/log/local4.log
파일도 생성되지 않습니다.
그러나 systemd 로그 끝에는 다음이 표시됩니다.
# journalctl -xe|tail
Jun 10 18:32:17 mothership mobr[1681]: hello
Jun 10 18:38:09 mothership root[1696]: hello
systemd가 일반 로깅을 망친 것 같지만 처리 방법을 찾을 수 없습니다. 어떤 단서가 있나요?
해결됨:
로그 파일 생성 및 옵션 # touch /var/log/local4.log
활성화ForwardToSyslog=yes
/etc/systemd/journald.conf
답변1
rsyslog.com 웹사이트에서 찾을 수 없으므로 이 문제에 대한 지원 문서에 대한 링크를 환영합니다. 그러나 OP의 테스트에서 rsyslog(주어진 구성 포함)는 이러한 파일에 대한 로깅을 활성화하기 위해 새 파일 생성을 거부하고 먼저 생성한다는 것이 분명합니다(예: touch /var/log/local4.log
).
이전에도 이런 일이 있었습니다.rsyslog가 존재하지 않는 경우 rsyslog에 로그 파일을 생성하도록 어떻게 지시합니까?파일 삭제에 대한 질문이 있기 때문에 logrotate를 통한 파일 회전도 비슷한 상황입니다.