rsyslog ltrim 기능을 사용하는 방법은 무엇입니까?

rsyslog ltrim 기능을 사용하는 방법은 무엇입니까?

msgrsyslog를 사용하여 필드의 선행 및 후행 공백을 잘라내고 싶습니다 . 라는 함수가 있다고 읽었 rtrim는데 ltrimRainierScript에서 함수를 사용하는 방법에 대한 설명을 찾을 수 없습니다. 누구든지 이러한 기능의 예를 보여줄 수 있다면 매우 감사하겠습니다. 내 현재 구성은 다음과 같습니다.

module(load="imudp")
input(type="imudp" port="514" ruleset="forward")

template(name="RFC5424_IP" type="string"
  string="<%PRI%>1 %timegenerated:::date-rfc3339% %fromhost-ip% %APP-NAME% %PROCID% %MSGID% %STRUCTURED-DATA% %msg%"
)

ruleset(name="forward") {
  action(type="omfwd"
    protocol="tcp"
    target="127.0.0.1"
    port="40514"
    Template="RFC5424_IP"
    TCP_Framing="octet-counted"
  )
}

답변1

이를 사용하여 setjson 값 트리 상단에 새 json 변수(일반적으로 동일한 이름)를 만든 다음 아래와 같이 템플릿에서 해당 변수를 참조할 수 있습니다.

template(name="RFC5424_IP" type="string"
  string="... %$!msg%"
)

ruleset(name="forward") {
  set $!msg = rtrim(ltrim($msg));
  action(type="omfwd"
     ...
  )
}

세미콜론(;)으로 끝나는 것을 잊지 마세요! 바라보다변경 가능한 속성 유형

관련 정보