디렉토리가 존재하는 경우 rsyslog 대상 파일을 전환하십시오.

디렉토리가 존재하는 경우 rsyslog 대상 파일을 전환하십시오.

다음과 같이 특정 원격 호스트의 로그를 내 응용 프로그램 디렉터리의 특정 파일로 보내도록 rsyslog 서버를 구성했습니다.

$template TmplApplication, "/whatever/jboss/logs/%fromhost-ip%/sum.log"
if $fromhost-ip != '127.0.0.1' then  {
-?TmplApplication
stop
}

예를 들어 의 로그는 으로 1.2.3.4전송됩니다 /whatever/jboss/logs/1.2.3.4/sum.log.

그런데 지금은 jboss에서 wildfly로 애플리케이션을 변경하고 있어서 디렉터리 이름 /whatever/jboss/logs//whatever/wildfly/logs.

나는 로그를 jboss 디렉토리(존재하는 경우)로 전달하고, 그렇지 않으면 wildfly 디렉토리로 전달할 수 있도록 이전 버전과 호환되도록 만드는 것을 선호합니다. 따라서 다음과 같습니다.

$template TmplApplication1, "/whatever/jboss/logs/%fromhost-ip%/sum.log"
$template TmplApplication2, "/whatever/wildfly/logs/%fromhost-ip%/sum.log"
if $fromhost-ip != '127.0.0.1' then  {
  if /whatever/jboss exists then {
    -?TmplApplication1
    stop
  } else
    -?TmplApplication2
    stop
  }
}

분명히 이것은 작동하지 않습니다. 올바른 구문이 무엇인지 아시나요?

관련 정보