중앙 집중식 로깅 시설에서 기본값을 허용하면서 원격 긴급 메시지가 사용자 콘솔에 넘쳐나는 것을 방지하는 방법
*.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 파일에만 기록됩니다.