【发布时间】:2015-05-29 15:33:22
【问题描述】:
我有一个小型 Java 应用程序,它可以加载类似于下面这些的日志:
Fri May 29 12:10:34 BST 2015 Trade ID: 2 status is :received
Fri May 29 14:12:36 BST 2015 Trade ID: 4 status is :received
Fri May 29 17:15:39 BST 2015 Trade ID: 3 status is :received
Fri May 29 21:19:43 BST 2015 Trade ID: 3 status is :Parsed
Sat May 30 02:24:48 BST 2015 Trade ID: 8 status is :received
Sat May 30 08:30:54 BST 2015 Trade ID: 3 status is :Data not found
Sat May 30 15:38:01 BST 2015 Trade ID: 3 status is :Book not found
Sat May 30 23:46:09 BST 2015 Trade ID: 6 status is :received
我想使用 ELK 堆栈来分析我的日志并过滤它们。 我想要至少 3 个过滤器:日期和时间、交易 ID 和状态。
在我的 logstash 配置文件的过滤器部分,这是我所做的:
filter {
grok {
match => { "message" => "%{DAY} %{MONTH} %{DAY} %{TIME} BST %{YEAR} Trade ID: %{NUMBER:tradeId} status is : %{WORD:status}" }
}
目前我无法根据需要过滤日志。
【问题讨论】:
-
请更具体地说明您当前和预期的过滤器行为。说“它不起作用”是没有帮助的。
-
一方面,您的模式显示“状态为:”,但您的示例数据中的冒号后没有空格。使用 grok 调试器。
-
目前我的过滤器只能看到时间戳。没有关于 tradeId 和 status 的标签。我也想要那些标签。我真的是 ELK 的初学者,你能提供一个有效的配置文件吗?
标签: elasticsearch logstash grok logstash-grok elastic-stack