시설 및 호스트를 기반으로 조건부 전달을 수행하기 위해 rsyslog 규칙을 작성하는 방법은 무엇입니까?

시설 및 호스트를 기반으로 조건부 전달을 수행하기 위해 rsyslog 규칙을 작성하는 방법은 무엇입니까?

이 규칙은 다른 호스트로 전달 되어 전송 rsyslog됩니다 .syslogauth

syslog,auth.*                                  @another-host

다음 내용(에서 발췌)여기) fromhost에 따라 시스템 로그를 전달합니다.

:fromhost-ip, !isequal, 192.178.23.10 @192.178.23.10:514

질문: 이 둘을 어떻게 결합할 수 있나요? "fromhost가 다른 로그 서버의 IP와 같지 않으면 모든 로그 syslog와 syslog를 다음으로 전달합니다" 효과가 있는 rsyslog 규칙을 원합니다.authanother-host

작동하지 않는 것 같은 다음을 시도했습니다.

:fromhost-ip, !isequal, 192.178.23.10 syslog,auth.* @another-host

일반적으로 rsyslog 구성 설정의 유효성을 어떻게 디버그해야 하는지 잘 모르겠습니다. 위의 내용이 반유효한지 완전히 의미가 없는지는 모르겠지만 rsyslog 서비스를 다시 시작하면 오류가 발생하지 않습니다.

답변1

rsyslog구성 파일 경험이 있는 사람들에게 이것이 올바른지 또는 우아한 것으로 간주되는지는 확실하지 않지만 다음과 같이 작동하는 것 같습니다.

if $fromhost-ip != '192.178.23.10' and ($syslogfacility-text == 'syslog' or $syslogfacility-text == 'auth') then @another-host

관련 정보