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

The reporting service — generates HTML dashboards, serves them over HTTP, and manages compact/prune operations.

Overview

rockfish report runs as a separate service from rockfish sigma. It reads Parquet data produced by the SIGMA engine and generates a static HTML dashboard that can be served over HTTP.

It combines:

  • HTML report generation — continuous, regenerates every 10 minutes (configurable)
  • HTTP server — serves reports via --serve
  • Compact — merges small Parquet files hourly
  • Prune — removes old Parquet files daily (90-day retention)
  • Insight — AI-generated security assessment (daily, requires ANTHROPIC_API_KEY)

Usage

rockfish report \
    --data-dir /var/lib/rockfish/parquet \
    --sensor fmadio20p3-798-ubuntu22 \
    --hive \
    --output-dir /var/lib/rockfish/reports \
    --continuous \
    --interval-minutes 10 \
    --serve --port 8080 \
    --license /opt/rockfish/etc/rockfish_license.json

Systemd Service

[Unit]
Description=Rockfish NDR — Reporting Service
After=network.target rockfish.service

[Service]
Type=simple
User=rockfish
Group=rockfish
ExecStart=/opt/rockfish/bin/rockfish report \
    --data-dir /var/lib/rockfish/parquet \
    --sensor fmadio20p3-798-ubuntu22 \
    --hive \
    --output-dir /var/lib/rockfish/reports \
    --continuous \
    --interval-minutes 10 \
    --serve --port 8080 \
    --license /opt/rockfish/etc/rockfish_license.json
Restart=on-failure

[Install]
WantedBy=multi-user.target

Background Threads

ThreadScheduleDescription
ReportEvery 10 minRegenerates HTML dashboard
HTTPAlways onServes reports on configured port
CompactHourlyMerges small Parquet files
PruneDaily (midnight UTC)Deletes files older than 90 days

Insight (AI Assessment)

When ANTHROPIC_API_KEY is set, the report generates an AI-powered security assessment once per day.

  • ANTHROPIC_API_KEY — required
  • ANTHROPIC_MODEL — default: claude-haiku-4-5-20251001

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