나는 시스템 기반 시스템을 가지고 있으며 일부 서비스의 경우 원격 로깅을 설정해야 합니다. 가장 쉽게 설정하는 방법은 유닛 파일에서 사용하고 설정하는 것입니다 rsyslog
.StandardOutput=syslog
이제 원격으로 기록된 부팅 메시지와 커널 로그도 필요하지만 배치하려는 커널을 나타내는 장치 파일을 찾을 수 없습니다 StandardOutput=syslog
.
이 문제를 해결하는 방법에 대한 아이디어가 있습니까?
답변1
체계화된 용도통나무로깅을 수행합니다. /etc/systemd/journald.conf
.see 에서 구성됩니다 man journald.conf
. 특히, 다음을 /etc/systemd/journald.conf.d/my.conf
포함하는 파일을 생성할 수 있습니다.
ForwardToSyslog=on
모든 로깅 레코드를 소켓으로 보냅니다 /run/systemd/journal/syslog
. 일반적으로 이 소켓은 시작 줄에서 읽어 읽 syslog
도록 구성됩니다./etc/rsyslog.conf
$ModLoad imjournal # provides access to the systemd journal
이 데이터 스트림에 공통 syslog 필터링을 사용할 수 있습니다.
답변2
커널에서 로그를 가져오려면 서비스에서 로그를 가져오는 것과는 다른 접근 방식이 필요합니다.
커널은 자신의 로그를 메모리에 다음과 같은 영역에 저장합니다.커널 링 버퍼. 이는 특수 파일을 통해 사용자 공간에 노출됩니다 /dev/kmsg
.기본적으로 journald
파일을 읽습니다. 따라서 Journald가 모든 것을 rsyslog로 전달하면 커널 메시지도 전달됩니다.