Rsyslog Regex 和 DynaFile 模板
Rsyslog Regex and DynaFile template
我正在使用以下模板从防火墙日志中仅提取必填字段,以节省 Splunk 中的带宽和许可证成本。当我将它保存到静态文件时它正在工作,但我需要将文件名保存在时间戳中,以便我将轮换旧日志。我正在尝试使用 DynaFile,但我不知道如何将两个模板用于单个日志?
带有静态文件的工作模板:
template(name="clean" type="string"
string="%TIMESTAMP% %HOSTNAME% %msg:R,ERE,0,DFLT:type=\"([^\"]*)\"--end% %msg:R,ERE,0,DFLT:subtype=\"([^\"]*)\"--end% %msg:R,ERE,0,DFLT:level=\"([^\"]*)\"--end% %msg:R,ERE,0,DFLT:eventtime=[1-9]+--end% %msg:R,ERE,0,DFLT:srcip=(.*) srcport=[0-9]+--end% %msg:R,ERE,0,DFLT:srcintf=\"([^\"]*)\"--end%\n"
)
if $hostname == '192.168.0.1' then action(type="omfile" file="/var/log/firewall.log" template="clean")
如何使用 DynaFile 保存此模板的结果?谢谢你的时间。
omfile 模块接受参数 "dynaFile="
而不是 "file="
来指定动态文件名的模板。
如果您只在文件名中使用 %timestamp%
,它可能会为每条消息创建一个新文件,因为时间戳包括小时、分钟和秒。一种可能性是将时间戳转换为称为 rfc3339 的标准格式,然后使用 property replacer.
仅获取该字符串的年月日部分
template(name="mydynafile" type="string" string="/var/log/my-%timestamp:1:10:date-rfc3339%.log")
if $hostname == '192.168.0.1' then action(type="omfile" dynaFile="mydynafile" template="clean")
我正在使用以下模板从防火墙日志中仅提取必填字段,以节省 Splunk 中的带宽和许可证成本。当我将它保存到静态文件时它正在工作,但我需要将文件名保存在时间戳中,以便我将轮换旧日志。我正在尝试使用 DynaFile,但我不知道如何将两个模板用于单个日志?
带有静态文件的工作模板:
template(name="clean" type="string"
string="%TIMESTAMP% %HOSTNAME% %msg:R,ERE,0,DFLT:type=\"([^\"]*)\"--end% %msg:R,ERE,0,DFLT:subtype=\"([^\"]*)\"--end% %msg:R,ERE,0,DFLT:level=\"([^\"]*)\"--end% %msg:R,ERE,0,DFLT:eventtime=[1-9]+--end% %msg:R,ERE,0,DFLT:srcip=(.*) srcport=[0-9]+--end% %msg:R,ERE,0,DFLT:srcintf=\"([^\"]*)\"--end%\n"
)
if $hostname == '192.168.0.1' then action(type="omfile" file="/var/log/firewall.log" template="clean")
如何使用 DynaFile 保存此模板的结果?谢谢你的时间。
omfile 模块接受参数 "dynaFile="
而不是 "file="
来指定动态文件名的模板。
如果您只在文件名中使用 %timestamp%
,它可能会为每条消息创建一个新文件,因为时间戳包括小时、分钟和秒。一种可能性是将时间戳转换为称为 rfc3339 的标准格式,然后使用 property replacer.
template(name="mydynafile" type="string" string="/var/log/my-%timestamp:1:10:date-rfc3339%.log")
if $hostname == '192.168.0.1' then action(type="omfile" dynaFile="mydynafile" template="clean")