我有以下rsyslog配置:
template(name="logz.io" type="string" string="[TOKEN]
<%pri%>%protocol-version% %timestamp:::date-rfc3339% [hostname]
%app-name% %procid% %msgid% tag=\"syslog\"] %msg%\n")
# Send messages over TCP using the template.
action(type="omfwd" protocol="tcp" target="listener.logz.io" port="5001"
template="logz.io" StreamDriver="gtls" StreamDriverMode="1"
StreamDriverAuthMode="x509/name" StreamDriverPermittedPeers="*.logz.io")现在,我希望根据其中一个type="string"设置消息类型。因此,我可以为每种类型创建单独的模板,如
template(name="logz.io_nginx" type="nginx" string="[TOKEN]
<%pri%>%protocol-version% %timestamp:::date-rfc3339% [hostname]
%app-name% %procid% %msgid% tag=\"nginx\"] %msg%\n")但是,这意味着操作应该根据类型调用正确的模板。
type参数吗?发布于 2019-04-01 09:01:11
如何让rsyslog知道消息类型,它是logz概念而不是rsyslogd概念?您可能需要使用if语句,根据syslogtag/programname区分操作,并在if-然后-块中选择适当的模板。
https://serverfault.com/questions/953204
复制相似问题