【发布时间】:2019-10-21 13:30:44
【问题描述】:
我有一个以下格式的 tomcat 日志
10.0.6.35 - - [21/Oct/2019:00:00:04 +0000] "GET /rest/V1/productlist/category/4259/ar/final_price/asc/4/20 HTTP/1.1" 200 14970 12
我想创建最后两列的字段,即字节和持续时间,并想使用 Kibana 对其进行分析。我曾使用 Filebeat 和 Logstash 将数据传输到 Elasticsearch。
我的 Logstash 配置文件如下:
我尝试了以下配置,但在 kibana 上看不到该字段。
input {
beats {
port => 5044
}
}
filter {
grok {
match => ["message" => "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes}(?m) %{NUMBER:duration}" ]
#match=>{"duration"=> "%{NUMBER:duration}"}
# match => { "message" => "%{COMBINEDAPACHELOG}" }
}
# mutate {
# remove_field => ["@version", "@timestamp"]
# }
date {
match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
}
}
output {
if [fields][log_type] == "access-log"
{
elasticsearch {
hosts => ["172.31.30.73:9200"]
index => "%{[fields][service]}-%{+YYYY.MM.dd}"
}
}
if [fields][log_type] == "application-log"
{
elasticsearch {
hosts => ["172.31.30.73:9200"]
index => "%{[fields][service]}-%{+YYYY.MM.dd}"
}
}
else
{
elasticsearch {
hosts => ["172.31.30.73:9200"]
index => "logstashhh-%{+YYYY.MM.dd}"
}
我希望持续时间和字节成为我在 Kibana 上的可视化字段。
【问题讨论】:
-
你有没有使用你的这个 .conf 文件输入到 Kibana 的示例?它看起来怎么样?您可以编辑您的问题,向我们展示 JSON 格式的文档吗?
-
请阅读Under what circumstances may I add “urgent” or other similar phrases to my question, in order to obtain faster answers? - 总结是这不是解决志愿者的理想方式,并且可能会适得其反。请不要将此添加到您的问题中。
-
提供的模式与示例日志行不匹配。你可以改用
%{NUMBER:bytes}(?m) %{NUMBER:duration}$ -
还可以在 Kibana (elastic.co/guide/en/kibana/7.4/…) 中重新加载您的索引字段列表。
标签: elasticsearch logstash kibana logstash-grok