我已经建立了一个基本的ELK堆栈,用于处理和显示apache日志。它在过去1个月内一直在工作,但是从最近两天开始突然出现, flex 搜索引发了以下错误。
MapperParsingException[failed to parse [timestamp]]; nested: IllegalArgumentException[Invalid format:"16/Jul/2016:05:31:27 +0000" is malformed at "/Jul/2016:05:31:27 +0000"];
这是默认设置,我没有在elasticsearch中进行任何自定义更改。索引是按日期创建的,这是设置ELK时的默认行为。
如果我停止了logstash,则删除名为 logstash-2016.07.16 的索引并启动logstash,它将在一天之内正常工作。第二天,它将对创建的新索引( logstash-2016.07.17 )抛出相同的错误。
版本:
Logstash-2.3.2
Elasticsearch-2.3.2
基巴纳-4.5
最佳答案
您的格式不符合Elastic Search 2.3的内置格式!请引用https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-date-format.html下的“内置格式”
我确实遇到了同样的问题!但是我调整了PHP时间对象的格式,使其与Elastic Search Mapping一致!
使用 curl 命令以标准格式为“ClickTime”字段创建映射:
curl -XPUT localhost:9200/telemetry/_mapping/DashBoardVisits?
pretty -d "{\"properties\" : {\"ClickTime\" : {\"type\" :\"date\" , \"format\" :
\"yyyy-MM-dd HH:mm:ss\" }}}"
PHP代码来创建与Elastic Search中“ClickTime”的类型和格式匹配的时间对象:
$curtime = date_create();
$kibanadate = date_format($curtime,"Y-m-d H:i:s");
关于elasticsearch - MapperParsingException [无法解析[timestamp]];嵌套:IllegalArgumentException [无效格式:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38408290/