Awesome Open Source
Awesome Open Source

Docker & Elastic

This repository contains a few examples how to run Elasticsearch, Kibana, Beats, and Logstash in Docker using the official images and binding them to the default ports. Tested with the latest version of the Docker daemon.

You connect to Kibana on http://localhost:5601 and Elasticsearch on http://localhost:9200.

Elasticsearch & Kibana

  • Start: $ docker-compose up
  • Remove: $ docker-compose down -v

App Search

Change into the appsearch/ directory. This demo includes Elasticsearch, Kibana, and App Search.

  • Start: $ docker-compose up
  • Remove: $ docker-compose down -v

App Search is running at http://localhost:3002.

Elasticsearch Logs

Change into the elasticsearch_logs/ directory. This demo includes Elasticsearch, Kibana, and Filebeat to collect the Elasticsearch logs with the Elastic Stock. The blog post Filebeat Modules with Docker & Kubernetes is built on top of this setup.

  • Start: $ docker-compose up
  • Remove: $ docker-compose down -v

Full Stack

Change into the full_stack/ directory. This demo includes Elasticsearch, Kibana, Beats, Logstash, nginx, and MySQL and monitors all components with the Elastic Stack.

Note: You will need to increase the memory for all the containers to function correctly. Tested with 4GB instead of the default of 2GB.

  • Start: $ docker-compose up
  • Remove: $ docker-compose down -v

Rolling Upgrade

Change into the rolling_upgrade/ directory. This demo shows a rolling upgrade from 6.x to 7.x. See the details in the readme.

  • Start: $ docker-compose up
  • Remove: $ docker-compose down -v

Machine Learning

Change into the machine_learning/ directory. This demo includes Elasticsearch and Kibana as well as setting up the index patterns and dashboards for Filebeat. It assumes that you have a log.json file in the same directory, which will be imported automatically. Example entry:

{"source.name":"/home/ec2-user/data/production-3/prod3elasticlogs/_logs/access-logs228.log","beat":{"hostname":"ip-172-31-5-206","name":"ip-172-31-5-206","version":"5.4.0"},"@timestamp":"2017-02-28T17:14:26.963Z","read_timestamp":"2017-06-20T08:47:54.189Z","fileset":{"name":"access","module":"nginx"},"nginx":{"access":{"body_sent":{"bytes":"32898"},"url":"/static/img/wrapper-footer.png","geoip":{"continent_name":"North America","city_name":"Chicago","location":{"lat":42.0106,"lon":-87.6686},"region_name":"Illinois","country_iso_code":"US"},"response_code":"404","user_agent":{"device":"Other","os_name":"Other","os":"Other","name":"Other"},"http_version":"1.1","method":"GET","remote_ip":"213.222.148.205"}},"prospector":{"type":"log"}}

Note: You will need to increase the memory for all the containers to function correctly. Tested with 4GB instead of the default of 2GB.

  • Start: $ docker-compose up
  • Remove: $ docker-compose down -v


Alternative Project Comparisons
Related Awesome Lists
Top Programming Languages
Top Projects

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Shell (171,125
Docker (97,272
Elasticsearch (11,368
Docker Compose (8,342
Remove (5,466
Elastic (4,019
Kibana (3,056
Logstash (2,851
Filebeat (543
Beats (185