Auf den Elch gekommen: Logfile-Analyse mit dem ELK-Server

Fast jedes Programm schreibt sie und fast jeder Admin wäre ohne sie bei der Fehleranalyse aufgeschmissen: die Logfiles.

Diese Dateien enthalten viele nützliche Informationen, die normalerweise je nach Bedarf manuell und aufwändig auf dem jeweiligen System ausgewertet werden müssen. Schneller und komfortabler wäre es, die Dateien zentral auf einem Server zu sammeln. Fertige Filter vereinfachen zusätzlich die Analyse und das Debugging via Unix-Logfiles und sparen dem Administrator Zeit und somit der Firma Geld.

Genau hier kommt der ELK-Server zum Einsatz. Er dient dazu, Daten von beliebigen Quellen zu sammeln, zu analysieren, zu durchsuchen und zu visualisieren.Die drei ELK-Komponenten – Elasticsearch, Logstash und Kibana – sind Open-Source-Produkte.

Jedes der ELK-Komponenten hat seine eigene Aufgabe und arbeitet dabei eng mit den anderen Komponenten zusammen. Auf der Gegenseite kommt der Logstash-Forwarder zum Einsatz: Er schiebt die Logdateien von den anderen Servern direkt in das Logstash auf dem ELK-Server.

Zusammen gesetzt sieht der Datenfluss von den Forwarder bis durch den ELK-Server dann so aus:

Standardmäßig ist der ELK-Server nur darauf ausgelegt Logfiles von Webservern auszuwerten. Doch mit Hilfe von eigenen Filtern kann der ELK-Server durchaus zum Multi-Talent werden. Im unten stehenden Beispiel habe ich mein ELK-Setup so erweitert, dass auch verschiedene Firewall-Logs ausgewertet werden können. Dafür habe ich Filterkriterien wie Quell- und Ziel-IP-Adresse und Quell- und Ziel-Ports ergänzt. Mit weiteren Filtern können außerdem auch Proxy-Logs analysiert werden.

Der Sicherheitsaspekt kommt natürlich ebenfalls nicht zu kurz. Der ELK-Server authentifiziert sich mit Hilfe eines OpenSSL-Zertifikats gegenüber den anderen Servern.

Aber wie sieht das ganze dann aufbereitet aus?

Über die Webseite des Servers können individuelle Filter per Mausklick ausgewählt und dargestellt werden.

Hier ist ein Beispiel das zeigt wie ein NICHT aufbereitetes Logfile aussehen kann.

Mar 1 12:07:40 portal1 kernel: 8222926.303576] crt251rop.FORWARD.invalid:IN=eth0 OUT=eth1.105
MAC=00:1b:21:9f:b3:50:78:2b:cb:5e:24:00:08:00 SRC=178.111.222.211 DST=193.111.222.49 LEN=70 TOS=0x00 PREC=0x20
TTL=54 ID=62938 PROTO=ICMP TYPE=3 CODE=3 [SRC=193.111.222.49 DST=178.111.222.211 LEN=42 TOS=0x00 PREC=0x00
TTL=240 ID=45607 PROTO=UDP SPT=30271 DPT=21 LEN=22 ] Mar 1 18:07:27 portal1 kernel: [8244476.210681]
crt274rop.FORWARD:IN=eth1.105 OUT=eth0 MAC=00:1b:21:9f:b3:51:9e:6c:1b:56:6f:a5:08:00 SRC=193.111.222.49
DST=80.111.222.50 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=11120 DF PROTO=TCP SPT=48206 DPT=80 WINDOW=29200
RES=0x00 SYN URGP=0 Mar 1 18:07:28 portal1 kernel: [8244477.208956] crt274rop.FORWARD:IN=eth1.105 OUT=eth0
MAC=00:1b:21:9f:b3:51:9e:6c:1b:56:6f:00:08:00 SRC=193.111.222.49 DST=80.111.222.50 LEN=60 TOS=0x00 PREC=0x00 TTL=63
ID=11121 DF PROTO=TCP SPT=48206 DPT=80 WINDOW=29200 RES=0x00 SYN URGP=0 Mar 1 18:07:30 portal1 kernel:
[8244479.209918] crt274rop.FORWARD:IN=eth1.105 OUT=eth0 MAC=00:1b:21:9f:b3:51:9e:6c:1b:56:6f:00:08:00
SRC=193.111.222.49 DST=80.111.222.50 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=11122 DF PROTO=TCP SPT=48206
DPT=80 WINDOW=29200 RES=0x00 SYN URGP=0 Mar 1 18:07:33 portal1 kernel: [8244482.205273]
crt274rop.FORWARD:IN=eth1.105 OUT=eth0 MAC=00:1b:21:9f:b3:51:9e:6c:1b:56:6f:00:08:00 SRC=193.111.222.49
DST=80.111.222.35 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=33148 DF PROTO=TCP SPT=52670 DPT=80 WINDOW=29200
RES=0x00 SYN URGP=0 Mar 1 18:07:35 portal1 kernel: [8244484.206076] crt74rop.FORWARD:IN=eth1.105 OUT=eth0
MAC=00:1b:21:9f:b3:51:9e:6c:1b:56:6f:00:08:00 SRC=193.111.222.49 DST=80.111.222.35 LEN=60 TOS=0x00 PREC=0x00 TTL=63
ID=33149 DF PROTO=TCP SPT=52670 DPT=80 WINDOW=29200 RES=0x00 SYN URGP=0

Hier ist ein Beispiel das zeigt wie ein durch den ELK-Server aufbereitetes Logfile aussehen kann.

Vergleicht man das Ergebnis nun mit der Ausgangssituation werden schon einige Situationen deutlich, an denen ein erweiterter ELK-Server hilfreich sein kann. Beispielsweise können schnell auffällige IP-Adressen identifiziert werden. Außerdem können Logdaten über eine längere Zeitspanne überwacht werden und mit den Logdaten anderer Server, die ebenfalls den ELK-Server nutzen, verglichen werden.

The following two tabs change content below.

atixadmin

Neueste Artikel von atixadmin (alle ansehen)

0 Kommentare

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar