PowerBI und NetFlow/sFlow

Wenn Sie einen Router oder Switch haben, der Verkehrsdaten per NetFlow, sFlow, IPFix generieren kann, dann können Sie mit der Freeware von PRTG und der Freeware von PowerBI Desktop ihre Datenflüsse sehr einfach analysieren.

Netflow-Daten mit PRTG einsammeln

Sie brauchen natürlich einen NetFlow Collector. Es gibt viele kommerzielle Tools, die solche Daten einsammeln aber zugleich visualisieren und daher auch recht teuer sind. Eine positive Ausnahme ist hier PRTG. Die Software ist zwar auch kommerziell aber preislich sehr interessant. Wenn Sie nicht mehr als 100 Sensoren verwenden, dann können Sie mit der Freeware starten.

Auf der Seite PRTG und NetFlow/SFlow/IPFix habe ich gezeigt, wie Sie mit PRTG die NetFlow/SFlow Daten von Routern und Switches einsammeln können. Ich habe aber auch beschrieben, dass die Auswertung der Daten auf die wesentlichen Informationen (Top-Talker, Top Connections, Top-Protocols) und ein paar vordefinierten Protokollklassen beschränkt ist. Wenn sie möchten, können sie aber mit PRTG auch die Stream-Daten als CSV-Datei abgreifen und mit denen lässt sich in PowerBI wunderbar arbeiten. Dazu müssen wir, wie am Ende auf PRTG und NetFlow/SFlow/IPFix beschrieben, erst mal das Debugging aktivieren.

Achtung:
Die Datenmenge kann ganz schnell ganz stark wachsen. Selbst an einem Freitag Nachmittag mit schwacher Bürobesetzung habe ich ca. 40MByte/Stunde erzeugt. Ich bin sicher, dass größere Umgebungen auch mehrere 100 Megabyte pro Stunde erzeugen können.

Stellen Sie hier den PRTG Netflow Sensor auf "all Streams"

Bei mir landen die Dateien dann im Verzeichnis C:\ProgramData\Paessler\PRTG Network Monitor\StreamLog Details siehe PRTG und NetFlow/SFlow/IPFix.

CSV-Dateien "sichern" und "qualifizieren"

Ich würde die Dateien nicht direkt öffnen, da diese so vielleicht für weitere Schreibzugriffe gesperrt sind. Soweit ich gesehen habe, schreibt PRTG diese Datei immer dann, wenn es Daten vom Gerät bekommen hat. Das der Flow-Sender die Daten immer im Abstand

Daher ist es wichtig, die Dateien möglichst sinnvolll einer Weiterverarbeitung zu unterwerfen. Sie können die aktuell geschriebene Datei einfach umbenennen. Die PRTG-Probe legt alleine wieder eine Datei mit dem gleichen Namen samt Header an und schreibt weiter. Ich habe mir dazu einen "geplanten Task" gebaut, der die Datei jede Stunde einfach "umbenennt" und alle Dateien älter als 7 Tage löscht. Wenn ich dann mit 100MB/Stunde = 2.4GB/tag rechne, dann komme ich 16,8 Gigabyte hin. SO viel Platz habe ich schon auf dem Server.

Mittelfristig bietet es sich natürlich an, die Inhalte z.B. in eine SQL-Datenbank zu überführen. Dabei könnte man auch mehrere Einträge des gleichen Streams zusammenfassen und vielleicht "falsch rum" aufgezeichnete Streams korrigieren. Kaum ein Stream wird z.B. Port 80 als "Source-Port" nutzen. Zudem wäre es interessant die Ziel-IP-Adressen zu Diensten aufzuschlüsseln, z.B. indem man bei Verbindungen zu 443 einen TLS-Handshake startet und den Namen aus dem Zertifikat ausliest. Denkbar wären auch Fragen per BGP nach dem Besitzer des "autonomen Netzwerks (ASN)" um so die Ziele besser zu verstehen Solche Daten müssten dann natürlich gecached werden, um die gewünschte Geschwindigkeit zu erreichen. Ich könnte man z.B. Pakete mit den IP-Port 50.000-50019 als "Audio" und 50020-50039 als Video zusammenfassen. Das kann aber genauso gut ein SQL-Script oder ein entsprechender View, so dass man die Daten nicht verschlechtern muss. Auch die Benennung der Interfaces anstelle der Nummern oder vielleicht sogar die Erweiterung um einen Hostnamen (Reverse-DNS) anhand der IP-Adressen wären interessante Nachverarbeitungen.

