elasticsearch - 更改elasticsearch索引的时间戳格式
问题描述
我正在尝试将日志记录加载到 elasticsearch (7.3.1) 并在 kibana 中显示结果。我面临的事实是,尽管记录已加载到 elasticsearch 并且 curl GET 显示它们,但它们在 kibana 中不可见。
大多数情况下,这是因为时间戳格式。就我而言,正确的时间戳格式应该是 basic_date_time,但索引只有:
# curl -XGET 'localhost:9200/og/_mapping'
{"og":{"mappings":{"properties":{"@timestamp":{"type":"date"},"componentName":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}}}}%
我想将格式“basic_date_time”添加到@timestamp 属性,但我所做的每次尝试要么不被elasticsearch 接受,要么不会更改索引字段。我只是没有得到正确的命令来完成这项工作。
例如,我能想到的最简单的,
Z cr 23;curl -H 'Content-Type: application/json' -XPUT 'http://localhost:9200/og/_mapping' -d'
{"mappings":{"properties":{"@timestamp":{"type":"date","format":"basic_date_time"}}}}
'
给出错误
{"error":{"root_cause":[{"type":"mapper_parsing_exception","reason":"Root mapping definition has unsupported parameters: [mappings : {properties={@timestamp={format=basic_date_time, type=date}}}]"}],"type":"mapper_parsing_exception","reason":"Root mapping definition has unsupported parameters: [mappings : {properties={@timestamp={format=basic_date_time, type=date}}}]"},"status":400}%
并尝试通过 kibana 来做到这一点
PUT /og
{
"mappings": {
"properties": {
"@timestamp": { "type": "date", "format": "basic_date_time" }
}
}
}
给
{
"error": {
"root_cause": [
{
"type": "resource_already_exists_exception",
"reason": "index [og/NIT2FoNfQpuPT3Povp97bg] already exists",
"index_uuid": "NIT2FoNfQpuPT3Povp97bg",
"index": "og"
}
],
"type": "resource_already_exists_exception",
"reason": "index [og/NIT2FoNfQpuPT3Povp97bg] already exists",
"index_uuid": "NIT2FoNfQpuPT3Povp97bg",
"index": "og"
},
"status": 400
}
我不确定我是否应该在 kibana 中尝试这个。但如果我能找到正确的 curl 命令来更改索引,我会非常高兴。
谢谢你的帮助,路德
解决方案
你可以像这样通过 curl 来做到这一点:
curl -H 'Content-Type: application/json' -XPUT 'http://localhost:9200/og/_mapping' -d '{
"properties": {
"@timestamp": {
"type": "date",
"format": "basic_date_time"
}
}
}
'
或者像这样在 Kibana 中:
PUT /og/_mapping
{
"properties": {
"@timestamp": {
"type": "date",
"format": "basic_date_time"
}
}
}
另外值得注意的是,一旦创建了索引/映射,您通常不能修改它(很少有例外)。您可以使用正确的映射创建新索引并将数据重新索引到其中。
推荐阅读
- javascript - 使用 jquery 通过单个 ajax 请求发送数组和其他数据
- azure - Azure 流分析 - 仅当事件与前一个事件不同时才输出事件
- hdfs - 其他应用程序访问数据时 HDFS 文件替换
- node.js - 松露拆箱反应有类型错误默认值。然后不是一个函数
- wpf - 如何在 RowDetails RowHeaderTemplate 中动态设置按钮高度
- java - 如何阅读之后的每一行:
- python - Keras/TensorFlow - 高acc,不好的预测
- visual-foxpro - System.Data.OleDb.OleDbException:“SQL:找不到列”。
- c - pthread_create 在第三个参数上需要哪种类型
- java - Java - Thymeleaf - HTML:使用开关大小写的颜色字母:不需要的段落/换行符