기계가 두 대 있어요. 첫 번째는 임베디드 Linux를 실행하고 두 번째는 FreeBSD를 실행합니다. Linux가 설치된 시스템에는 이미 rsyslog
syslog 클라이언트가 있고 그래야 합니다. 다른 하나는 이미 설치되어 syslogd
있으며 서버여야 합니다. FreeBSD를 사용하는 컴퓨터는 syslogd
파일에 원격 로그를 쓰지 않습니다. 테스트를 위해 Linux 상자 rsyslog
로 변경했을 때 sysklogd
원격 로깅이 작동하고 있었습니다. 문제는 내가 rsyslog
클라이언트에 있어야한다는 것입니다. 무엇이 문제를 일으킬 수 있나요? 예 rsyslog
와 syslogd
아니오가 호환됩니까? 내가 아는 한 로그 메시지 형식은 동일합니다.
FreeBSD를 실행 하면
tcpdump -enpi <interface>
syslog 메시지가 표시됩니다.
Linux MAC > FreeBSD MAC, ethertype IPv4 (0x0800), length 94: client_IP.35398 > server_IP.514: SYSLOG user.notice, length: 52
Linux(클라이언트)의 파일에 rsyslog.conf
다음 줄을 추가했습니다.
*.* @server_IP
FreeBSD(서버)의 파일에 syslog.conf
다음 줄을 추가했습니다.
+client_IP
*.* /path/to/client/logs
내 FreeBSD 파일 rc.conf
에 다음 줄을 추가했습니다 .
syslogd_enable="YES"
syslogd_flags="-a client_IP -vv"
답변1
-a client_IP
에서 제거 했습니다 syslogd_flags
. rc.conf
문제는 클라이언트 포트 번호일 수 있습니다. 포트를 지정하지 않으면 syslogd_flags
514로 가정하는데, 내 로그는 다른 포트에서 나옵니다. 또 다른 해결 방법은 모든 포트를 클라이언트 IP 주소에 추가하는 것입니다 -a client_IP:*
.