300Geeks / aws-elk-billing

Tools for Loading and Visualising AWS Detailed Billing with ELK(Elasticsearch, Logstash, Kibana)
MIT License
157 stars 26 forks source link

Container updates #15

Closed nwalke closed 7 years ago

nwalke commented 7 years ago

I had a hell of a time getting Elasticsearch and Kibana working. These changes are what worked for me. I also like that it's using the official Kibana container now.

droidlabour commented 7 years ago

In kibana.yml, server.port will listen on 5601 by default and server.host will listen on localhost so it makes no sense to explicitly specify it to be 0.0.0.0 Moreover I don't think there's any difference with single and double quotes forelasticsearch.url value.

nwalke commented 7 years ago

I see this in the elasticsearch container output (with the new environment line I added):

elasticsearch_1    | [2017-02-03T20:23:36,723][INFO ][o.e.c.m.MetaDataCreateIndexService] [2LQgcWR] [.kibana] creating index, cause [api], templates [], shards [1]/[1], mappings [server, config]

So I know that Kibana is running. docker-compose ps shows this:

awselkbilling_kibana_1            /opt/kibana/bin/kibana           Up      0.0.0.0:5601->5601/tcp

Here's the Kibana logs:

kibana_1           | {"type":"log","@timestamp":"2017-02-03T20:23:31Z","tags":["warning"],"pid":1,"kibanaVersion":"5.1.1","nodes":[{"version":"5.2.0","http":{"publish_address":"172.18.0.2:9200"},"ip":"127.0.0.1"}],"message":"You're running Kibana 5.1.1 with some different versions of Elasticsearch. Update Kibana or Elasticsearch to the same version to prevent compatibility issues: v5.2.0 @ 172.18.0.2:9200 (127.0.0.1)"}
kibana_1           | {"type":"log","@timestamp":"2017-02-03T20:23:36Z","tags":["status","plugin:elasticsearch@5.1.1","info"],"pid":1,"state":"yellow","message":"Status changed from red to yellow - No existing Kibana index found","prevState":"red","prevMsg":"Unable to connect to Elasticsearch at http://elasticsearch:9200."}
kibana_1           | {"type":"log","@timestamp":"2017-02-03T20:23:36Z","tags":["status","ui settings","info"],"pid":1,"state":"yellow","message":"Status changed from red to yellow - Elasticsearch plugin is yellow","prevState":"red","prevMsg":"Elasticsearch plugin is red"}
kibana_1           | {"type":"log","@timestamp":"2017-02-03T20:23:37Z","tags":["status","plugin:elasticsearch@5.1.1","info"],"pid":1,"state":"green","message":"Status changed from yellow to green - Kibana index ready","prevState":"yellow","prevMsg":"No existing Kibana index found"}
kibana_1           | {"type":"log","@timestamp":"2017-02-03T20:23:37Z","tags":["status","ui settings","info"],"pid":1,"state":"green","message":"Status changed from yellow to green - Ready","prevState":"yellow","prevMsg":"Elasticsearch plugin is yellow"}

But if I run curl http://127.0.0.1:5601 I get curl: (52) Empty reply from server.

If I uncomment the port and host lines in kibana.yml and re-up, I start getting responses from Kibana.

I'll change the PR to only include the changes necessary, leaving the alpine container. I changed the quotes to be consistent with what's in the config file by default.

droidlabour commented 7 years ago

Sorry you're right. server.host must be 0.0.0.0 otherwise it only accepts connections from itself. And yeah it makes sense to stick with the convention regarding " instead of '

droidlabour commented 7 years ago

I've merged your changes. de7eb14879ff64fab415c54e3faa7011f576a928