【问题标题】:Logstash: got one logfile with different logsLogstash:得到一个具有不同日志的日志文件
【发布时间】:2016-03-02 22:55:46
【问题描述】:

我有一个来自我公司的日志文件,其中包含不同的日志。所以确切的问题是我有描述混合日志的正则表达式或模式!但是日志以其他顺序具有相同的信息。现在的问题是如何区分不同的日志?

  1. 例子:

    115.123.47.28 - - 24/Feb/2016:00:00:00 -0800 GET /path1/path2/path3/?ex=juDySw3QsKltRRmaFI%253D id=123456 produced=2016

    我的正则表达式:

    %{IP:userIP}.*- %{GREEDYDATA:logDATE}(?![0-9]) -%{GREEDYDATA:nummer} %{WORD:method} (?:%{UNIXPATH:PATH}).*ex=%{GREEDYDATA:EX} id=%{NUMBER:id} produced=%{NUMBER:production year}

  2. 例子:

    117.143.35.19 - - 24/Feb/2016:00:00:00 -0800 GET /path1/path2/path3/? id=123456 produced=2016 ex=juDySw3QsKltRRmaFI%253D

    我的正则表达式:

    %{IP:userIP}.*- %{GREEDYDATA:logDATE}(?![0-9]) -%{GREEDYDATA:nummer} %{WORD:method} (?:%{UNIXPATH:PATH}).* id=%{NUMBER:id} produced=%{NUMBER:production year} ex=%{GREEDYDATA:EX}

所以我的问题是顺序改变了!!我的想法是我定义了一些类型,但它不起作用。

grok { 
    match => { "message" => ["TYPE1,%{IP:userIP}.*- ......",
                             "TYPE2,%{IP:userIP}.*- ......",
         }
  }

date {
  match => ["logDATE", "dd/MMM/YYYY:HH:mm:ss" ]
}

希望你能帮助我,以便我以后可以在 Kibana 中使用这些信息。 非常感谢。

【问题讨论】:

    标签: elasticsearch logstash kibana


    【解决方案1】:

    根据您提供的示例,我会将常用内容从每行前面(直到“?”)拉出,然后通过 kv{} 过滤器运行其余部分。

    【讨论】:

    • 您能否详细提供解决方案,说明我们如何使用 kv 过滤器实现这一目标。以配置文件的形式提供解决方案会更容易理解。
    • 如果您有一个包含键/值的字符串(例如“a=1 b=2 c=3”),您可以将它传递给 kv{} 过滤器,它会为您创建字段( “a”:1,“b”:2,“c”:3)。 kv{} 过滤器有很多选项可以指定分隔符等。
    • 能否贴出Logstash配置文件中提到grok和kv过滤器?
    • 不,我宁愿不为你做所有的工作。如果您对其中的一部分感到困惑,请提出一个新问题。
    猜你喜欢
    • 1970-01-01
    • 2021-07-21
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多