MapperParsingException [无法解析[timestamp]];嵌套:IllegalArgumentException [格式无效:

时间:2016-07-16 06:03:32

标签: elasticsearch logstash elastic-stack

我已经设置了一个基本的ELK堆栈来删除和显示apache日志。它已经工作了一个月,但是从最近两天突然,弹性搜索引发了以下错误。

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 Kibana - 4.5

1 个答案:

答案 0 :(得分:0)

您的格式不符合Elastic Search 2.3的内置格式!请参阅“内置格式”#39;在https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-date-format.html

我确实遇到了完全相同的问题!但我调整了我的PHP时间对象的格式,以符合弹性搜索映射!

用于为字段创建映射的Curl命令' ClickTime'以标准格式:

curl -XPUT localhost:9200/telemetry/_mapping/DashBoardVisits?
pretty -d "{\"properties\" : {\"ClickTime\" : {\"type\" :\"date\" , \"format\" :
 \"yyyy-MM-dd HH:mm:ss\" }}}"

用于创建与' ClickTime'的类型和格式匹配的时间对象的PHP代码在弹性搜索中:

$curtime = date_create();
$kibanadate = date_format($curtime,"Y-m-d H:i:s");