datetime - Logstash配置文件中的日期解析错误

标签 datetime elasticsearch logstash kibana

我有以下logstash配置文件

input { 
 tcp { type => "tcp_test" port => 1514 add_field => [ "log_type", "romote_log" ]}
}

filter {
  if [type] == "tcp_test" {
    grok {
       type => tcp_test
       match => [ "message", "%{WORD:client} %{WORD:app}" ]
    }
    date{
       match => ["timestamp", "yyyy-MM-dd-HH:mm:ss"]
       locale=>"en"
       target => "@timestamp"
      }




  }
}

output { 
elasticsearch { host => localhost }
} 

我对此配置的输入是
dummy_computer from_leo_messi 2013-05-15-23:19:27这是等等等等。.

我在kibana中的输出是

我只想要 2013-05-15-23:19:27 作为时间戳。
我怎样才能做到这一点 ?

最佳答案

您的日期过滤器正在尝试解析“时间戳”字段,但是没有此类字段。您必须相应地调整grok过滤器。这有效:

filter {
  grok {
    match => [
      "message",
      "%{WORD:client} %{WORD:app} (?<timestamp>\S+) %{GREEDYDATA:message}"
    ]
    overwrite => ["message"]
  }
  date {
    match => ["timestamp", "YYYY-MM-dd-HH:mm:ss"]
    remove_field => ["timestamp"]
  }
}

有关“覆盖”选项的说明,请参阅我对logstash, syslog and grok的回答。

关于datetime - Logstash配置文件中的日期解析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26968576/

相关文章:

elasticsearch - 如何在同一仪表板上同时监视指标和日志消息?

jdbc - 如何保持Logstash运行,以便将数据从RDBMS同步到ES?

excel - 没有工作周Excel的日期和时间之间的差异

从 MYSQL 结果建立链接的 PHP 脚本?

date - Elastic(搜索):查询结果日期格式与存储格式不同

elasticsearch - 使用Logstash配置读取和使用Elasticsearch Metada

mysql - 从 MySQL 导入大量数据到 Elasticsearch

spring-mvc - 将Unix时间戳转换为Java日期,Spring RequestParam

sql-server - T-SQL - 两个日期时间之间每小时的分钟数

elasticsearch - ElasticSearch多个词的聚合顺序