Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

rockfish report

Generate a self-contained, multi-page HTML NDR report from Parquet data.

Overview

The report command produces interactive HTML dashboards with Chart.js and D3.js visualizations — no web server required. Reports include 12+ pages covering alerts, threats, DNS, TLS, flows, hosts, network topology, asset inventory, and hunt findings.

Usage

rockfish report [OPTIONS]

Report Pages

PageHighlights
OverviewTraffic volume, hourly charts, event counts, top talkers, protocol breakdown
AlertsSeverity timeline, top signatures, alerted hosts, MITRE ATT&CK mapping
FindingsHunt detection results by severity and type, evidence table
ThreatsIP reputation, beaconing, large transfers, DGA, DNS tunneling, port scans
DNSTop domains, response codes (NOERROR, NXDOMAIN, SERVFAIL), DGA indicators
TLSVersion distribution, SNI hostnames, JA3 fingerprints, self-signed certs
ApplicationsProtocol distribution, hourly stacked charts, top HTTP hosts
FlowsVolume and direction, destination ports, top countries (GeoIP)
HostsTop alerted hosts, top talkers by flow count and volume
NetworkForce-directed graph with IP/24/16 aggregation, threat and anomaly overlays
InventoryPassive device discovery, device roles, OT protocol summary
QueryConversational AI interface (requires rockfish chat)

Visualization Features

  • World Map — Leaflet.js with country-level flow, alert, and reputation overlays
  • Network Graph — D3.js force-directed topology with Flows/Alerts/Hunt toggle layers, including anomaly (iForest/HBOS) findings overlay
  • Heat-Mapped Tables — Gradient backgrounds for volume, severity, and scores
  • Collapsible Tables — Expand/collapse with JSON export
  • Severity Colors — Consistent palette: critical (red) through info (blue)

Options

OptionDefaultDescription
-d, --data-dir./outputData directory with Parquet files
--sensorsensorSensor name subdirectory
--hiveEnable hive-style partitioning
-o, --output-dir./reportOutput directory for HTML
-t, --time-window24 hoursTime window filter
--themeYAML theme configuration
--custom-cssCustom CSS file path
--continuousRegenerate on schedule
--interval-minutes5Minutes between regenerations

Theming

Customize report appearance with a YAML theme file:

# theme.yaml
background: "#0d1117"
surface: "#161b22"
text: "#e6edf3"
text_heading: "#ffffff"
accent: "#1a73e8"
rockfish report -d /data --sensor my-sensor --theme theme.yaml

See theme.yaml.example for all available options.

Replace the default Rockfish logo with your own branding. Requires Standard or Enterprise license.

# theme.yaml
logo_path: "/path/to/your-logo.png"
PropertyValue
FormatsPNG, JPEG
Recommended size200 x 36 pixels
Display height36px (width scales proportionally)

The logo appears in the header bar of every report page.

Demo Mode

Generate a report with synthetic data to showcase all features:

rockfish report --demo -o ./demo-report

Demo mode is available on all license tiers.

Continuous Mode

# Regenerate every 5 minutes (default)
rockfish report -d /data --sensor my-sensor --hive --continuous

# Regenerate every 15 minutes
rockfish report -d /data --sensor my-sensor --hive \
  --continuous --interval-minutes 15

Examples

# 24-hour report
rockfish report -d /data/rockfish --sensor prod-01 --hive \
  -o /var/www/html/ndr

# 7-day report with custom theme
rockfish report -d /data --sensor prod-01 --hive \
  -t "7 days" --theme /etc/rockfish/theme.yaml

# Continuous regeneration for live dashboard
rockfish report -d /data --sensor prod-01 --hive \
  --continuous --interval-minutes 10 -o /var/www/html/ndr