Das Monitoring der IT-Umgebung steht im März auf der Agenda des IT-Administrator. So lesen Sie in der Ausgabe, wie sich Open-Source-Tools wie Logstash, ... (mehr)

Google Analytics vorbereiten

Zur Nutzung von Google Analytics [4] muss ein Google-Konto vorhanden sein, das Sie um den Analytics-Dienst erweitern. Der vorsichtige Admin vergleicht vorher noch die Bedingungen von GA mit der eigenen Unternehmenspolicy. Anschließend erstellen Sie innerhalb von GA ein Konto und eine Property. Danach gibt Google die Tracking-ID – beispielsweise UA-12345678-1 – bekannt. Diese wird im Skript »flow-ga.pl« (siehe nächster Abschnitt) eingetragen und verbindet die berichteten NetFlow-Daten mit dem Google-Account.

Die Property benötigt noch "Benutzerdefinierte Definitionen", die die Feldnamen von NetFlow darstellen und händisch angelegt werden. Hierbei ist die Reihenfolge und Schreibweise wichtig. Dazu zählen zunächst die "Benutzerdefinierten Dimensionen" (alle vom Umfang "Hit"):

1. srcaddr

2. dstaddr

3. srcport

4. dstport

 5. protocol

6. exporter_id

7. input_if

8. output_if

9. tos

Darüber hinaus gibt es die "Benutzerdefinierten Messwerte" (Umfang "Hit"):

1. bytes (Ganzzahl)

2. packets (Ganzzahl)

3. duration_sec (Zeit)

4. duration_msec (Ganzzahl)

NetFlow

Ein NetFlow-Paket [3] beinhaltet bis zu 30 unidirektionale Verbindungseinträge (je nach Version und Paketgröße). Zum Beispiel beinhaltet jeder Eintrag von Version 5:- Quell- und Ziel-IPv4-Adresse- Quell/Ziel-Portnummer- IP-Protokoll (zum Beispiel TCP, UDP oder ICMP)- Eingehendes und ausgehendes Routerinterface- Anzahl der transportierten Bytes und Pakete- Beginn und Ende der Verbindung- Type of Service (Prioritätsbits)Neuere Implementierungen mit NetFlow Version 9 bieten zusätzliche Infos über Multicast, IPv6, BGP und MPLS. Die Informationsfülle des Pakets kann beliebig gewählt werden, so dass keine leeren Felder und uninteressanten Einträge versendet werden.

NetFlow-Einträge berichten

Dummerweise kennt Google Analytics weder NetFlow noch die meisten NetFlow-Variablen wie Portnummer oder IP-Protokoll. Gleichzeitig sind Kategorien wie "Seitenaufrufe", "Ereignisse", "E-Commerce" oder "Timing" vorhanden. Die Kunst liegt also in der richtigen Zuordnung. Als sehr vorteilhaft und flexibel hat sich der Bereich "Ereignisse" im Zusammenhang mit "Benutzerdefinierte Dimensionen/Messwerte" erwiesen. Diese Bereiche bieten genug Spielraum, um alle NetFlow-Informationen aufzunehmen.

Die Umwandlung vom NetFlow-Format in das "Google Analytics Measurement Protocol" [5] und das anschließende Berichten erfolgt über das selbstentwickelte Tool "flow-ga" [6]. Dieses wird vom NetFlow-Collector "nfcapd" nach jedem Fünf-Minuten-Intervall aufgerufen. Nach dem Download platzieren Sie die Dateien unter »/usr/bin/« . Eventuell sind weitere Perl-Module nötig, die Sie über den Paketmanager nachladen:

$ yum install perl-Time-HiRes perl-Digest-HMAC perl-DateTime perl-libwww-perl

Das Logging erfolgt wie unter Linux üblich über Syslog:

$ echo "local5.* /var/log/flow-ga.log" > /etc/rsyslog.conf
$ service rsyslog restart

Vor dem Start ist ein Blick in die Funktionen "_anonymizeIp()" und "get_hostname()" von »flow-ga.pl« sinnvoll. Dort sollten Sie eine Form der Anonymisierung aktivieren, um nicht zu viele Informationen über das eigene Netzwerk auszuplaudern. Voreingestellt ist eine einfache Anonymisierung, die das zweite Oktett der IP-Adresse invertiert und den Rechnernamen unkenntlich macht. Zuletzt starten Sie den NetFlow-Collector als Daemon:

$ nfcapd -D -w 5 -T all -p 2055 -l /tmp -I any -P /var/run/nfcapd.pid -x "/usr/bin/flow-ga.sh %d/%f"
comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019