RSyslog는 어떻게 로그 메시지를 자동으로 수신합니까?

RSyslog는 어떻게 로그 메시지를 자동으로 수신합니까?

관련 부품:

anisha@linux-trra~> sudo cat /var/log/messages
Aug 29 13:04:22 linux kernel: imklog 5.6.3, log source = /proc/kmsg started.
Aug 29 13:04:22 linux rsyslogd: [origin software="rsyslogd" swVersion="5.6.3" x-pid="1879" x-info="http://www.rsyslog.com"] start
Aug 29 13:04:22 linux kernel: [7.585951] type=1400 audit(1346225659.436:4): apparmor="STATUS" operation="profile_load" name="/sbin/syslog-ng" pid=807 comm="apparmor_parser" Aug 29 13:04:22 linux kernel: [7.667712] type=1400 audit(1346225659.518:5): apparmor="STATUS" operation="profile_load" name="/sbin/syslogd" pid=830 comm="apparmor_parser"

나는 통과할 수 없다 ps -el.

  • 쇼는 어떻게 진행되나요?자동으로RSyslog에 메시지를 보내야 한다는 것을 알고 계십니까?

  • 모든 프로그램이 메시지를 한 곳에 덤프하면 RSyslog가 관련 메시지를 선택합니까?

  • Syslog 매뉴얼 페이지에는 Syslog가 /dev의 소켓에서 메시지를 읽는다는 내용이 나와 있습니다.그렇다면 위의 두 가지 사항과 어떤 관련이 있습니까?

답변1

기본적으로 모든 syslog 데몬은 다음에서 들어오는 메시지를 읽습니다. /dev/log

또한 syslog는 포트 514에서 UDP 소켓에 바인딩할 수 있습니다. /etc/services::를 참조하세요.

$ cat /etc/services | grep syslog
syslog          514/udp

두 번째는 주로 syslog 데몬 간에 로그를 전달하는 데 사용됩니다. 즉, 클러스터당 하나의 로그 서버입니다.

프로그래머는 /dev/log에 직접 쓰지 않고 posix 함수를 호출합니다 syslog. ::

#include <syslog.h>

void openlog(const char *ident, int option, int facility);
void syslog(int priority, const char *format, ...);
void closelog(void);

거의 모든 고급 언어는 이러한 기능 위에 추상화 계층을 제공합니다.

관련 정보