elasticsearch Kibana中的日志不按日志时间戳排序,elasticsearch,logstash,kibana,elastic-stack,filebeat,elasticsearch,Logstash,Kibana,Elastic Stack,Filebeat" /> elasticsearch Kibana中的日志不按日志时间戳排序,elasticsearch,logstash,kibana,elastic-stack,filebeat,elasticsearch,Logstash,Kibana,Elastic Stack,Filebeat" />

elasticsearch Kibana中的日志不按日志时间戳排序

elasticsearch Kibana中的日志不按日志时间戳排序,elasticsearch,logstash,kibana,elastic-stack,filebeat,elasticsearch,Logstash,Kibana,Elastic Stack,Filebeat,我使用Filebeat和Logstash将日志发送到Elasticsearch。我可以在Kibana中看到我的日志,但是日志没有按照日志记录中的时间戳正确排序。 我试图为日志记录时间戳创建一个单独的字段dateTime,但似乎无法按该列对Kibana中的表进行排序 有人能解释一下在这种情况下什么是解决办法吗 拍子 filebeat.prospectors: - input_type: log paths: - /var/log/app.log fields_under_root

我使用Filebeat和Logstash将日志发送到Elasticsearch。我可以在Kibana中看到我的日志,但是日志没有按照日志记录中的时间戳正确排序。 我试图为日志记录时间戳创建一个单独的字段
dateTime
,但似乎无法按该列对Kibana中的表进行排序

有人能解释一下在这种情况下什么是解决办法吗

拍子

filebeat.prospectors:
- input_type: log
  paths:
    - /var/log/app.log
  fields_under_root: true
  multiline.pattern: '^[0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3}'
  multiline.negate: true
  multiline.match: after
registry_file: /var/lib/filebeat/registry

output.logstash:
  hosts: ["host_name:5044"]
  ssl.certificate_authorities: ["..."]
伐木场

input {
  beats {
    port => 5044
    ssl => true
    ssl_certificate => "..."
    ssl_key => "..."
  }
}

filter {
  if [type] == "filebeat" {
    grok {
      match => { "message" => "(?<dateTime>[0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3})"}
    }
  }
}

output {
  elasticsearch {
    hosts => "elasticsearch:9200"
  }
}
输入{
击败{
端口=>5044
ssl=>true
ssl_证书=>“…”
ssl_密钥=>“…”
}
}
滤器{
如果[type]=“filebeat”{
格罗克{
匹配=>{“消息”=>“(?[0-9]{2}:[0-9]{2}:[0-9]{2},[0-9]{3})”
}
}
}
输出{
弹性搜索{
主机=>“elasticsearch:9200”
}
}

此功能正是为之而设计的。在grok表达式之后添加以下内容:

date {
  match => [ "dateTime", "HH:mm:ss.SSS" ]
}

这将设置Kibana排序所依据的
@timestamp
字段作为该字段中的值。

谢谢,但它没有覆盖
@timestamp
值,它只是用实际日志时间戳创建了字段
dateTime
。顺便说一句,如何将月、日和年的值添加到实际日志时间戳中?