rsyslog:imfile에 속성을 할당하는 방법은 무엇입니까?

rsyslog:imfile에 속성을 할당하는 방법은 무엇입니까?

내 환경에 있는 다른 장치의 syslog에 대해 UDP/514를 수신하도록 rsyslog를 구성했지만 일반 UDP/TCP syslog를 통해 보낼 수 없는 특정 로그가 있습니다. 유일한 방법은 파일 아래에서 실제 로그를 보내는 것입니다. 회전.

UDP 연결을 통해 예상대로 작동하도록 모든 rsyslog를 구성했지만 이제는SCP를 사용하여 복사된 로그 파일을 처리하고 syslog 포트를 통해 수신된 파일에 포함시키기 위해 rsyslog를 얻는 방법을 알아내려고 합니다.

파일을 임시 위치에 복사하도록 서버를 설정했고 /scp_tmp/[source_ip_address]/syslog.logimfile에 대한 설명서를 읽었으며 rsyslog가 파일을 읽고 예상 파일로 출력하도록 하는 방법을 확신하지만 문제는 일부 템플릿이 제대로 작동할 수 있도록 fromhost-ip속성 을 설정해야 합니다 .[source_ip_address]

Bash의 경로에서 이 속성/값을 추출하는 방법을 알고 있지만 rsyslog에서 이 작업을 수행할 수 있는 방법이 있습니까? rsyslog.conf는 명령 대체를 허용합니까?

노트:

  • 이 문제가 발생한 이유는 서버에서 생성된 로그에 호스트 이름이 포함되어 있지 않고 구성 유연성이 제한된 소프트웨어에서 나온 것이기 때문에 형식을 변경할 수 없었기 때문입니다.
  • rsyslogd 8.2004.0 실행
  • RHEL 6.10 실행

답변1

표준 속성(예: )은 변경할 수 없습니다 fromhost-ip. 그러나 로컬 변수를 문자열로 설정하여 속성으로 사용할 수 있습니다. 예를 들어

template(name="abc" type="string" string="note %$.myvar%")
set $.myvar = "this-value";

또한 imfile을 사용하면 파일 이름을 검색할 수 있습니다.메타데이터다음 옵션을 사용하는 경우 addMetadata:

input(type="imfile"
      File="/my/logs/*.log"
      addMetadata="on")

파일 이름은 변수에 배치됩니다 $!metadata!filename.

따라서 구성을 기본값으로 변경하면

set $.myvar = $fromhost-ip;

이를 재정의하면 imfile규칙에서 if $.myvar대신 사용할 수 있으며 모든 입력에 대해 공통 규칙을 가질 수 있습니다.if $fromhost-ip

관련 정보