【发布时间】:2022-12-15 07:23:59
【问题描述】:
我已将 syslog-ng 配置为从另一台机器接收日志,日志每分钟都会出现一次,但包含如何从行数据中过滤不需要的消息?
例子:
date=2021-06-01 time=10:01:01 ABC="1" cde=2 Xyz="aaa" name=UKdate=2021-06-01 time=10:01:02 ABC="3" cde=5 name=USA
date=2021-06-01 time=10:01:03 ABC="4" cde=2
syslog-ng 的输出需要如下所示:
2020-06-01/data-20200601.log:
`date=2021-06-01 time=10:01:01 ABC="1" cde=2 Xyz="aaa" name=UK `
date=2021-06-01 time=10:01:02 ABC="3" cde=5 XyZ="" name=USA
date=2021-06-01 time=10:01:03 ABC="4" cde=2 XyZ="" name=""
基于 KEY= 的平均过滤器,如果缺少 KEY= 的值应该用“”记录(这样丢失的值就不会向左移动),所以我可以稍后根据需要进行过滤:
我尝试使用 awk 和 sed 进行解析,但系统日志“data-20200601.log”生成的日志文件的大小约为 10GB,我花了很长时间才获得此输出
2021-06-01,10:01:01,1,2,aaa,UK
2021-06-01,10:01:02,3,5,,USA
2021-06-01,10:01:03,4,,,,
【问题讨论】:
标签: syslog-ng