Rsyslog는 syslog에서 $programname을 제외합니다.

Rsyslog는 syslog에서 $programname을 제외합니다.

원격 rsyslog 서버에서 중복된 메시지를 받았습니다. 메일 서버에서 clamav 로그 캡처를 구성했는데도 여전히 syslog에 로그가 표시됩니다.

# Configuration for Mail ClamAV logs in rsyslog.d
if ($fromhost contains "mail") and ($programname contains "clam") then {
   action(type="omfile" file="/var/log/mail-clam.log")
}

메일 clam.log:

Jan  3 11:32:07 mail2 freshclam[265]: Received signal: wake up
Jan  3 11:32:07 mail2 freshclam[265]: ClamAV update process started at Thu Jan  3 11:32:07 2019
Jan  3 11:32:07 mail2 freshclam[265]: main.cld is up to date (version: 58, sigs: 4566249, f-level: 60, builder: sigmgr)
Jan  3 11:32:07 mail2 freshclam[265]: daily.cld is up to date (version: 25264, sigs: 2197013, f-level: 63, builder: raynman)
Jan  3 11:32:07 mail2 freshclam[265]: bytecode.cld is up to date (version: 328, sigs: 94, f-level: 63, builder: neo)

시스템 로그:

Jan  3 11:32:07 mail2 freshclam[265]: Received signal: wake up
Jan  3 11:32:07 mail2 freshclam[265]: ClamAV update process started at Thu Jan  3 11:32:07 2019
Jan  3 11:32:07 mail2 freshclam[265]: main.cld is up to date (version: 58, sigs: 4566249, f-level: 60, builder: sigmgr)
Jan  3 11:32:07 mail2 freshclam[265]: daily.cld is up to date (version: 25264, sigs: 2197013, f-level: 63, builder: raynman)
Jan  3 11:32:07 mail2 freshclam[265]: bytecode.cld is up to date (version: 328, sigs: 94, f-level: 63, builder: neo)

로그를 제외하기 위해 rsyslog.conf에 다음 줄이 있습니다.

*.*;auth,authpriv,mail.none     -/var/log/syslog

$programname시스템 로그에서 제외하는 방법을 모르겠습니다 . 이 문제를 해결하는 올바른 방법은 무엇입니까?

*.*;auth,authpriv,mail.none,if ($programname contains "clam") then {}     -/var/log/syslog

아니면 if 문을 어떻게든 참조할 수 있나요?

답변1

구성 파일의 규칙은 rsyslog위에서 아래로 평가됩니다. 따라서 필요한 처리 후 로그 메시지를 제거하는 것만으로 선택적 로깅을 달성할 수 있습니다. "중지" 작업은 로그 메시지를 삭제하는 데 사용됩니다.

상황에 따라 rsyslog.conf 파일을 다음과 같이 수정합니다.

if ($fromhost contains "mail") and ($programname contains "clam") then {
   action(type="omfile" file="/var/log/mail-clam.log")
   stop
}

...

*.*;auth,authpriv,mail.none     -/var/log/syslog

이 구성을 사용하면 표현식과 일치하는 모든 메시지가 /var/log/mail-clam.log에 기록된 후 삭제됩니다. 이렇게 하면 해당 메시지가 추가로 처리되어 /var/log/syslog에 기록되는 것을 방지할 수 있습니다.

관련 정보