1
votes

I indexed a dataset of geo-data records in ElasticSearch for analysis in Kibana. My issue is that the 'Discover' tab doesn't pick up the data but instead displays the error message

Discover: An error occurred with your request. Reset your inputs and try again.

In 'Settings', I could configure my data index just fine, and Kibana is picking up all the mapping fields with correct type/analysis/indexing metadata. 'Visualize' works fine, too. I can create my charts, add them to the dashboard, drill down - everything. Just the 'Discover' tab is broken for me.

I'm running ElasticSearch 1.5.2, and tried with Kibana 4.0.1, 4.0.2 and 4.1-snapshot now (on Ubuntu 14.04), all with the same results.

Another effect I'm noticing: the sidebar is not showing any 'Available Fields'. Only if I unfold the field settings and untick 'Hide Missing Fields' I'll get my list of schema fields. (These are greyed out as they are considered 'missing' by Kibana. But interestingly, clicking on 'Visualize' on one of them to chart their distribution works, again, perfectly fine.)

My only suspicion is: my data doesn't have a timestamp field, so maybe that's what's messing things up. Although judging from the docs I'd assume that non-timeseries data should be supported.

Any hints appreciated!

3
This should help you github.com/elastic/kibana/issues/3246 as it looks like the same issue you're having.Val
Yes, looks completely identifcal for me. But unfortuantely, it seems a different issue. Neither ES/Kibana restarts, nor dropping the index helped. Request timeout setting seems ok too, as it came preset to 300000 :-(aboutgeo

3 Answers

1
votes

In my case, the cause was that I had indexed malformed JSON into elasticsearch. It was valid Javascript, but not valid JSON. In particular I neglected to quote the keys in the objects

I had inserted my (test) data using curl, e.g.

curl -X PUT http://localhost:9200/foo/doc/1 -d '{ts: "2015-06-24T01:07:00.000Z", employeeId: 105, action: "PICK", quantity: 8}'

Note that ts: should have been "ts":, etc.

Seems like elasticsearch tolerates such things, but Kibana does not. Once I fixed that, Discover worked fine.

Note that the error you are seeing is generated client side when an error arises. If you open your client debugger (e.g. Firefox) you will see the error in the console log. In my case, the error message was

Error: Unable to parse/serialize body

If your error is different, it will be a different cause.

It was my fault for entering bad JSON to begin with. Odd that elasticsearch is more tolerant than Kibana.

0
votes

It happened to me as well. I tried all...:

  • Deleting all the indices (.kibana, my own, etc) didn't work
  • Restarting the ES, Kibana and LS services didn't help.
  • I didn't have the Request Timeout problem in kibana.yml either.

My problem was that the timestamp field was using an incorrect time format. I changed it to this format and it worked: "date": "2015-05-13T00:00:00"

0
votes

I had the same problem. None of the suggested solutions helped. I finally found the problem while comparing a working version with a non-working version in Wireshark.

Don't emit a UTF8 byte order mark in front of your JSON. Somehow, my serializer was set up to do that... ElasticSearch is fine with it, but Kibana cannot handle it on the Discover page.