Run the scripts in this order.
- Install dependencies once:
cd honeypot/analysis
bun install- Run analysis from the repo root.
This processes all available live data by default. Add
--from/--toonly when you want to limit the date range.
python honeypot/analysis/analyze_cowrie.py analyze `
--input-root honeypot/outputs `
--artifact-dir honeypot/analysis/artifacts `
--sensors baseline,hostname,banner- Render the visualization from the previously generated graph JSON:
python honeypot/analysis/analyze_cowrie.py render `
--artifact-dir honeypot/analysis/artifactsThe render step reads only cowrie_state_machine_graph.json and does not reprocess the raw Cowrie logs.
- Serve the generated artifacts over HTTP with Bun so the interactive HTML can load the sibling SVG:
bun run honeypot/analysis/serve_artifacts.ts --dir honeypot/analysis/artifacts --port 3000- Open
http://localhost:3000/.
- Hover a node to see per-sensor and total session counts.
- Click a node to populate the right-hand sidebar with the top full flows through that node.
- Sidebar flow entries render one state per line, reuse the node colors, and include sample session links into Splunk.
- The selected node card also includes a direct Splunk search link for that node.
Run the services in this order from honeypot/analysis.
This uses separate images:
Dockerfile.viewerfor the Bun HTTP viewerDockerfile.pythonforanalyzeDockerfile.nodeforrender
- Run analysis.
This also processes all available live data by default. Add
--from/--toonly when you want a narrower window.
cd honeypot/analysis
docker compose --profile tools run --build --rm analyze- Run render.
cd honeypot/analysis
docker compose --profile tools run --build --rm render- Start the viewer.
cd honeypot/analysis
docker compose up viewerAnalysis outputs:
cowrie_sessions.parquetorcowrie_sessions.csvcowrie_stage_counts.csvcowrie_fingerprinting_candidates.csvcowrie_state_machine_nodes.csvcowrie_state_machine_edges.csvcowrie_session_paths.csvcowrie_top_path_prefixes.csvcowrie_state_machine_graph.jsoncowrie_summary.md
Renderer output:
cowrie_state_machine.svgcowrie_state_machine.html