提问者:小点点

识别Kibana和ElasticSearch中的时间戳


我是ElasticSearch和Kibana的新手,很难让Kibana识别我的时间戳。

我有一个JSON文件,其中包含大量数据,我希望使用Curl插入到Elasticsearch中。这是JSON条目之一的示例。

{"index":{"_id":"63"}}
{"account_number":63,"firstname":"Hughes","lastname":"Owens", "email":"hughesowens@valpreal.com", "_timestamp":"2013-07-05T08:49:30.123"}

我尝试使用以下命令在Elasticsearch中创建索引:

curl -XPUT 'http://localhost:9200/test/'

然后我尝试为时间戳设置适当的映射:

curl -XPUT 'http://localhost:9200/test/container/_mapping' -d'
{
"container" : {
"_timestamp" : {
"_timestamp" : {"enabled: true, "type":"date", "format": "date_hour_minute_second_fraction", "store":true}
}
}
}'

//来自http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-date-format.html的时间戳格式

然后我尝试批量插入我的数据:

curl -XPOST 'localhost:9200/test/container/_bulk?pretty' --data-binary @myfile.json

所有这些命令运行时都没有错误,但是当数据在Kibana中查看时,_timestamp字段无法识别。通过时间戳排序不起作用,尝试使用不同的周期过滤数据也不起作用。任何关于为什么会出现此问题的想法都很重要。


共3个答案

匿名用户

设法解决了这个问题。所以对于其他有这个问题的人:

我们保存日期的格式不正确,需要:

"_timestamp":"2013-07-05 08:49:30.123"

那么我们的映射需要是:

curl -XPUT 'http://localhost:9200/test/container/_mapping' -d'
{
"container" : {
"_timestamp" : {"enabled": true, "type":"date", "format": "yyyy-MM-dd HH:mm:ss.SSS", "store":true, "path" : "_timestamp"}
}
}'

希望这对某人有帮助。

匿名用户

如果您有纪元时间戳,则无需制作和ISO8601日期。要使Kibana识别日期字段必须是日期字段。

请注意,在将任何数据输入到 /index/type.之前,您必须将字段设置为日期类型,否则它将被存储为长时间且不可更改。

可以粘贴到marvel/sense插件中的简单示例:

# Make sure the index isn't there
DELETE /logger

# Create the index
PUT /logger

# Add the mapping of properties to the document type `mem`
PUT /logger/_mapping/mem
{
  "mem": {
    "properties": {
      "timestamp": {
        "type": "date"
      },
      "free": {
         "type": "long"
      }
    }
  }
}

# Inspect the newly created mapping
GET /logger/_mapping/mem

在serie中运行这些命令中的每一个。

这是一个简单的脚本,它回显到您的终端并记录到您的本地elasticsearch:

while (( 1==1 )); do memfree=`free -b|tail -n 1|tr -s ' ' ' '|cut -d ' ' -f4`; echo $load; curl -XPOST "localhost:9200/logger/mem" -d "{ \"timestamp\": `date +%s%3N`, \"free\": $memfree }"; sleep 1; done

用你的惊奇/感觉粘贴这个

GET /logger/mem/_search

现在你可以移动到Kibana并做一些图表。Kibana将自动检测您的日期字段。

匿名用户

此解决方案适用于老年ES