BinJiLinZuo
Swaggy_Z0306
2019-08-27 14:10
采纳率: 100%
浏览 1.4k

logstash日志解析求一个grok正则表达式

10.77.102.130 id=tos time="2019-08-21 18:22:15" fw=TopsecOS pri=7
日志例子如上,要求输出成下面的样子,正则表达式应该怎么写。是不是要写自定义正则?求大佬帮助!!!
图片说明
像图2 一个字段一个值的隔行输出
比如"host" => "localhost"
id=tos就输出成"id"="tos"单独为一行
fw=TopsecOS就输出成"fw"="TopsecOS"单独为一行
图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • bigdataolddriver
    傲慢程序员 2019-08-27 16:06
    已采纳
    (?<sourceIP>.*)\sid=(?<id>.*)\stime="(?<time>.*)"\sfw=(?<fw>.*)\spri=(?<pri>.*)
    

    匹配得比较粗暴,凑合自己调吧

    图片说明

    点赞 评论
  • zhouchao6
    zhouchao6 2019-08-27 15:57

    "message" => "^%{IP:sourceIP} id=%{WORD:id} time=\"%{(%{YEAR}-%{MONTHNUM}-%{MONTHDAY} %{HOUR}:%{MINUTE}:%{SECOND}):time}\" fw=%{WORD:fw} pri=%{NUMBER:pri}$"
    时间匹配可能有问题,不太会(或者用QS《带引号的字符串代替》)
    你可以参考下grok自带规则
    https://blog.51cto.com/showing/1927194?source=dra
    https://blog.csdn.net/cui929434/article/details/94390617

    点赞 评论

相关推荐