|  | ||
|---|---|---|
| .. | ||
| logstash | ||
| docker-compose.yml | ||
| README.md | ||
Compose sample application
Elasticsearch, Logstash, and Kibana (ELK) in single-node
Project structure:
.
└── docker-compose.yml
services:
  elasticsearch:
    image: elasticsearch:7.8.0
    ...
  logstash:
    image: logstash:7.8.0
    ...
  kibana:
    image: kibana:7.8.0
    ...
Deploy with docker-compose
$ docker-compose up -d
Creating network "elasticsearch-logstash-kibana_elastic" with driver "bridge"
Creating es ... done
Creating log ... done
Creating kib ... done
Expected result
Listing containers must show three containers running and the port mapping as below:
$ docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS                    PORTS                                                                                            NAMES
173f0634ed33        logstash:7.8.0        "/usr/local/bin/dock…"   43 seconds ago      Up 41 seconds             0.0.0.0:5000->5000/tcp, 0.0.0.0:5044->5044/tcp, 0.0.0.0:9600->9600/tcp, 0.0.0.0:5000->5000/udp   log
b448fd3e9b30        kibana:7.8.0          "/usr/local/bin/dumb…"   43 seconds ago      Up 42 seconds             0.0.0.0:5601->5601/tcp                                                                           kib
366d358fb03d        elasticsearch:7.8.0   "/tini -- /usr/local…"   43 seconds ago      Up 42 seconds (healthy)   0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp                                                   es
After the application starts, navigate to below links in your web browser:
- Elasticsearch: http://localhost:9200
- Logstash: http://localhost:9600
- Kibana: http://localhost:5601
Stop and remove the containers
$ docker-compose down
Attribution
The example Nginx logs are copied from here.