Go

GoFlow2 on Ubuntu 24.04

Azure Observability

GoFlow2, a high throughput network flow collector that turns NetFlow, IPFIX and sFlow samples from your routers and switches into one consistent stream of JSON records.

Base
Hardened build
minimal ports, security patches applied at build time
Access
Unique credentials
generated on first boot, readable only by root
Verified
Boots working
services pass a health gate before release
Support
24/7, 365 days
by email and live chat, 24 hour response SLA

Overview

GoFlow2 is an open source network flow collector written in Go. Routers, switches, firewalls and hypervisors can export a summary of every conversation crossing them, but they each speak a different dialect: NetFlow version 5, NetFlow version 9, IPFIX or sFlow. GoFlow2 listens for all of them at once, decodes the templates and samples, and emits every record in one common schema so that everything downstream sees the same fields regardless of which vendor sent it. Records come out as newline delimited JSON or as protocol buffers, written to a file for a log shipper to pick up or published straight onto a Kafka topic for a streaming pipeline. It is deliberately the ingest stage and nothing more: storage, aggregation, enrichment and graphing are left to the tools you already run, which is what lets it stay fast enough to sit in front of a busy network. Prometheus metrics cover received packets, decoded samples, decoding errors and drops, so the collector itself is observable.

Why the cloudimg image

GoFlow2 ships with no authentication and no interface of its own, so this image supplies the operational layer around it. The metrics endpoint is bound to loopback and published through nginx behind HTTP Basic Auth whose password is generated uniquely on every first boot, never baked into the image, and an unauthenticated health path is kept separate for load balancer probes. Decoded flows are written to a dedicated data volume rather than the root disk, because flow volume filling a root filesystem is the classic way a collector fails, and logrotate keeps fourteen compressed generations using the signal based reopen so no record is lost or duplicated. Kernel receive buffers are tuned for bursty exporter traffic, the collector runs as a dedicated unprivileged system user under a hardened service unit, and a synthetic flow generator is included so you can prove the collector is decoding before you point production exporters at it. A paired deployment guide and 24/7 support come with the image.

Common uses

  • Collect NetFlow, IPFIX and sFlow from mixed vendor network hardware into one consistent schema
  • Feed a flow analytics pipeline by streaming decoded records to Kafka or a log shipper
  • Investigate traffic patterns, top talkers and capacity trends from raw per conversation records