【问题标题】:logstash grok parse urllogstash grok 解析网址
【发布时间】:2015-12-18 17:09:52
【问题描述】:

我一直在网上搜索,但不太清楚。

grok {
    match => ["message", "%{TIMESTAMP_ISO8601:log_timestamp} %{URIPATH:url}
}

我需要从 url 中获取内容并将其放入弹性搜索中。

日志有这样的网址

网址 1 = /NEED_A/Constant_A/Constant_B/Constant_C/Need_B/Constant_D/Need_C/Need_D

网址 2 = /NEED_A/Constant_A /Constant_B/Constant_C/Need_B/Constant_D

网址 3 = /Wierd_A

Need_A、NEED_B、NEED_C、Need_D、Wierd_A 应分别填写在各个字段中。

我一直试图找到一个 if else-if 循环,但还没有真正得到任何东西。

grok {
    match => ["message", "%{TIMESTAMP_ISO8601:log_timestamp} {URIPATH:url} %]
  }
if[url] == "/*/Constant_A/Constant_B/Constant_C/*/Constant_D/*/*" {
    \/%{WORD:NEED_A}\/.*\/.*\/.*\/%{WORD:NEED_B}\/.*\/%{WORD:NEED_C}
}

else-if[url] == "/*/Constant_A/Constant_B/Constant_C/*/Constant_D" {
    \/%{WORD:NEED_A}\/.*\/.*\/.*\/%{WORD:NEED_B}\/.*\/
}
else-if
    //something similar for url 3
}
//move on if nothing matches

有什么想法吗?

【问题讨论】:

    标签: url elasticsearch logstash grok


    【解决方案1】:

    logstash 不是循环类型系统。

    如果您想针对您的输入运行多个模式,只需list them

    grok {
        match => {
            "message" => [
                "%{PATTERN1}",
                "%{PATTERN2}"
            ]
        ]
    }
    

    【讨论】:

      猜你喜欢
      • 2021-03-31
      • 1970-01-01
      • 1970-01-01
      • 2017-07-18
      • 2020-11-10
      • 1970-01-01
      • 1970-01-01
      • 2021-10-24
      • 1970-01-01
      相关资源
      最近更新 更多