Wie bereits angekündigt, möchte ich mit Elasticsearch, genauer gesagt, dem Elastic Stack (ELK) Dashboards für Exchange Server realisieren. In diesem Teil geht es um die Installation des Elastic Stacks auf einer Debian 9.8 VM.
Einleitung
Damit die Umgebung bei Interesse nachgebaut werden kann, habe ich die Installation und Konfiguration in diesem Artikel beschrieben. Als ich den Artikel geschrieben habe, war/ist Debian 9.8 aktuell. Elasticsearch, Logstash und Kibana liegen in der Version 6.6.1 vor.
Elasticsearch wird in diesem Fall nur als Single-Node ohne Cluster installiert, der Zugriff auf Kibana erfolgt mittels NGINX als Reverse Proxy.
Installation Elastic Stack auf Debian 9.8
Die Installation erfolgt auf einer VM mit 4 CPUs, 16GB RAM und einer 120 GB SSD.
Installation Debian 9.8
Die Installation von Debian beschreibe ich hier nur kurz. Dieses Kapitel zur Installation des Betriebssystems dient nur zur Übersicht und der Nachvollziehbarkeit, daher sind gibt es auch nur die Screenshots zu den relevanten Einstellungen.
Für die Installation habe ich das Debian 9.8 NetInst ISO verwendet:
Ich habe nur den SSH-Server direkt bei der Installation mit installieren lassen, alles weitere wird manuell nachinstalliert:
Somit ist der Zugriff per SSH direkt nach der Installation möglich und die weitere Konfiguration kann remote erfolgen. Es ist sinnvoll eine feste IP zu vergeben oder eine DHCP Reservierung für den Rechner zu erstellen.
Installation und Konfiguration Elastic Stack
Bevor es richtig losgehen kann, müssen ein paar Pakete installiert werden:
apt-get install apt-transport-https software-properties-common wget curl openjdk-8-jdk ssl-cert
Nach der Installation können die Elastic Paketquellen hinzugefügt werden:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add - echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-6.x.list apt-get update
Nun kann die Installation von Elasticsearch durchgeführt werden:
apt-get install elasticsearch
Nach der Installation kann die Konfiguration von Elasticsearch angepasst werden. Für diese kleine Testumgebung reicht es aus, dass Elasticsearch nur auf dem Rechner selbst (localhost) erreichbar ist. Dazu kann die Konfigurationsdatei editiert werden:
nano /etc/elasticsearch/elasticsearch.yml
In der Netzwerkkonfiguration kann nun die folgende Zeile hinzugefügt werden:
network.host: localhost
Jetzt muss der Elasticserach Deamon neugestartet werden und kann auch gleich für den automatischen Start bei Systemstart konfiguriert werden:
systemctl restart elasticsearch systemctl enable elasticsearch
Ob bis hierhin alles geklappt hat, lässt sich leicht mit curl prüfen. der folgende Befehl sollte eine entsprechende Antwort liefern:
curl -X GET http://localhost:9200
Wenn Elasticsearch eine entsprechende Antwort liefert, kann Kibana installiert werden:
apt-get install kibana
Nach der Installation kann auch hier wieder die Konfiguration angepasst werden:
nano /etc/kibana/kibana.yml
Recht weit oben in der Konfigurationsdatei findet sich die Zeile “server.host: “localhost”. In dieser Zeile muss nur die Raute “#” entfernt werden:
Der Kibana Deamon wird nun einmal neu gestartet und ebenfalls für den automatischen Start konfiguriert:
systemctl restart kibana systemctl enable kibana
Um den ELK Stack zu vervollständigen, wird jetzt Logstash installiert. Die Konfiguration von Logstash ist Bestandteil des nächsten Artikels, daher wird es hier nur installiert und gestartet:
apt-get install logstash systemctl restart logstash systemctl enable logstash
Die Installation des Elastic Stacks ist damit abgeschlossen, weiter geht es mit NGINX.
Installation und Konfiguration NGINX
Damit nun auch der Zugriff via https auf Kibana funktioniert, kann NGINX als Reverse Proxy eingesetzt werden. Dazu muss NGINX zunächst installiert werden:
apt-get install nginx
Nach der Installation von NGNIX, wird zunächst einmal die Standardkonfiguration entfernt:
rm -f /etc/nginx/sites-enabled/default
Jetzt kann eine neue NGINX Konfiguration für Kibana erstellt werden:
nano /etc/nginx/sites-enabled/kibana
Als Beispiel kann die folgende Konfiguration eingefügt werden:
server { listen 80 default_server; server_name _; return 301 https://$server_name$request_uri; } server { listen 443 default_server ssl http2; server_name _; ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key; ssl_session_cache shared:SSL:10m; location / { proxy_pass http://localhost:5601; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
Diese Beispiel Konfiguration leitet HTTP Anfragen an HTTPS um und verwendet ein selbst signiertes SSL-Zertifikat. Als Zielwebserver ist Kibana konfiguriert.
Die Konfiguration von NGINX lässt sich mit folgendem Befehl testen:
nginx -t
Nun kann auch NGINX neu gestartet und für den automatischen Start konfiguriert werden:
systemctl restart nginx systemctl enable nginx
Die Installation der benötigten Komponenten ist nun abgeschlossen.
Erste Anmeldung und Abschluss der Installation
Nachdem die Installation abgeschlossen wurde, kann Kibana im Browser geöffnet werden. Die Demo Daten brauchen in diesem Fall nicht importiert werden:
Jetzt kann direkt das Monitoring aktiviert werden, so erhält man einen kleinen Einblick in die Umgebung:
Nach kurzer Zeit wird ein Überblick des Elastic Stacks angezeigt:
Jetzt steht eine Single Node Elastic Stack Umgebung bereit, allerdings noch ohne Daten:
Im nächsten Artikel geht es dann um Logstash und die Daten.
Hast du dir auch mal https://azuremarketplace.microsoft.com/de-de/marketplace/apps/elastic.elasticsearch?tab=Overview angeschait ? Das ganze ist dann ein in Azure als Service. :-)
Hi Frank,
für den Augenblick geht es auch etwas kleiner auf der eigenen Hardware :-)
Gruß,
Frank