gpt4 book ai didi

elasticsearch - 将grok应用于日志文件

转载 作者:行者123 更新时间:2023-12-03 01:57:23 25 4
gpt4 key购买 nike

我是Grok和Logstash的新手。

2016/02/18 - 03:52:08|service|Info|some message in different format
2016/02/18 - 03:52:08|service|Info|Time to process "tweet_name" is 40.1081357 second(s)

我将收到类似上述格式的消息。我想要的是,我想提取以下内容,
  • 日期时间
  • 服务
  • 日志级别
  • 消息
  • tweetname
  • 的处理时间

  • 仅当消息以 Time to process开头时,项目5和6才可用

    我写了一个怪人,但是我不确定如何提取项目5和6。因为#5和#6仅在日志消息的某些行中可用。
    filter {grok { match => { "message" => "(?<datetime>(([0-9]+)\/*)+ - ([0-9]+:*)+)\|%{WORD:service}\|%{WORD:loglevel}\|%{GREEDYDATA:message}" }}}

    我怎样才能获得项目#5和#6并涂抹希腊酱?

    最佳答案

    我建议使用两个希腊小节。首先,摘下常见的东西(您的#1-#3)。使用'overwrite'参数将{ok}剩余的内容放回[message]。这几乎就是您所提供的grok中的功能,但是如果您使用诸如%{YEAR}之类的内置模式,则会更加清楚

    然后,使用带有匹配模式的第二个grok节来处理剩余的其他类型的值。像这样:

    grok {
    match => { "message" => "Time to process \"%{DATA:tweet_name}\" is %{NUMBER:tweet_sec} second\(s\)" }
    }

    如果您还有其他想要为其创建字段的消息,请向grok节添加更多模式。它将按顺序处理它们,直到找到匹配项,然后退出。

    关于elasticsearch - 将grok应用于日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35570581/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com