Run the ELK stack (Elasticseach, Logstash, Kibana) + grafana stack with Docker.
The main purpose for this kind of distribution is educational. You can play with ELK stack and compare visual graphs provided by Kibana and Grafana on top of elasticsearch data.
Based on the official images:
- Install Docker and Docker-compose. For OSX and Windows users the most straightforward way is to use Docker Toolbox.
- Clone this repository
Start the ELK stack + grafana using docker-compose (run in background - detached mode):
$ docker-compose up -d
Now that the stack is running, you'll want to inject logs in it. The shipped logstash configuration allows you to send content via tcp:
$ nc localhost 5000 < /path/to/logfile.log
Access Kibana UI by hitting http://localhost:5601 with a web browser. Access Grafana UI by hitting http://localhost:3000 with a web browser.
By default, the stack exposes the following ports:
- 5000: Logstash TCP input 1 (logs are indexed into index with pattern "logs_5000-index-%{+YYYY.MM.dd}").
- 6000: Logstash TCP input 2 (logs are indexed into index with pattern "logs_6000-index-%{+YYYY.MM.dd}").
- 9200: Elasticsearch HTTP
- 9300: Elasticsearch TCP transport
- 5601: Kibana
- 3000: Grafana
WARNING: If you're using boot2docker, you must access it via the boot2docker IP address instead of localhost.
WARNING: If you're using Docker Toolbox, you must access it via the docker-machine IP address instead of localhost.
This package uses compatible versions across all the products:
- elasticsearch 2.2.0
- logstash 2.2.0
- kibana 4.4.0
- grafana 2.6.0