Watch your network breathe.

Real-time GELF network traffic visualization across four views — Flow, 2D Map, 3D Globe, Sankey.

Self-hosted Single Linux box Local Graylog No cloud No telemetry Apache 2.0
Three-second install → View on GitHub

See it move.

Live network traffic flowing across the four views.

Prerequisites. The installer will pull git, python3 + pip, nodejs + npm on its own — but it can't bootstrap curl itself. On a minimal Linux box where curl --version says "command not found", install it first:

Debian / Ubuntusudo apt install -y curl
RHEL / Fedora / Rocky / Almasudo dnf install -y curl
Arch / Manjarosudo pacman -S --noconfirm curl
openSUSEsudo zypper install -y curl
curl -fsSL https://raw.githubusercontent.com/jasoncheng7115/jt-gelflow/main/install.sh | sudo bash
URL
http://<server-ip>:8099 (installer prints the exact URL)
Manage
sudo jt-gelflow status / logs / update / uninstall

Then point Graylog at it. Graylog → System → Outputs → Add new outputGELF Output; transport UDP, host = the JT-GELFLOW server's IP, port 12201; attach the output to the stream you want visualised. Full step-by-step (incl. Logstash + Filebeat path) → README · Sending data

Four views, one pipeline.

Switch with 1 2 3 4. Same data, different perspective.

Flow

2D animated particle flow. Force-directed layout, nodes split internal vs external. Particles travel proportional to traffic.

2D Map

Mercator world map with traffic arcs from GeoIP coordinates. Drag to pan, scroll to zoom up to 16×.

3D Globe

Interactive orthographic globe. Auto-rotate, drag to orient, scroll to zoom. Optional starfield backdrop.

Sankey

Left-to-right bands from external to internal network. Toggle columns on/off (Country, PTR, Protocol). Hover lights up the entire flow chain. Column display names live in Field Mapping.

Built for ops.

Everything you need to make a Graylog / Logstash / Filebeat firehose comprehensible at a glance.

GELF UDP + TCP

Standard GELF input on UDP 12201 / TCP 12202 with chunked & gzip decoding.

Auto field discovery

Fields from incoming logs are surfaced live in the settings panel with type inference.

Template engine

{a||b|default} fallback chains for node and edge labels.

Zone classification

Internal / External / Inbound / Outbound by configurable CIDRs, or fully custom zones.

Top-N + filter

Per-view limits and IP whitelists keep the canvas readable on busy links.

Real-time search

Filter by IP, port, protocol or keyword. Multi-term AND, - excludes.

WebSocket 100 ms

Tight loop, hash-based deduplication, dead-client cleanup.

i18n

English / 繁體中文 across UI and settings.

systemd unit

Hardened service file, one-command install & updates via the bundled CLI.

Bring your own field names.

Pipelines that don't ship canonical GELF names — Suricata, custom enrichment, vendor exports — map through five settings sections. Change one and you usually need to revisit another.

Field Mapping

Source / destination IP, protocol, PTR, country code.

IP: source_ip · src_ip · srcip · suricata_srcip

Protocol: protocol_name · proto · ip_proto · l4_proto

Value Field

Numeric field summed per flow (bytes / count). No length field? Type a non-existent name and leave Default at 1 — the dashboard switches to event counting.

Common names: network_bytes · bytes · length · datalen · octets — whichever appears on incoming messages

Label Templates

Strings rendered on each node / edge using {field}. Renaming a Field Mapping field also means rewriting the templates that reference it.

Example: {suricata_srcip_ptr||suricata_srcip}

GeoIP

Lat/lng field used by 2D Map / 3D Globe (string "lat,lng"). Independent of Field Mapping — renaming src_field does not rename this.

Defaults: source_ip_geolocation · destination_ip_geolocation

Aliases: src_geolocation · srcip_geolocation · geoip_src_location

Zones

Internal / external CIDRs, top-N caps, per-view filter rules.

Default internal: 192.168.0.0/16 · 10.0.0.0/8 · 172.16.0.0/12

Full Suricata example + gotchas → README · Field mapping

Hotkeys

Drive the whole UI from the keyboard — no menu hunting.

1
Switch to Flow
2
Switch to 2D Map
3
Switch to 3D Globe
4
Switch to Sankey
Space
Pause / resume
+
Zoom in / out
0
Reset zoom
Pan canvas

Screenshots

All four views, same data stream.