我想msg
使用 rsyslog 修剪字段中的前导和尾随空格。我读到它有调用的函数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
您可以使用set
它在 json 值树的顶部创建一个新的 json 变量(通常具有相同的名称),然后在模板中引用该变量,如下所示。
template(name="RFC5424_IP" type="string"
string="... %$!msg%"
)
ruleset(name="forward") {
set $!msg = rtrim(ltrim($msg));
action(type="omfwd"
...
)
}
不要忘记终止分号 (;)!看可变属性类型