Achtung
IP-Adressen können als personenbezogene Daten angesehen werden. Sie sollten bei jeder Art der Auswertung immer darauf achten, dass die gültige Datenschutzbestimmungen erfüllt sind.

Für die ersten Gehversuche reicht aber auch die CSV-Datei einer Stunde, um Sie mit PowerBI zu analysieren:

Sample Connection und Volumen

Die CSV-Datei kann direkt in PowerBI gelesen werden und wird auf Anhieb auch verstanden, z.B. numerische Werte können summiert werden und vieles mehr. Sie finden die Tabellen schön in der Datenbankansicht als auch in der Feldauswahl der Chartansicht

 

Über die Chartansicht habe ich dann einfach ein paar Report in wenigen Sekunden "zusammen geklickt". Zuerst habe ich das Feld "DestinationPort" als Legende eingetragen und die Größe als "Values" "Size" als Summe in als Wert. Über die Tooltip-Funktion kann ich später sogar die absolute Zahl erhalten. Es ist auch gut zu sehen, dass hier Port 443/HTTPS über 68% Anteil hat.

Nimmt man aber die gleichen Felder und zeigt statt der Summe die Anzahl der Flows an, dann verschiebt sich das Bild. Es gibt viel mehr Connections auf dem Port 5061- SIP-Pakete sind also deutlich kleiner als HTTPS-Pakete.

So eine Auswertung ist natürlich besonders interessant, wenn Dienste nach "Connections" lizenziert werden. Soweit mir bekannt ist, werden z.B.: WAN-Optimierer von Riverbed nach "Connections" lizenziert. Hier wär es dann zu überlegen, warum fast 50% der Verbindungen "teuer" optimiert werden sollten, wenn die Datenmenge weniger als 5% beträgt und das Einsparpotential entsprechend beschränkt limitiert ist. Her ist NetFlow in seinem Element, dass Sie genau ermitteln können, welche Datenmenge über welche Ports laufen und daher ein lohnendes Ziel für eine Optimierung sind. Neben SIP sind auch permanente Verbindungen z.B. von ActiveSync oder SCCM und anderen Client-Management-Produkten hier interessant, die kaum Datenmenge übertragen aber eine Verbindung zur Steuerung aufrecht erhalten.

Sample: nach Interface

Je nach Quelle der Daten finden sich auch VLAN-ID und TOS/DSCP-Werte (Priorisierung). Ich habe erst mal die Pakete nach den Interfaces für Eingehend und Ausgehend betrachtet

Es sind noch ganz viele andere Auswertungen möglich

PowerBI Filterung

Auf eine interessante Funktion von PowerBI muss ich aber noch hinweisen. Wenn Sie mehrere Charts definiert haben, dann können Sie jederzeit ein Feld in den Charts anklicken und dieses Feld wird bei allen anderen Charts als Filter angewendet. Ihr Dashboard kann also wie folgt aussehen:

Ich hab das rot markiert Kuchenstück ausgewählt um alle eingehenden Pakete auf Interface zu selektieren. Rechts davon sehen die dann, dass davon fast alle Pakete über das Interface 2 oder 3 rausgegangen sind aber auch ein großer Anteil zu Interface 0 ging. Oben rechts sehen sie weiterhin, wie die Verteilung der Protokolle ausgesehen hat.

Das ist nur ein Anfang, der ihnen Anregungen für eigene Analysen geben soll. Alles fängt aber damit an, dass ihr Router oder Switch diese Informationen sammeln und ausleiten kann oder Sie notfalls mit einem Port Mirroring diese Daten selbst einsammeln.

Weitere Links