rsyslog 수신기의 콘솔이 플러딩되지 않도록 원격 패닉 이벤트를 비활성화하는 방법은 무엇입니까?

rsyslog 수신기의 콘솔이 플러딩되지 않도록 원격 패닉 이벤트를 비활성화하는 방법은 무엇입니까?

중앙 집중식 로깅 시설에서 기본값을 허용하면서 원격 긴급 메시지가 사용자 콘솔에 넘쳐나는 것을 방지하는 방법

*.emerg    :omusrmsg:*

지역 응급 상황이 발생하면?

특히 원격 긴급 메시지를 로그 파일에 기록하고 이메일을 보내고 싶지만 원격 시스템이 주 서버의 작업을 방해해서는 안 됩니다.

기본 서버는 RHEL 7.4 x86_64
rsyslog 버전: 8.24.0 입니다.

서버측 구성(조각):
/etc/rsyslog.conf:

$ModLoad imuxsock
$ModLoad imjournal
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
*.emerg    :omusrmsg:*
$OmitLocalLogging on

/etc/rsyslog.d/listen.conf:

$systemLogSocketName /run/systemd/journal/syslog

답변1

새로운 /etc/rsyslog.d/remote-emerg.conf 파일이 생성됩니다.

$template myFormat0,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg:::drop-last-lf\n"
if $fromhost-ip != '127.0.0.1' and $syslogseverity-text == 'emerg' then {
*.emerg /var/log/remote/PANIC;myFormat0
stop
}

노트:%FROMHOST-IP% 대신 %HOSTNAME%을 사용해 보았으나 원격 호스트 이름이 올바르게 구성되었음에도 불구하고 항상 localhost가 인쇄됩니다.

테스트로 이동로컬 및 원격 호스트에서 실행:

logger -p daemon.emerg "TEST from $HOSTNAME"

로컬 실행은 콘솔에 인쇄되고, 원격 실행은 PANIC 파일에만 기록됩니다.

관련 정보