전달하기 전에 Rsyslog 변경 로그 라인

전달하기 전에 Rsyslog 변경 로그 라인

Ubuntu 16.04.5 LTS에서 rsyslogd를 사용합니다.

다음과 같은 상황이 있습니다.

(1) 장치는 syslog를 Ubuntu 호스트로 전달합니다. (2) Ubuntu 호스트는 전달된 메시지를 별도의 로그 파일에 저장합니다. (3) Ubuntu 호스트는 또한 해당 메시지를 제3의 시스템에도 전달합니다.

현재 구성의 모습에 대한 자세한 설명

(1) /etc/rsyslog.conf에서 다음 기능이 활성화됩니다.

# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")

# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="514")

(2) 다음 내용으로 /etc/rsyslog.d에 30-remotehosts.conf를 생성하여 구현됩니다.

:fromhost-ip, isequal, "<sending_IP>" /var/log/remotesyslog/<name>.log
& ~

(3) 다음 내용으로 /etc/rsyslog.d에 10-send_to_other_hosts.conf를 생성하여 구현됩니다.

:fromhost-ip, isequal, "<sending_IP>"   @<destination_IP>:514

지금까지는 예상대로 잘 작동하고 있습니다.

하지만 지금 우리에게 필요한 것은 목적지로 보내기 전에 로그 라인을 변경하는 것입니다.

현재 예제 로그 줄은 다음과 같습니다.

Dec  7 11:10:07 srvde450.rce-group.local [S=582442040] [SID=9642c9:20:3850677]  1 RTP packets lost: CID=217 [Code:0x600b] [CID:217] [Time:07-12@10:10:13]

대상으로 보내기 전에 다음과 같이 변경해야 합니다.

[S=582442040] [SID=9642c9:20:3850677]  1 RTP packets lost: CID=217 [Code:0x600b] [CID:217] [Time:07-12@10:10:13]

따라서 타임스탬프와 소스가 제거됩니다.

이것이 어떻게 달성될 수 있습니까?

답변1

해당 필드만 포함하는 데이터에 대한 템플릿을 지정하면 이를 수행할 수 있습니다 msg. 그러나 원격 서버는 결과적으로 비표준 라인을 구문 분석하지 못할 수 있으므로 기본 설정을 사용하여 처리하지 못할 수도 있습니다.

예를 들어 템플릿을 만듭니다.

$template myedit,"%msg%\n"

필터 계열에서 사용하세요.

:fromhost-ip, isequal, "<sending_IP>"   @<destination_IP>:514;myedit

많이있다특성이와 같은 msg입력에서 추출하려면 다음을 수행하십시오.조종하다예를 들어, 하위 문자열 %msg:10:$:%(문자 10부터 끝까지)을 얻습니다.

관련 정보