Skip to content

Configuration ​

JSON configurations reject unknown fields. Paths resolve relative to the configuration file. Main configuration, endpoint configuration, and plugin manifests are different formats.

Generate a starting point ​

For first installation, run sudo netflowscout init --lang en; see the installation wizard. Use configure below for scripted or reference generation.

sh
netflowscout configure --mode endpoint --service billing \
  --executable /opt/billing/server --verification \
  --out ./netflowscout.json --endpoint-out ./billing.json
netflowscout check --config ./netflowscout.json

Generation refuses to overwrite files and defaults to installed paths. Source development can use --plugins /absolute/path/build/plugins. For existing installations, the TUI Config page validates, previews diffs, and coordinates activation.

Common main fields ​

This table distinguishes loader defaults from settings that require local values. Packaged and generated deployment configurations explicitly use absolute paths.

FieldDefault / behavior
sensor_id / servicelocal / unknown; set stable meaningful names
capture.application_sourceLoader: network; packaged/endpoint-generated configuration: endpoint
capture.interface / filterActual interface and supported userspace expression
socket / stream_socketRule input / plaintext Unix sockets; process wiring must agree
metrics127.0.0.1:9710; keep loopback
rules / pluginsRule files / plugin packages or parent directories; validate the complete set
queue.path / max_bytesvar/events.wal / 256 MiB logical event capacity
file.enabled/path/max_bytes/keeptrue / var/events.ndjson / 16 MiB / 8 including current
dataway.enabled/url/token_envDisabled; base URL; credential environment variable name
recording.enabled/directory/protocolsDisabled; dedicated local folder; explicit protocols; see Raw data recording
recording.retention_hours/event_retention_hoursLoader defaults: 0 / 0; age expiry / event protection, 0..8760 hours. Generator recording defaults: 24 / 168
privacy.raw_fieldsEmpty; service-specific input field allowlists
verification.enabledfalse; enabling requires main/analyzer restarts
business.enabled/max_series/window_secondstrue / 256 / 300; bounded cardinality and recent Top N
grpc.descriptorsAt most eight FileDescriptorSets, 1 MiB each

HTTP and business settings ​

json
{
  "http": {"request_events":true,"query_keys":["action"],"headers":["x-request-id","x-business-action"]},
  "business": {"enabled":true,"max_series":256,"window_seconds":300,
    "routes":[{"pattern":"^/orders/[0-9]+$","name":"/orders/{id}"}]}
}

Merge this fragment into the full configuration. Query/header selection still filters credentials; raw output still needs privacy authorization. Business route names are public administrator-defined templates and must not contain sensitive values. Untemplated paths and SQL use bounded normalization and hashes.

Resource limits ​

limits fieldDefault
groups_per_rule10000
distinct_per_aggregate4096
input_buffer2048 records
input_bytes32 MiB
max_connections16 rule-input clients
state_bytes64 MiB

These are not whole-process RSS limits; systemd/Helm impose additional limits. Queue and rule-state budgets differ. Increasing input buffering cannot solve sustained overload.

Apply changes ​

Reload the main service for rule files and the analyzer for compatible Wasm updates. Main and endpoint configuration changes need relevant restarts. Schema/sensitivity changes require coordinated activation. Drain/migrate offline before changing WAL paths or disabling sinks. Check first, then verify runtime digests, readiness, and actual events.