systemd 커널 매개변수 systemd.journald.forward_to_syslog를 사용하는 방법

systemd 커널 매개변수 systemd.journald.forward_to_syslog를 사용하는 방법

저는 PXE를 통해 여러 시스템을 구성하고 커널 매개변수를 systemd.journald.forward_to_syslog모든 시스템에 전달하여 중앙 위치에서 모든 로그를 모니터링하는 것을 좋아합니다. (머신 구성을 변경할 수 없습니다. 이번이 첫 번째 부팅이고 유일한 부팅입니다.)

~에서문서이 옵션은 부울 true/false 옵션인 것 같지만 syslog 서버를 설정하는 방법을 찾을 수 없습니다. 저도 이렇게 사용해봤는데 systemd.journald.forward_to_syslog=1.2.3.4syslog 서버에서 생성된 트래픽이 보이지 않네요.

전에 이것을 시도해 본 사람이 있나요?

답변1

Systemd-journald는 네트워크를 통한 메시지 전송을 지원하지 않습니다. 이 옵션은 다음으로의 전달을 제어합니다.현지의syslog 데몬, /run/systemd/journal/syslog를 수신할 것으로 예상됩니다.

.journal(그러나 이것은 결코 권장되는 접근 방식은 아닙니다. syslog-ng 또는 rsyslogd를 사용할 때 "forward" 옵션을 비활성화하면서 syslog 데몬이 파일을 직접 읽어 로그 메시지를 가져오도록 하는 것이 더 안정적입니다 . syslogd 표준 BSD Syslog 형식을 넘어서는 모든 메타데이터 필드를 정확하게 보존합니다.

즉, 실제 syslog 데몬을 설치하고, .journal 파일을 읽도록 구성하고( system()syslog-ng의 소스 또는 imjournalrsyslogd의 모듈을 사용하여) 가져온 메시지를 네트워크를 통해 전달하도록 지시해야 합니다.

답변2

systemd.journald.forward_to_syslog더 자세히 검색해 본 결과 이 ​​문제를 해결하는 올바른 방법이 아닌 것 같습니다 .

이것도 발견함답변저자: systemd 제작자 Lennart Poettering

저널d 내부에서 이 작업을 수행하는 것은 좋지 않습니다. 저널d는 네트워크가 시작되기 오래 전에 시작되기 때문에 좋지 않습니다. 이는 저널이 있는 샌드박스를 종료해야 함을 의미합니다. 별도의 미니 데몬에서 이 작업을 수행하면 비동기식 동작이 가능하며(즉, netlogd가 시작되면 동시에 일어나는 일을 "따라잡을" 수 있음) 저널d는 네트워크에 직면할 필요가 없습니다.

권장되는 접근 방식은 다음과 같습니다.웹로그 (CentOS/Fedora 시스템에서는 사전 컴파일되지 않은 것 같습니다.

관련 정보