The following configuration example shows how to configure a Collector instance to accept NetFlow packets and ingest them as OTLP requests into Dynatrace.
logs.ingest
) scope.receivers:netflow:hostname: "0.0.0.0"scheme: netflowport: 2055sockets: 2workers: 4processors:batch:send_batch_size: 30timeout: 30sexporters:otlphttp:endpoint: ${env:DT_ENDPOINT}headers:Authorization: "Api-Token ${env:DT_API_TOKEN}"service:pipelines:logs:receivers: [netflow]processors: [batch]exporters: [otlphttp]
Check the NetFlow receiver documentation for the available configuration options.
We recommend setting the sockets
parameter to match the number of CPU cores available on the Collector instance, and the workers
parameter to twice the number of sockets. This configuration allows the Collector to process multiple incoming NetFlow packets concurrently, which improves performance.
For extremely large volumes of data, you should parallelize the configuration among multiple Collector instances.
Validate your settings to avoid any configuration issues.
For our configuration, we configure the following components.
Under receivers
, we specify the netflow
receiver as the active receiver component for our Collector instance and configure it to listen on specified ports.
Under processors
, we specify the batch
processor, which batches the incoming NetFlow packets before sending them to Dynatrace. This is useful for optimizing performance and reducing the number of requests sent.
Under exporters
, we specify the default otlphttp
exporter and configure it with our Dynatrace API URL and the required authentication token.
For this purpose, we set the following two environment variables and reference them in the configuration values for endpoint
and Authorization
.
DT_ENDPOINT
contains the base URL of the Dynatrace API endpoint (for example, https://{your-environment-id}.live.dynatrace.com/api/v2/otlp
)DT_API_TOKEN
contains the API tokenUnder service
, we assemble our receiver and exporter objects into a logs pipeline, which will listen on the configured address for incoming NetFlow packets and forward them to Dynatrace using the exporter.
The logs records will be available in Dynatrace with fields documented in the receiver documentation.
Fetch all NetFlow logs and summarize the bytes and packets by source and destination addresses:
fetch logs| filter otel.scope.name == "otelcol/netflowreceiver"| summarize {bytes=sum(toDouble(flow.io.bytes)), packets=sum(toDouble(flow.io.packets))}, by: {source = source.address, destination = destination.address}| fieldsAdd bytes_relative=bytes| fieldsAdd packets_relative=packets| sort bytes desc
Fetch the most used ports:
fetch logs| filter otel.scope.name == "otelcol/netflowreceiver"| summarize {bytes=sum(toDouble(flow.io.bytes))}, by: {port = destination.port}| sort bytes desc| limit 10
Logs are ingested using the OpenTelemetry protocol (OTLP) via the Dynatrace OTLP API and are subject to the API's limits and restrictions. For more information see: