aboutgeo
aboutgeo

Reputation: 302

Kibana 4 'Discover' search error

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!

Upvotes: 1

Views: 3596

Answers (3)

chris166
chris166

Reputation: 4807

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.

Upvotes: 0

Jim Davis
Jim Davis

Reputation: 1773

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.

Upvotes: 1

user4933678
user4933678

Reputation:

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"

Upvotes: 0

Related Questions