Rsyslog lognormalizer 日期字段解析失败

Posted

技术标签:

【中文标题】Rsyslog lognormalizer 日期字段解析失败【英文标题】:Rsyslog lognormalizer date field parse failure 【发布时间】:2017-09-18 09:50:15 【问题描述】:

我正在尝试使用 lognorm/lognormalizer 来测试我的 .rb 文件以与 rsyslog mmnormalize 模块一起使用。我的日志文件如下所示:

2017-08-19T17:00:12.52Z,john,26,engineer
2017-08-19T17:00:12.59Z,susan,28,doctor

我的rb文件如下:

version=2
rule=:%date:date-rfc3164%,%name:word%,%age:number%,%job:word%

运行 lognormalizer 时:

head -2 /home/debian/olas/test.log | /usr/lib/x86_64-linux-gnu/lognorm/lognormalizer -r /home/debian/olas/rule.rb -e json

我明白了:

 "originalmsg": "2017-08-19T17:00:12.52Z,john,26,engineer", "unparsed-data": "2017-08-19T17:00:12.52Z,john,26,engineer" 
 "originalmsg": "2017-08-19T17:00:13.56Z,susan,28,doctor", "unparsed-data": "2017-08-19T17:00:13.56Z,susan,28,doctor" 

这意味着 rb 脚本不正确。有谁知道我做错了什么?我猜的日期字段配置不正确,我应该插入任何其他模块吗?我在网上找不到任何东西。谢谢

【问题讨论】:

【参考方案1】:

你可以使用这条规则:

version=2

rule=:%date:char-to"extradata":","%,%name:char-to"extradata":","%,%age:number"format":"number"%,%job:rest%

使用Lognormalizer(漂亮打印)产生以下输出:


    "job": "engineer",
    "age": 26,
    "name": "john",
    "date": "2017-08-19T17:00:12.52Z"
,

    "job": "doctor",
    "age": 28,
    "name": "susan",
    "date": "2017-08-19T17:00:12.59Z"

测试命令:

lognormalizer -P -H -r my.rule < mylog.log 

【讨论】:

以上是关于Rsyslog lognormalizer 日期字段解析失败的主要内容,如果未能解决你的问题,请参考以下文章

rsyslog 结合logrotate日志切割处理

日志管理-rsyslog日志服务器及loganalyzer

Rsyslog日志收集服务并结合Loganalyzer工具展示

比较2个时刻日期字串的时间差:距离现在的时间距离(不同时间格式)

EF中关于日期字值的处理

RSyslog安装配置