rsyslog 서버에서 수신된 메시지의 타임스탬프를 로컬 타임스탬프로 바꾸는 방법은 무엇입니까?

rsyslog 서버에서 수신된 메시지의 타임스탬프를 로컬 타임스탬프로 바꾸는 방법은 무엇입니까?

로그를 rsyslog 서버로 전달하는 라우터가 있고 타임스탬프를 로컬 타임스탬프로 바꾸도록 rsyslog 서버를 구성하려고 합니다. 메시지 형식은 다음과 같습니다.

Jan  1 00:00:47 192.168.1.254 kernel: br0: port 1(eth0) entered forwarding state

이 라우터(192.168.1.254)에서 오는 모든 메시지에 대해 이를 수행하는 가장 좋은 방법은 무엇입니까?

답변1

이를 처리하는 가장 쉬운 방법은 이미 사용하고 있는 템플릿의 복사본인 템플릿을 작성하고 timestamp해당 속성을 변경하는 것입니다 timegenerated. 예를 들어, 파일에 쓰고 기본값을 사용한다고 가정합니다.RSYSLOG_TraditionalFileFormat 주형myFileFormat, 그런 다음 IP 주소를 생성하고 테스트하고 일치 규칙을 입력할 수 있습니다. 이전 형식에서 규칙은 로그 파일 이름과 ;템플릿 이름을 차례로 사용합니다.

template(name="myFileFormat" type="string" string="%timegenerated% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp% %msg:::drop-last-lf%\n") 
if $fromhost-ip == "192.168.1.254" then {
   *.* /my/logfile;myFileFormat
   stop
}

관련 정보