Skip to content
Snippets Groups Projects
user avatar
Helmut authored
0a393f2a
History

DualStackDemo für Docker stack mit zentralen Fluentd Logger

Beschreibung

Die Demo besteht aus 2 Docker Stacks mit je 2 Services:

  • Elasticsearch Stack mit folgenden Services : Kibana und Elasticsearch
  • NGinx Stack mit folgenden Services : Fluentd ( Logger) und Nginx

Der Elasticsearch Stack ist in docker-compose-es-stack.yml definiert. Der Nginx Stack benutzt neben docker-compose.yml ( Fluentd Service ) auch docker-compose.override.yml in der der NGinx Service definiert wird. Nebenbei demonstriert der NGINX Stack das Sharing von Docker Compose File:

Installation

Voraussetzung: Einloggen im Netz der TH Nürnberg bzw. eine VPN Verbindung öffnen.

Lokaler Build

Das Projekt kann mit Docker selbst gebaut werden. Es ist nur docker-compose erforderlich. Alle nötigen Build Tools werden bereitgestellt und es muss keine Java, NodeJS oder Angular Installation lokal vorhanden sein. Mit dem nachfolgenden docker-compose build werden der NGinx und der Fluentd container gebaut.

docker-compose build

Starten der Demo

Starten des Elasticsearch Stacks

docker stack deploy --compose-file docker-compose-es-stack.yml ElastikSearchStack

Starten des Nginx/Fluentd Stacks

docker stack deploy --compose-file docker-compose.yml --compose-file docker-compose.override.yml NginxTesting

Nutzung

Nach dem Start eine nicht vorhanden Webseite in Browser aufrufen um Nginx Log Entries zu erzeugen

  • http://localhost/Invaild_Page
  • Dieser Aufruf erzeugt auch einen Elasticsearch Index falls dieser noch nicht vorhanden ist
  • Related Elasticsearch Index looks like: nginx_log-20200917
  • Indexes can be view form Kibana ( Toplevel Menu -> Stack Management -> Index Management )

Einloggen über Kibana

Kibana Index Pattern anlegen und anzeigen

  • Top Level Menu Kibana -> Index Pattern -> Create Index Pattern
  • Index pattern: fluentd*
  • Time Filter field name : @timestamp

Kibana Log Entries anzeigen

  • Discover anwählen und fluentd* als Index pattern auswählen
  • Kibana sollte jetzt sowohl einen Error Log Entry sowie eine Accesslog Entry anzeigen

Beenden

Beenden der Demo

docker stack rm NginxTesting
docker stack rm ElastikSearchStack