You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The ipfixprobe is a high-performance flow exporter. It creates bidirectional flows from packet input and exports them to output interface. The ipfixprobe support vide variety of flow extenstion for application layer protocol information. The flow extension can be turned on with process plugins. We support TLS, QUIC, HTTP, DNS and many more. Just check our [documentation](https://ipfixprobe.cesnet.cz).

8
15
9
-
ipfixprobe is a high-performance flow exporter. It creates bidirectional flows from packet input and exports them to output interface. The ipfixprobe support vide variety of flow extenstion for application layer protocol information. The flow extension can be turned on with process plugins. We support TLS, QUIC, HTTP, DNS and many more. Just check our [documentation](https://ipfixprobe.cesnet.cz).
10
16
11
-
## Installation
12
-
The RPM packages for RHEL based distributions can be downloaded from our [copr repository](https://copr.fedorainfracloud.org/coprs/g/CESNET/NEMEA/package/ipfixprobe/). Or just simply run:
17
+
## 🛠️ Installation
18
+
The RPM packages for RHEL based distributions can be downloaded from our [copr repository](https://copr.fedorainfracloud.org/coprs/g/CESNET/ipfixprobe/package/ipfixprobe/). Or just simply run:
-`-i ARGS` Activate input plugin (-h input for help)
22
28
-`-s ARGS` Activate storage plugin (-h storage for help)
@@ -34,13 +40,13 @@ dnf install ipfixprobe
34
40
-`-h [PLUGIN]` Print help text. Supported help for input, storage, output and process plugins
35
41
-`-V` Show version and exit
36
42
37
-
### Help
43
+
### ❓ Help
38
44
Printing general help is done using the `-h` parameter. To print help for specific plugins, `-h` with parameter is used.
39
45
This parameter accepts `input`, `storage`, `process`, `output` or name of a plugin (or path to a .so file with plugin).
40
46
41
-
## Example
47
+
## 📖 Example
42
48
Here are the examples of various plugins usage:
43
-
```
49
+
```bash
44
50
# Capture from wlp2s0 interface using raw sockets, print flows to console
45
51
./ipfixprobe -i 'raw;ifc=wlp2s0' -o 'text'
46
52
@@ -73,61 +79,105 @@ Here are the examples of various plugins usage:
73
79
74
80
## Build
75
81
76
-
### Requirements
77
-
- libatomic
78
-
-[telemetry](https://github.com/CESNET/telemetry) (mandatory) — can be installed from the [COPR repository](https://copr.fedorainfracloud.org/coprs/g/CESNET/NEMEA-stable/package/telemetry/) or built from source code
79
-
- kernel version at least 3.19 when using raw sockets input plugin enabled by default (disable with `--without-raw` parameter for `./configure`)
80
-
-[libpcap](http://www.tcpdump.org/) when compiling with pcap plugin (`--with-pcap` parameter)
81
-
- netcope-common [COMBO cards](https://www.liberouter.org/technologies/cards/) when compiling with ndp plugin (`--with-ndp` parameter)
82
-
- libunwind-devel when compiling with stack unwind on crash feature (`--with-unwind` parameter)
83
-
-[nemea](http://github.com/CESNET/Nemea-Framework) when compiling with unirec output plugin (`--with-nemea` parameter)
84
-
- cloned submodule with googletest framework to enabled optional tests (`--with-gtest` parameter)
82
+
### 📦 Requirements
85
83
86
-
To compile DPDK interfaces, make sure you have DPDK libraries (and development files) installed and set the `PKG_CONFIG_PATH` environment variable if necessary. You can obtain the latest DPDK at http://core.dpdk.org/download/ Use `--with-dpdk` parameter of the `configure` script to enable it.
84
+
-`libatomic`
85
+
-[telemetry](https://github.com/CESNET/telemetry) (**required**) Installable from the [COPR repository](https://copr.fedorainfracloud.org/coprs/g/CESNET/NEMEA-stable/package/telemetry/) or buildable from source
86
+
- Linux kernel version **≥ 3.19**
87
+
-[libpcap](http://www.tcpdump.org/) — required for PCAP input plugin (`-DENABLE_INPUT_PCAP`)
88
+
-`netcope-common` — required for NDP input plugin with [COMBO cards](https://www.liberouter.org/technologies/cards/) (`-DENABLE_INPUT_NFB`)
89
+
-`libunwind-devel`
90
+
-[NEMEA](http://github.com/CESNET/Nemea-Framework) — required for UniRec output plugin (`-DENABLE_NEMEA`, `-DENABLE_OUTPUT_UNIREC`)
91
+
-[DPDK](http://core.dpdk.org/download/) — required for DPDK input plugin (`-DENABLE_INPUT_DPDK`)
87
92
88
-
### Source codes
93
+
> For most conventional monitoring use-cases (not requiring high-speed packet libraries like DPDK or NDP), you can install required dependencies using the following commands:
`ipfixprobe` exports statistics and other diagnostic information through a telemetry interface based on appFs library, which leverages the fuse3 library (filesystem in userspace) to allow telemetry data to be accessed and manipulated
133
183
through standard filesystem operations.
@@ -223,40 +273,34 @@ The pipeline directory provides statistics for all worker queues. Each queue is
223
273
```
224
274
225
275
226
-
## Input / Output of the flow exporter
276
+
## 📥 Input / Output of the flow exporter
227
277
228
-
The availability of the input and output interfaces depends on the ipfixprobe build settings. By default, we provide RPM package with pcap and raw inputs. The default provided outpus are ipfix and text.
278
+
The availability of input and output types depends on the installed packages or enabled build options (see section of README Project Setup with CMake).
279
+
By default, installing the `ipfixprobe` package enables standard raw socket output.
229
280
230
-
When the project is configured with `./configure --with-nemea`, the flow
231
-
exporter supports NEMEA output via TRAP IFC besides the default IPFIX output.
To enable additional input capabilities, install the corresponding input plugin packages:
234
282
235
-
The flow exporter supports compilation with libpcap (`./configure --with-pcap`), which allows for receiving packets
236
-
from PCAP file or network interface card.
283
+
- `ipfixprobe-input-dpdk` – enables DPDK input support
284
+
- `ipfixprobe-input-nfb` – enables NFB input support
285
+
- `ipfixprobe-input-pcap` – enables libpcap input support
237
286
238
-
When the project is configured with `./configure --with-ndp`, it is prepared for high-speed packet transfer
239
-
from special HW acceleration FPGA cards. For more information about the cards,
240
-
visit [COMBO cards](https://www.liberouter.org/technologies/cards/) or contact
241
-
us.
287
+
For more information, visit the [input plugin documentation](https://ipfixprobe.cesnet.cz/en/plugins) or run `ipfixprobe -h input` for more information and complete list of input plugins and their parameters.
242
288
243
-
### Output
244
289
245
-
There are several currently available output plugins, such as:
290
+
### 📤 Output
246
291
247
-
- `ipfix` standard IPFIX [RFC 5101](https://tools.ietf.org/html/rfc5101)
248
-
- `unirec` data source for the [NEMEA system](https://nemea.liberouter.org), the output is in the UniRec format sent via a configurable interface using [https://nemea.liberouter.org/trap-ifcspec/](https://nemea.liberouter.org/trap-ifcspec/)
249
-
- `text` output in human readable text format on standard output file descriptor (stdout)
292
+
Similarly as in input, the output availability also depends on the installed packages.
293
+
By default, installed the `ipfixprobe` package enables standard `ipfix` and `text` output.
250
294
251
-
The output flow records are composed of information provided by the enabled plugins (using `-p` parameter, see [Flow Data Extension - Processing Plugins](./README.md#flow-data-extension---processing-plugins)).
295
+
To add [NEMEA system](https://nemea.liberouter.org) output capability, you should install `ipfixprobe-nemea` instead of ipfixprobe
252
296
253
297
See `ipfixprobe -h output` for more information and complete list of output plugins and their parameters.
254
298
255
-
LZ4 compression:
299
+
#### LZ4 compression:
256
300
ipfix plugin supports LZ4 compression algorithm over tcp. See plugin's help for more information.
257
301
258
302
259
-
## Possible issues
303
+
## ⚠️ Possible issues
260
304
### Flows are not send to output interface when reading small pcap file (NEMEA output)
261
305
262
306
Turn off message buffering using `buffer=off` option and set `timeout=WAIT` on output interfaces.
0 commit comments