Übersicht
Wer mehrere Dienste hinter dem Nginx Proxy Manager betreibt, will irgendwann wissen, wo der Datenverkehr eigentlich hingeht. NPMcountdy liest die Access-Logs des Proxys mit und zeigt, wie viel pro Domain, pro Bereich und pro Datei ausgeliefert wurde, an wen, zu welcher Uhrzeit und in welche Länder. Die Zahlen bleiben gespeichert, auch wenn der Proxy seine Logs längst gelöscht hat.



Was es kann
- Pro Domain und Bereich. Datenmenge und Anfragen je Proxy Host und je Bereich, etwa
/downloads/oder/api/, dazu die größten Dateien. - Wer lädt? Browser, Sync-Clients, Bots und Scanner werden am User-Agent erkannt und getrennt gezählt. Alles andere, etwa eigene Apps, landet unter Sonstige.
- Länder und Weltkarte. Die Besucher-IPs werden lokal mit der freien Datenbank von DB-IP nachgeschlagen. Keine Adresse verlässt den Server.
- Tageszeit und Antworten. Wann der Verkehr anfällt, wie viel erfolgreich war und wie viel im LAN blieb.
- Übersteht Log-Rotation. Stundenwerte bleiben dauerhaft. Beim ersten Start liest NPMcountdy auch die schon rotierten Logs ein, auch gepackte.
- Datensparsam. Dateien und Besucher-IPs werden nach 90 Tagen gelöscht, Pfade auf drei Ebenen gekürzt, damit keine einzelnen Dateinamen gespeichert werden.
Installation
- Auf dem Rechner, auf dem der Nginx Proxy Manager läuft, das Repository klonen:
git clone https://github.com/Glenn-Dandy/NPMcountdy.git - In der
docker-compose.ymlden Log-Ordner des Proxys prüfen (Standard/opt/data/logs). Er wird nur lesend eingebunden. docker compose up -d --buildstarten und die Oberfläche auf Port 7881 öffnen.- NPMcountdy hat keine eigene Anmeldung. Nur im LAN betreiben, zum Beispiel als Proxy Host mit einer Access List, die nur das Heimnetz durchlässt.
Technik und Aufbau
Ein einziges Python-Programm ohne Zusatzpakete: Ein Thread liest jede Minute die neuen Zeilen der Logs, ein kleiner HTTP-Server liefert API und Oberfläche. Die Zahlen liegen in SQLite. Die Oberfläche ist reines JavaScript, die Diagramme und die Weltkarte (Natural Earth) sind selbst gezeichnetes SVG, hell und dunkel. Der Container läuft schreibgeschützt, ohne Root-Rechte und mit 256 MB Speichergrenze.
Änderungsverlauf
Häufige Fragen
- Zählt NPMcountdy auch Uploads?
- Nein. Gezählt wird nur, was der Proxy ausgeliefert hat, also Downloads.
- Was passiert hinter Cloudflare?
- Dann steht im Log die Adresse von Cloudflare statt der des Besuchers. Mit einer Zeile in der Konfiguration des Proxys kommen die echten Adressen an, das README erklärt wie.
- Werden Daten nach außen geschickt?
- Nein. Nur die Länderdatenbank wird einmal im Monat heruntergeladen. Mit
GEOIP=offentfällt auch das.