【问题标题】:Grok filter for a time counter HH:MM用于计时器 HH:MM 的 Grok 过滤器
【发布时间】:2017-10-11 19:38:08
【问题描述】:

我对 ELK 和 Grok 过滤非常陌生,我正在努力在我的 grok 过滤器中解析这种特殊模式。

我已使用grok debugger 尝试解决此问题,但虽然我喜欢该工具,但我只是对自定义模式感到困惑。

最后,我希望将filebeat发送的大量日志文件解析到logstash,然后将解析后的日志发送到elasticsearch并用kibana或类似的可视化工具显示。

我需要解析的行遵循以下模式:

1310 2017-01-01 16:48:54 [325:51] [326:49] [359:57] Some log info text
  • 前四位是日志类型标识符,将用于分组。我称该字段为“LogLineID”。
  • 日期格式为 YYYY-MM-DD HH:MM:SS,并且解析正常。我将该字段称为“LogDate”。
  • 但现在问题开始了。在方括号内,我有计数器,如果您愿意,可以格式化为 MM:SS。我终生无法找到一种方法来解决这些问题,但我需要比较这些时间,因此我想将它们存储为分钟和秒,而不仅仅是数字。
    • 第一个是计数器“TimeSpent”,
    • 第二个是计数器“TimeStarted”和
    • 第三个是计数器“TimeSinceDown”。
  • 然后,最后是信息文本,我通过简单地应用 %{GREEDYDATA:LogInfo} 就设法理解了它。

我注意到一小时内的分钟数可能远高于标准的 60 分钟,所以我可能在这里找错了树,试图用 TIMESTAMP_ISO8601 等日期模式解析它,但是,我没有真的不知道该怎么做。

所以,我走了这么远:

%{NUMBER:LogLineID} %{TIMESTAMP_ISO8601:LogDate}

并且如上所述能够(通过删除方括号部分)用

解析日志信息文本
%{GREEDYDATA:LogInfo}

创建一个字段 LogInfo。

但那是我被困住了。有人可以帮我弄清楚其余的吗?

提前致谢。

PS!我还找到了%{NUMBER:duration},但据我所知,它只能用点解析时间戳,而不是冒号..

【问题讨论】:

    标签: date time timestamp grok filebeat


    【解决方案1】:

    grok 正则表达式可以帮你解决问题。

    但首先我想确定你的意思是[325:51] [326:49] [359:57] 是你想要获取的三个组件吗?它会返回如下结果:

    TimeSpent: 325:51
    TimeStarted: 326:49
    TimeSinceDown: 359:57
    

    如果我明白了,您可以使用我的方法来提出以下建议:

    1. 定义您自己的自定义模式文件并将该模式​​添加到您的文件中。
    2. 只需在logstash conf文件的filter部分使用表达式

    希望对你有帮助

    【讨论】:

      【解决方案2】:

      啊,有一个空格.. 实际上,我在我的问题中误导了自己和每个人,因为实际上并不是那个日志行引起了问题。我只是拿了第一个,没有意识到问题到底出在哪里,但是导致问题的那个在括号内有一个空格:[ 42:31]。还有一些地方有两个空格,所以我设法解决这个问题的方法是在\[和%{NUMBER}之间添加一个%{SPACE}:

      %{NUMBER:LogLineID} %{TIMESTAMP_ISO8601:LogDate} \[%{SPACE}%{NUMBER:TimeSpentMinutes}\:%{NUMBER:TimeSpentSeconds}\] \[%{SPACE}%{NUMBER:TimeStartedMinutes}\:%{NUMBER:TimeStartedSeconds}\] \[%{SPACE}%{NUMBER:TimeSinceDownMinutes}\:%{NUMBER:TimeSinceDownSeconds}\] %{GREEDYDATA:LogText}
      

      我还没有解决分秒的合并,不过这个我后期也可以处理。

      感谢 Lin Don 对我的问题表现出兴趣,很抱歉没有尽快回复。

      希望解决方案能帮助其他人(甚至我自己),如果他们遇到同样的问题。

      给自己的提示:在摸索之前请仔细阅读日志.. :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-01
        • 1970-01-01
        • 2019-04-27
        • 2017-07-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多