rsyslog ltrim機能の使い方は?

rsyslog ltrim機能の使い方は?

msgrsyslogを使用してフィールドの先行スペースと末尾のスペースを切り取りたいと思います。という関数があると読みrtrimましたがltrim、RainierScriptで関数を使用する方法の説明が見つかりませんでした。誰もがこれらの機能の例を示すことができれば非常に感謝します。私の現在の構成は次のとおりです。

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"
     ...
  )
}

セミコロン(;)で終わることを忘れないでください!バラより変更可能な属性タイプ

おすすめ記事