In Teil 2 dieser Artikelserie habe ich die Installation des ELK Stacks auf Debian 9.8 beschrieben. In diesem Teil geht es nun um die Konfiguration der einzelnen Komponenten und die Daten der Exchange Server Message Tracking Logs.
Einleitung
In diesem Artikel werden die ElasticStack Komponenten, sowie die Exchange Server konfiguriert. Dieser Artikel bezieht sich direkt auf die Installation der Umgebung aus Teil 2 (oben verlinkt).
Die Beispielkonfigurationen für die einzelnen Komponenten können runtergeladen werden und müssen nur an wenigen Stellen angepasst werden. Sofern eine Anpassung der Konfiguration nötig ist, ist dies in den Screenshots hervorgehoben.
Logstash Konfiguration
Damit Logstash die Exchange Message Tracking Logs empfangen kann, muss zunächst eine entsprechende Konfiguration erstellt werden. Im Wesentlichen besteht die Logstash Konfiguration aus 3 Teilen: Input, Filter und Output.
Hier ist meine gekürzte Beispielkonfiguration zu sehen:
Der Input Bereich legt fest über welchen Port und Protokoll die Daten empfangen werden sollen. In diesem Fall also Port 5141 UDP. Der Filter Bereich sorgt für die Aufbereitung der Logs. Hier wird beispielsweise das Format festgelegt in dem die Logs empfangen werden (in diesem Fall CSV) und welche Spalten es gibt.
Im Output Bereich wird schließlich das Ziel angegeben zu dem die aufbereiteten Logs weitergeleitet werden. Dies ist in diesem Fall Elasticsearch.
Wie bereits erwähnt handelt es sich im Screenshot oben um eine gekürzte Version. Eine Anpassung der Konfiguration ist nicht nötig. Diese Beispielkonfiguration kann hier runtergeladen werden:
10-logstash.conf
Die Beispielkonfiguration kann zunächst auf den ELK Server übertragen werden. Ich habe diese zunächst per SCP im Verzeichnis /tmp gespeichert und kopiere die Konfiguration nun in das Zielverzeichnis:
cp /tmp/10-logstash.conf /etc/logstash/conf.d/
Die Logstash Konfiguration lässt sich mit dem folgenden Befehl testen:
/usr/share/logstash/bin/logstash --config.test_and_exit -f /etc/logstash/conf.d/10-logstash.conf
Wenn die Ausgabe den Hinweis “Configuration OK” enthält, hat dieser Schritt geklappt:
Um die neue Konfiguration zu aktivieren, muss Logstash einmal neu gestartet werden:
systemctl restart logstash
Logstash ist nun schon einmal soweit vorbereitet, weiter geht es mit den Exchange Servern.
NXLog Konfiguration
Damit die Exchange Message Tracking Logs zum ELK Server weitergeleitet werden, kann das Programm NXLog verwendet werden. Die NXLog Community Edition kann hier runtergeladen werden:
NXLog muss nun auf den Exchange Servern installiert werden, die Installation ist mit wenigen Klicks erledigt:
Auch für NXLog gibt es wieder eine Konfigurationsdatei. Die Konfigurationsdatei befindet sich im Ordner “C:\Program Files (x86)\nxlog\conf” und heißt nxlog.conf:
NXLog wird nun so konfiguriert, dass es die Exchange Message Tracking Logs an Logstash weiterleitet. Innerhalb der nxlog.conf wird angegeben, wo sich die Message Tracking Logs befinden und an welches Ziel die Logs weitergeleitet werden:
Auch hier kann wieder die Beispielkonfiguration runtergeladen werden:
nxlog.conf
Die Beispielkonfiguration muss dann im Verzeichnis “C:\Program Files (x86)\nxlog\conf” als nxlog.conf gespeichert werden (IP und Verzeichnis müssen ggf. angepasst werden).
Nachdem NXLog installiert wurde und die Konfiguration entsprechend angepasst wurde, kann der NXLog Dienst gestartet werden:
Die Exchange Message Tracking Logs, welche ab jetzt erzeugt werden, werden von NXLog zu Logstash weitergeleitet. Es ist daher notwendig erst einmal ein paar Logs zu generieren. Ich habe daher ein paar Testmails mittels PowerShell gesendet. Dazu kann der folgende Befehl verwendet werden:
Send-MailMessage -SmtpServer localhost -From administrator@frankysweblab.de -to frank@frankysweblab.de -Subject test2
Jetzt sollten also bereits ein paar Daten an Logstash und somit auch an Elasticsearch weitergeleitet worden sein. Jetzt kann die Konfiguration von ElasticSearch und Kibana durchgeführt werden.
Elasticsearch und Kibana Konfiguration
Im Webinterface von Kibana kann nun zunächst unter dem Punkt “Management” das “Index Management” aufgerufen werden:
Wenn bereits Daten von NXLog an Logstash und von Logstash von ElasticSearch weitergeleitet worden sind, wird hier ein neuer Index mit dem Namen “exchange” und dem aktuellen Datum angezeigt:
Sollte sich hier noch kein Index finden, sollte zunächst die Konfiguration der von Logstash und NXLog überprüft werden. Der Index wird erst erstellt, wenn Daten von NXLog via Logstash an Elasticsearch gesendet wurden.
Der “Health Status” des Indexes wird hier mit dem Status “yellow (Warnung)” angegeben, da es keine Replik zu andern Elasticsearch Nodes gibt. In diesem Fall ist dies normal, da meine Testumgebung keine weiteren Elasticsearch Nodes enthält.
Damit die Daten aus dem Index genutzt werden können, muss ein “Index Pattern” erstellt werden:
Im Feld “Index pattern” wird dazu der Wert “exchange*” verwendet, dieses Muster gilt also für alle Indizes mit dem Namen “exchange”:
Im nächsten Dialog wird nun das Feld für den Zeitstempel per Dropdown ausgewählt und das Index Pattern erstellt:
Die Zusammenfassung sollte nun in etwa wie folgt aussehen:
Die initiale Konfiguration ist somit abgeschlossen. Die Exchange Message Tracking Logs werden nun vom Exchange Server via NXLog an Logstash gesendet. Logstash bereitet die Daten auf und übergibt diese an Elasticsearch.
Test der Konfiguration
Sobald die Konfiguration abgeschlossen wurde, lassen sich die Message Tracking Logs der Exchange Server in Kibana unter dem Punkt “Discover” anzeigen.
In diesem Screenshot werden zum Beispiel die Message Tracking Logs der letzten 15 Minuten aus dem Index Pattern “exchange*” angezeigt:
Wenn nun auf das “kleine Dreieck” vor dem Eintrag geklickt wird, sieht man auch das die Zuordnung der Spalten aus den Exchange Message Tracking Logs ganz ordentlich funktioniert:
Hier mal ein Beispiel:
Anhand dieser Daten lassen sich nun auch Visualisierungen und Dashboards erstellen, dies ist dann Thema des nächsten Artikels.
Hey Franky,
der Donwload Link ist leider tot :-(
Hallo Markus,
der Link ist korrigiert. Danke für den Hinweis.
Gruß,
Frank
Hallo Frank,
die .conf Dateien lassen sich nicht runterladen. Können Sie das bitte korrigieren oder die Dateien über alternativen Weg bereitstellen ?
danke
Mfg,
Jaroslav
Hi,
der Download funktioniert wieder. Danke für den Hinweis.
Gruß,
Frank
Leider erscheint bei mir kein Index im Elasticsearch management. Was koennte hier falsch sein? Habe alle configs nochmal durchgesehen aber es stimmt soweit alles.
Es handelt sich hier um ein Veranschaulichungsbeispiel, dennoch stelle mir regelmässig die Frage wozu ich dies benötige. Dasselbe gilt auch für Splunk. Ich kann in den meisten Fällen meine Daten auch anders überwachen. Im Falle von Nagios wäre es durchaus auch möglich diese Zahlen hier über PowerShell-Script zu liefern und diese dann dort zu visualisieren.
Hallo Frank,
sehr schöne Artikel Serie! Ich bin schon auf den 4. Teil gespannt!
LG
Jan
Das Thema Sicherheit ist bei ElasticSearch auch wieder eine Sache des Geldes denn nur mit mindestens der Gold Lizenz sind die Daten ansatzweise gesichert. Mit der Basis Lizenz kann jeder die Webseite aufrufen und alles aufrufen/verändern und der Datenverkehr zwischen den Quell- und ES Systemen mitlesen ;-)
Gold Edition – https://www.elastic.co/de/subscriptions
1. Native Authentifizierung, LDAP-, PKI *-, Active Directory-Authentifizierung
2. Verschlüsselte Kommunikationen (zwischen den Quellservern [hier sensible Exchangedaten] und dem ElasticStack)
3. Rollenbasierte Zugangssteuerung
Wer bereits OP5 als Monitoringlösung nutzt kann hier das Modul „OP5 Log Analytics“ dazubuchen welches auch auf den ElasticStack setzt.
https://www.op5.com/op5-log-analytics/
Hallo,
für Nginx auf die Schnelle http auth: https://www.digitalocean.com/community/tutorials/how-to-set-up-password-authentication-with-nginx-on-ubuntu-14-04
Die einzige Schnittelle zum abrufen der Daten ist der Browser, der Rest ist auf localhost.
Daten kommen über UDP vom Exchangeserver rein – da weiß ich noch nicht wie und ob die absicherbar sind bei der Übertragung.
Man könnte aber z.B. dafür zwischen Logstash Listener und dem Exchange ein VPN aufbauen, das ist dann sicher. (Wahrscheinlich Kanonen auf Spatzen, aber machbar)
LG
Bisher funktioniert alles einwandfrei.
Bin gespannt wie es weitergeht.
Vielen Dank ! Die Vorfreude auf den Teil 4 steigt ungemein !
Warte begeistert auf den Teil 4 und die grafische Darstellung/Aufbereitung ;-)
Betrachtest Du auch die Absicherung der Webseite bezüglich Loginmöglichkeit?