elasticsearch 如何使用Logstash和grok插件创建字段,elasticsearch,logstash,kibana,logstash-grok,elasticsearch,Logstash,Kibana,Logstash Grok" /> elasticsearch 如何使用Logstash和grok插件创建字段,elasticsearch,logstash,kibana,logstash-grok,elasticsearch,Logstash,Kibana,Logstash Grok" />

elasticsearch 如何使用Logstash和grok插件创建字段

elasticsearch 如何使用Logstash和grok插件创建字段,elasticsearch,logstash,kibana,logstash-grok,elasticsearch,Logstash,Kibana,Logstash Grok,我有一个以下格式的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 我想创建最后两列的字段,即bytes和duration,并想使用Kibana对其进行分析。我使用Filebeat和Logstash将数据传输到Elasticsearch 我的日志存储配置文件如下: 我尝

我有一个以下格式的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
我想创建最后两列的字段,即bytes和duration,并想使用Kibana对其进行分析。我使用Filebeat和Logstash将数据传输到Elasticsearch

我的日志存储配置文件如下:

我尝试了以下配置,但无法看到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上的字段,以便可视化。

尝试将其作为日志存储配置:

input {
     beats {
     port => 5044
  }
 }

filter {
  grok {
  match => ["message" => "%{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}"
}

你有没有用你的这个.conf文件输入Kibana的例子?看起来怎么样?您可以用JSON编辑您的问题,并向我们展示一份文档吗?请阅读-总结是,这不是一种解决志愿者问题的理想方式,可能会对获得答案产生反作用。请不要将此添加到问题中。提供的模式与示例日志行不匹配。您可以改为使用
%{NUMBER:bytes}(?m)%{NUMBER:duration}$
或者在Kibana()中重新加载索引字段列表。由于所有原因,问题得以解决,我还有一个问题,我想将java apm代理添加到我的脚本中。下面是我添加apm代理的脚本,但不起作用。请帮助我。mvn spring boot:run-javaagent:/opt/elastic-apm-agent-1.10.0.jar-Delastic.apm.service_name=CatalogIngestorPlus-Delastic.apm.server_url=-Delastic.apm.secret_token=-Delastic.apm.application_packages=org.example-Dspring.run.jvmArguments=“-Xms6g-Xmx8g”>>/tmp/searchnohup.out&退出0问题是什么。如果此答案解决了您的问题,请将此答案标记为已接受。对于你的其他问题,请提出一个新问题,这样回答起来会更容易,谢谢