README.md
ATLANTIS
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.
Quick start
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.
bash1 git clone https://github.com/flamboh/atlantis.git 2 cd atlantis 3 bun install 4 5 # A system nfdump installation does not work. 6 git submodule update --init --recursive 7 ./vendor/scripts/compile-nfdump.sh Describe your captures. Copy the templates, then edit them:
bash1 cp .env.example .env 2 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.bash1 ./scripts/netflow-db.sh pipeline \ 2 --dataset example \ 3 --start-date <YYYY-MM-DD> \ 4 --end-date <YYYY-MM-DD> \ 5 --nfdump target/nfdump/libexec/nfdump Start the dashboard, then open
http://localhost:5173.bash1 bun run dev:web
If a step fails, read Troubleshooting.
Documentation
For a new setup, use these procedures:
Acknowledgment
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.