Exchange Server Dashboards mit ELK (Elasticsearch, Logstash, Kibana) Teil 2

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:

Exchange Server Dashboards mit ELK (ElasticSearch, Logstash, Kibana) Teil 2

Ich habe nur den SSH-Server direkt bei der Installation mit installieren lassen, alles weitere wird manuell nachinstalliert:

Exchange Server Dashboards mit ELK (ElasticSearch, Logstash, Kibana) Teil 2

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

Exchange Server Dashboards mit ELK (ElasticSearch, Logstash, Kibana) Teil 2

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

Exchange Server Dashboards mit ELK (ElasticSearch, Logstash, Kibana) Teil 2

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:

Exchange Server Dashboards mit ELK (ElasticSearch, Logstash, Kibana) Teil 2

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

Exchange Server Dashboards mit ELK (ElasticSearch, Logstash, Kibana) Teil 2

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;
    }
}

Exchange Server Dashboards mit ELK (ElasticSearch, Logstash, Kibana) Teil 2

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

Exchange Server Dashboards mit ELK (ElasticSearch, Logstash, Kibana) Teil 2

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:

Exchange Server Dashboards mit ELK (ElasticSearch, Logstash, Kibana) Teil 2

Jetzt kann direkt das Monitoring aktiviert werden, so erhält man einen kleinen Einblick in die Umgebung:

Exchange Server Dashboards mit ELK (ElasticSearch, Logstash, Kibana) Teil 2

Nach kurzer Zeit wird ein Überblick des Elastic Stacks angezeigt:

Exchange Server Dashboards mit ELK (ElasticSearch, Logstash, Kibana) Teil 2

Jetzt steht eine Single Node Elastic Stack Umgebung bereit, allerdings noch ohne Daten:

Exchange Server Dashboards mit ELK (ElasticSearch, Logstash, Kibana) Teil 2

Im nächsten Artikel geht es dann um Logstash und die Daten.

2 Kommentare zu “Exchange Server Dashboards mit ELK (Elasticsearch, Logstash, Kibana) Teil 2”

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.