elasticsearch - 任何与十进制时间戳匹配的 elasticsearch 数据类型?

标签 elasticsearch logstash filebeat

我有来自日志文件的时间戳,如 {"ts": "1486418325.948487"}
我的基础架构是“filebeat”5.2.0 -->“elasticsearch”5.2

我尝试将“ts”映射到“date”——“epoch_second”,但在 filebeat 中写入失败。

PUT /auth_auditlog
{
  "mappings": {
    "auth-auditlogs": {
      "properties": {
        "ts": {
          "type":   "date",
          "format": "epoch_second"
        }
      }
    }
  }
}

filebeat 错误消息,如
WARN Can not index event (status=400): {"type":"mapper_parsing_exception","reason":"failed to parse [ts]","caused_by":{"type":"illegal_argument_exception","reason":"Invalid format: \"1486418325.948487\""}}

我试过使用“1486418325”是可以的,所以我猜 es 不接受十进制格式的时间戳。但是,python默认输出时间戳是这种格式。

我的目的是在 elasticsearch 中正确输入。我想在 elasticsearch 中使用 ts 作为原始时间戳。
除了更改原始日志数据外,欢迎任何解决方案!

最佳答案

Filebeat 没有处理此类内容的处理器。您无法替换 @timestamp使用您的日志在 Filebeat 中的那个。您可以做的是将这些东西发送到logstash 并让date过滤器解析时代。

date {
  match => ["timestamp","UNIX","UNIX_MS"]
}

另一种选择是使用摄取节点。虽然我自己没有用过这个,但它似乎也能胜任。查看文档 here .

关于elasticsearch - 任何与十进制时间戳匹配的 elasticsearch 数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42154719/

相关文章:

elasticsearch - Elasticsearch嵌套数据类型-嵌套对象在原始文档中仍然可见吗?

ruby-on-rails - 将Elasticsearch与RSpec和Factorygirl一起使用

elasticsearch - Elasticsearch每个节拍有多个索引?

linux - centos 7 的 logstash filebeat 服务帐户

elasticsearch - 如何从同一filebeat到logstash的不同日志具有不同的索引名称

node.js - NodeJs和ElasticSearch:大容量插入错误:无法派生xcontent

elasticsearch - 当在 'tags'中指定时,ElasticSearch忽略名为 “fields”的字段

redis - 同一个 Docker 容器上的两个 Logstash 实例

logstash - ELK:将多个事件合并为一个

elasticsearch - ELK Logstash无法在ES中创建索引