logstash - 在 Logstash 中提取字段

标签 logstash kibana

我正在使用 Logstash(以 Kibana 作为 UI)。我想从我的日志中提取一些字段,以便我可以在 UI 的 LHS 上按它们进行过滤。

我日志中的示例行如下所示:

2013-07-04 00:27:16.341 -0700 [Comp40_db40_3720_18_25] client_login=C-316fff97-5a19-44f1-9d87-003ae0e36ac9 ip_address=192.168.4.1

在我的 logstash conf 文件中,我放了这个:

filter {
    grok {
        type => "mylog"
        pattern => "(?<CLIENT_NAME>Comp\d+_db\d+_\d+_\d+_\d+)"
    }
}

理想情况下,我想提取 Comp40_db40_3720_18_25(位数可以变化,但在每个部分中始终至少为 1,由 _ 分隔)和 client_login(也可以是 client_logout)。然后,我可以搜索 CLIENT_NAME=Comp40... CLIENT_NAME=Comp55 等。

我是否在我的配置中遗漏了一些东西来使它成为我可以在 Kibana 中使用的字段?

谢谢!

最佳答案

如果您无法正确匹配模式,请使用 Grok Debugger是一个很好的解决方案。

对于给定的问题,您可以将搜索数据分离到另一个变量中,并将额外的变化数字保存在另一个(垃圾)变量中。

例如:

(?<SEARCH_FIELD>Comp\d+)%{GREEDYDATA:trash_variable}]

(请在上面的模式中使用Grok Debugger)

关于logstash - 在 Logstash 中提取字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17659963/

相关文章:

elasticsearch - 无法将Kibana连接到Elasticsearch

tomcat - 错误显示时间过滤器 kibana 3 (utc)

elasticsearch - 使用查询字符串语法在Visualize/仪表板上的Kibana中使用预过滤

json - Logstash不解析JSON

elasticsearch - Logstash 没有在 Elasticsearch 上创建索引

elasticsearch - 如何从文本文件行解析 logstash/grok 中的 json?

elasticsearch - Logstash 重新创建 Elasticsearch 索引时出错

elasticsearch - 如何使用 NEST 在 Logstash 中为 Elasticsearch 构造过滤器?

elasticsearch - 如何在ELK堆栈中使用Elasticsearch查询获取数组的长度?

elasticsearch - Logstash kibana geoip 过滤器冲突