【发布时间】:2020-04-16 16:21:12
【问题描述】:
我正在使用 ELK Stack 来分析我的 Spring Boot 应用程序生成的日志。以下是我生成的日志的示例结构。
日志:
13-04-2020 10:53:40.074 INFO 16688 --- [DefaultMessageListenerContainer-1] c.i.e.util.SavingEquityData :将记录保存在数据库以及 REDIS 缓存中。
我想通过 ELK Stack 监控我的日志。
Logstash.conf
input {
file {
type => "syslog"
path => ["C:/temp/equityFeedsProcessing.log"]
start_position => "beginning"
}
}
filter {
grok {
match => { "message" => "%{LOGLEVEL:log-level} %{DATA:class}:%{GREEDYDATA:message}" }
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
}
}
我确实了解输入和输出插件。我不明白的是过滤器插件。虽然我在下面写了一个 Grok 过滤器,它通过 Grok 调试器:https://grokdebug.herokuapp.com/
图案:
%{LOGLEVEL:log-level} %{DATA:class}:%{GREEDYDATA:message}
输出:
{
"log": [
[
"INFO"
]
],
"class": [
[
" 2568 --- [DefaultMessageListenerContainer-1] c.i.e.util.JAXBDateDeSerializer "
]
],
"message": [
[
" Inside Unmarshall method of JAXB Date Deserializer."
]
]
}
- 我无法映射过滤器插件中的所有字段 例如时间戳字段。我该怎么做?
- 如何创建索引。我明白我可以看到创建的索引
http://localhost:9200/_cat/indices/?v - 我也明白,要创建索引,我们必须去 Kibana -> Management -> 索引模式 -> 创建索引模式。我无法创建我的 索引模式在这里。是不是因为我没有给他们 logstash.conf 文件。如果是,我该怎么做?
- 另外,在创建索引模式后,我知道我们必须去发现和 然后选择索引模式。我在这里看不到我的日志。
如上所述,我的基本目标是分析和监控日志(期间)。我无法创建适当的过滤器并创建索引。我搜索了网络,但无法找到一个从初学者级别详细显示的地方。一切似乎都太复杂了。
【问题讨论】:
-
以上问题有答案吗?
-
请提供任何答案或指示。
标签: logstash elastic-stack logstash-grok logstash-configuration