Anleitungen

Eine Heatmap aus rohen IP-Adress-Logs erstellen

In einem Zugriffslog voller IP-Adressen stecken echte geografische Informationen, aber erst, wenn jede Adresse in Koordinaten aufgelöst wurde, die ein Kartenwerkzeug tatsächlich darstellen kann.

Adressen aus dem Log extrahieren

Ziehen Sie zuerst die eindeutigen IP-Adressen aus Ihrer Logdatei, statt jede einzelne Logzeile einzeln abzufragen, denn dieselbe Besucheradresse taucht im Verlauf einer Sitzung häufig viele Male auf, und es gibt keinen Grund, wiederholt für dieselbe Abfrage zu bezahlen.

sort logfile.txt | awk '{print $1}' | sort -u > unique_ips.txt

Gebündelt auflösen

Senden Sie die Liste der eindeutigen Adressen als Array per Bulk-POST an /v1/ip.

POST /v1/ip
Content-Type: application/json

["203.0.113.10", "198.51.100.25", "192.0.2.44"]
{
  "status": "ok",
  "results": [
    {"ip": "203.0.113.10", "version": 4, "found": true, "country": "Germany", "country_code": "DE", "region": "Berlin", "city": "Berlin", "postcode": "10115", "lat": 52.5300, "lon": 13.3800, "timezone": "Europe/Berlin", "asn": 1111, "org": "Example ISP"},
    {"ip": "198.51.100.25", "version": 4, "found": true, "country": "Spain", "country_code": "ES", "region": "Madrid", "city": "Madrid", "postcode": "28001", "lat": 40.4168, "lon": -3.7038, "timezone": "Europe/Madrid", "asn": 2222, "org": "Example Networks"},
    {"ip": "192.0.2.44", "version": 4, "found": false}
  ]
}

Den Heatmap-Datensatz erstellen

Kombinieren Sie jedes zurückgegebene lat und lon mit der Häufigkeit der ursprünglichen Adresse in Ihrem Log, sodass ein Besucher, der hundertmal im Log erscheint, anteilig mehr Gewicht erhält als einer, der nur einmal erscheint. Übergeben Sie die resultierende Liste gewichteter Koordinatenpunkte an das Karten- oder Diagrammwerkzeug, mit dem Sie die Heatmap darstellen.

Ein zweites Beispiel: stattdessen eine Aufschlüsselung nach Ländern

Wenn eine präzise Heatmap Punkt für Punkt detaillierter ist, als Sie es brauchen, ergibt eine Aggregation nach country_code statt nach rohen Koordinaten eine einfachere Ansicht im Stil einer Choroplethenkarte, mit einem Wert pro Land statt einer verstreuten Punktwolke. Dafür wird genau dieselbe Bulk-Abfrage verwendet, nur nach dem Eintreffen der Ergebnisse anders gruppiert, sodass es nichts extra kostet, beide Ansichten aus denselben aufgelösten Daten zu erstellen.

Umgang mit Adressen, die sich nicht auflösen lassen

Ein Eintrag mit found: false, wie im dritten Ergebnis oben, sollte einfach aus der Heatmap ausgeschlossen und nicht an einem Standardort eingezeichnet werden, denn sonst würde nicht aufgelöster Traffic irreführend an einer Stelle der Karte gebündelt, die nichts mit seiner tatsächlichen Herkunft zu tun hat.

Ein häufiger Fehler, den Sie vermeiden sollten

Filtern Sie offensichtlichen Traffic, der nicht von Besuchern stammt, etwa interne Health Checks oder Überwachungsdienste, die Ihren Server ständig von einer festen Adresse aus aufrufen, unbedingt heraus, bevor Sie die Liste der eindeutigen Adressen erstellen. Ein Überwachungsdienst, der jede Minute abfragt, kann eine unverhältnismäßig hohe Zahl an Logzeilen erzeugen, die nichts mit der echten Geografie der Besucher zu tun hat. Die Deduplizierung begrenzt ihn zwar bereits auf einen aufgelösten Punkt, doch dieser eine Punkt kann eine Heatmap optisch immer noch weit stärker dominieren, als es einem echten Traffic-Muster entspricht.

Ein Sonderfall: Traffic aus Hosting und Rechenzentren

Das Feld org einer aufgelösten Adresse zeigt oft, wenn Traffic aus einem Rechenzentrum oder einem Cloud-Hosting-Bereich statt von einem privaten oder mobilen Anschluss kommt. Das ist ein brauchbares Signal, um Bot- oder Scraper-Traffic herauszufiltern, bevor er eine Heatmap verzerrt, die echte Besucherstandorte darstellen soll.

Was es kostet

Dass eindeutige Adressen statt jeder Logzeile aufgelöst werden, hält das Ganze bezahlbar, denn die Kosten betragen eine Anfrage pro eindeutiger Adresse, nicht eine pro Logzeile. Ein Log mit einer Million Zeilen, aber nur wenigen tausend eindeutigen Besucheradressen kostet einige tausend Anfragen, nicht eine Million. Das ist für eine große Website mit Prepaid-Guthaben oder einem Unlimited-Paket gut zu bewältigen und liegt bei einer kleineren oft innerhalb des kostenlosen Kontingents. Den Header X-Quota-Used während eines großen Batch-Auftrags zu beobachten, ist eine einfache Möglichkeit zu bestätigen, dass die Nutzung wie erwartet verläuft, bevor der Auftrag abgeschlossen ist.

Vor dem Auflösen zu deduplizieren, ist der mit Abstand größte Hebel, um eine Heatmap aus Logs bezahlbar zu halten. Die Dokumentation zur IPv4-Abfrage beschreibt das Format für Bulk-Anfragen vollständig.