master
md 141 lines 4.51 KB
Rendered Raw
1 <!--startmeta
2 custom_edit_url: "https://github.com/netdata/netdata/edit/master/src/crates/netflow-plugin/integrations/ipfix.md"
3 meta_yaml: "https://github.com/netdata/netdata/edit/master/src/crates/netflow-plugin/metadata.yaml"
4 sidebar_label: "IPFIX"
5 learn_status: "Published"
6 learn_rel_path: "Network Flows/Flow Protocols"
7 keywords: ['ipfix', 'netflow v10', 'flows', 'network flows', 'flow collector', 'rfc 7011']
8 message: "DO NOT EDIT THIS FILE DIRECTLY, IT IS GENERATED BY THE FLOWS' metadata.yaml FILE"
9 endmeta-->
10
11 <!-- markdownlint-disable-file -->
12
13 # IPFIX
14
15
16 <img src="https://netdata.cloud/img/network-wired.svg" width="150"/>
17
18
19 Plugin: netflow-plugin
20 Module: ipfix
21
22 <img src="https://img.shields.io/badge/maintained%20by-Netdata-%2300ab44" />
23
24 ## Overview
25
26 Collect network flow records from IPFIX (NetFlow v10) exporters. IPFIX extends
27 NetFlow v9 with variable-length fields, vendor-specific information elements,
28 and template withdrawal. Each record exposes the same core fields as NetFlow plus
29 any additional IEs the exporter provides.
30
31 For full documentation including vendor configuration examples (Cisco, Juniper, Arista,
32 ASA NSEL), biflow handling, sampling caveats, and verification steps, see the
33 [Network Flows Overview](https://learn.netdata.cloud/docs/network-flows/).
34
35
36 The plugin listens on the same UDP socket as NetFlow. IPFIX messages are identified by
37 version number 10 and decoded using cached templates. Decoded records are enriched and
38 appended to disk-backed journal tiers.
39
40
41 This integration is only supported on the following platforms:
42
43 - Linux
44
45 This integration runs as a single instance per Netdata Agent.
46
47
48 ### Default Behavior
49
50 #### Auto-Detection
51
52 The plugin starts when enabled in netflow.yaml and listens on the configured UDP port.
53
54 #### Limits
55
56 Operational limits are driven by sustained flows/s, template churn, cardinality, retention, storage speed, and enrichment. Plan around 25k sustained flows/s per well-provisioned agent for the full raw + rollup pipeline; use distributed agents for larger deployments.
57
58 #### Performance Impact
59
60 Disabled until exporters send traffic. Once active, CPU and disk I/O scale with flow rate, template volume, and cardinality; size retention and storage from observed flows/s.
61
62 ## Setup
63
64
65 ### Prerequisites
66
67 #### IPFIX-capable exporter
68
69 A router, switch, or firewall configured to export IPFIX datagrams to the
70 Netdata agent's UDP listener.
71
72
73
74 ### Configuration
75
76 #### Options
77
78 IPFIX shares the same `netflow.yaml` configuration file as NetFlow and sFlow.
79 Enable IPFIX via the `protocols.ipfix` option.
80
81
82 <details open><summary>Config options</summary>
83
84
85
86 | Option | Description | Default | Required |
87 |:-----|:------------|:--------|:---------:|
88 | listener.listen | UDP endpoint for IPFIX datagrams. | 0.0.0.0:2055 | no |
89 | protocols.ipfix | Enable IPFIX decoding. | yes | no |
90 | journal.journal_dir | Directory for journal files (relative to NETDATA_CACHE_DIR). | flows | no |
91 | journal.tiers.&lt;tier&gt;.size_of_journal_files | Per-tier hard size cap. Replace `<tier>` with `raw`, `minute_1`, `minute_5`, or `hour_1`. Set to `null` for time-only retention. | 10GB | no |
92 | journal.tiers.&lt;tier&gt;.duration_of_journal_files | Per-tier maximum age. Replace `<tier>` with `raw`, `minute_1`, `minute_5`, or `hour_1`. Set to `null` for size-only retention. | 7d | no |
93
94
95 </details>
96
97
98
99 #### via File
100
101 The configuration file name for this integration is `netflow.yaml`.
102
103
104 You can edit the configuration file using the [`edit-config`](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration/README.md#edit-configuration-files) script from the
105 Netdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration/README.md#locate-your-config-directory).
106
107 ```bash
108 cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
109 sudo ./edit-config netflow.yaml
110 ```
111
112 ##### Examples
113
114 ###### IPFIX collection
115
116 Listen for IPFIX records on Netdata's default flow listener port.
117
118 ```yaml
119 enabled: true
120 listener:
121 listen: "0.0.0.0:2055"
122 protocols:
123 v5: false
124 v7: false
125 v9: false
126 ipfix: true
127 sflow: false
128
129 ```
130
131
132 ### Verifying flow data is arriving and diagnosing failures
133
134 See [Troubleshooting](https://learn.netdata.cloud/docs/network-flows/troubleshooting) for
135 the full diagnostic recipe. For IPFIX specifically, watch the `template_errors` dimension
136 on `netflow.input_packets` -- IPFIX is template-driven and data records arriving before
137 their templates are dropped. See also
138 [Validation and Data Quality](https://learn.netdata.cloud/docs/network-flows/validation-and-data-quality).
139
140
141