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