Network telemetry visualization platform for analyzing large-scale NetFlow data. SvelteKit frontend, SQLite backend, Rust ingestion pipeline.
ATLANTIS reads nfcapd captures from a NetFlow collector. The pipeline converts the captures into a SQLite database, and the dashboard visualizes that database.
First, install the required tools — both Bun and Node.js are necessary, and nfcapd processing needs the nfdump build tools. You also need nfcapd capture files on disk.
-
Clone the project and build the tools.
git clone https://github.com/flamboh/atlantis.git cd atlantis bun install # A system nfdump installation does not work. git submodule update --init --recursive ./vendor/scripts/compile-nfdump.sh
-
Describe your captures. Copy the templates, then edit them:
cp .env.example .env cp datasets.json.example datasets.json
In
datasets.json, setroot_pathto your capture directory and name one source for each collector directory under it (dataset configuration explains the fields and the expected layout). In.env, setDEFAULT_DATASETto yourdataset_id. -
Build a database from one day of captures. Use your
dataset_idand a date that has captures. The first run compiles the Rust pipeline and takes several minutes; run it in a persistent shell like tmux../scripts/netflow-db.sh pipeline \ --dataset example \ --start-date 2025-02-01 \ --end-date 2025-02-01 \ --nfdump target/nfdump/libexec/nfdump
-
Start the dashboard, then open
http://localhost:5173.bun run dev:web
If a step fails, read Troubleshooting.
For a new setup, use these procedures:
Developed by Oliver Boorstein under support by NSF Research Experiences for Undergraduates with the Oregon Networking Research Group.
Advised by Chris Misa and Reza Rejaie.