Ver Fonte

Add Elasticsearch-Logstash-Kibana (ELK) example

Signed-off-by: Jing Li <thyrlian@gmail.com>
Jing Li há 5 anos atrás
pai
commit
20e68aa966

+ 1 - 0
README.md

@@ -16,6 +16,7 @@ These samples provide a starting point for how to integrate different services u
 ## Samples of Docker Compose applications with multiple integrated services
 - [`ASP.NET / MS-SQL`](https://github.com/docker/awesome-compose/tree/master/aspnet-mssql) - Sample ASP.NET core application
 with MS SQL server database.
+- [`Elasticsearch / Logstash / Kibana`](https://github.com/docker/awesome-compose/tree/master/elasticsearch-logstash-kibana) - Sample Elasticsearch, Logstash, and Kibana stack.
 - [`Go / NGINX / MySQL`](https://github.com/docker/awesome-compose/tree/master/nginx-golang-mysql) - Sample Go application
 with an Nginx proxy and a MySQL database.
 - [`Go / NGINX / PostgreSQL`](https://github.com/docker/awesome-compose/tree/master/nginx-golang-postgres) - Sample Go

+ 54 - 0
elasticsearch-logstash-kibana/README.md

@@ -0,0 +1,54 @@
+## Compose sample application
+### Elasticsearch, Logstash, and Kibana (ELK) in single-node
+
+Project structure:
+```
+.
+└── docker-compose.yml
+```
+
+[_docker-compose.yml_](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`](http://localhost:9200)
+* Logstash: [`http://localhost:9600`](http://localhost:9600)
+* Kibana: [`http://localhost:5601`](http://localhost:5601)
+
+Stop and remove the containers
+```
+$ docker-compose down
+```

+ 46 - 0
elasticsearch-logstash-kibana/docker-compose.yml

@@ -0,0 +1,46 @@
+version: '3.8'
+
+services:
+  elasticsearch:
+    image: elasticsearch:7.8.0
+    container_name: es
+    environment:
+      discovery.type: single-node
+      ES_JAVA_OPTS: "-Xms512m -Xmx512m"
+    ports:
+      - "9200:9200"
+      - "9300:9300"
+    healthcheck:
+      test: ["CMD-SHELL", "curl --silent --fail localhost:9200/_cluster/health || exit 1"]
+      interval: 10s
+      timeout: 10s
+      retries: 3
+    networks:
+      - elastic
+  logstash:
+    image: logstash:7.8.0
+    container_name: log
+    environment:
+      discovery.seed_hosts: logstash
+      LS_JAVA_OPTS: "-Xms512m -Xmx512m"
+    ports:
+      - "5000:5000/tcp"
+      - "5000:5000/udp"
+      - "5044:5044"
+      - "9600:9600"
+    depends_on:
+      - elasticsearch
+    networks:
+      - elastic
+  kibana:
+    image: kibana:7.8.0
+    container_name: kib
+    ports:
+      - "5601:5601"
+    depends_on:
+      - elasticsearch
+    networks:
+      - elastic
+networks:
+  elastic:
+    driver: bridge