|
| 1 | +IPFIXcol2 |
| 2 | +=========== |
| 3 | + |
| 4 | +IPFIXcol is a flexible, high-performance IPFIX flow data collector designed to be extensible |
| 5 | +by plugins. The second generation of the collector includes many design and performance enhancements |
| 6 | +compared to the original `IPFIXcol <https://github.com/CESNET/ipfixcol/>`_. |
| 7 | + |
| 8 | +The collector allows you to choose combination of input, intermediate and output plugins that |
| 9 | +best suit your needs. Do you need to receive data over UDP/TCP and store them for long term |
| 10 | +preservation? Or, do you prefer conversion to JSON and processing by other systems? |
| 11 | +No problem, pick any combination of plugins. |
| 12 | + |
| 13 | +*Features:* |
| 14 | + |
| 15 | +- Input, intermediate and output plugins with various options |
| 16 | +- Parallelized design for high-performance |
| 17 | +- Support for bidirectional flows (biflow) |
| 18 | +- Built-in support for many Enterprise-Specific Information Elements (Cisco, Netscaler, etc.) |
| 19 | + |
| 20 | +Available plugins |
| 21 | +----------------- |
| 22 | + |
| 23 | +**Input plugins** - receive IPFIX data. Each can be configured to to listen on a specific |
| 24 | +network interface and a port. Multiple instances of these plugins can run concurrently. |
| 25 | + |
| 26 | +- UDP - receives IPFIX over UDP |
| 27 | +- TCP - receives IPFIX over TCP |
| 28 | + |
| 29 | +**Intermediate plugins** - modify, enrich and filter flow records. |
| 30 | + |
| 31 | +- anonymization - anonymize IP addresses (in flow records) with Crypto-PAn algorithm. |
| 32 | + |
| 33 | +**Output plugins** - store or forward your flows. |
| 34 | + |
| 35 | +- json - convert flow records to JSON and send/store them |
| 36 | +- dummy - simple module example, |
| 37 | +- lnfstore (*) - store all flows in nfdump compatible format for long-term preservation |
| 38 | + |
| 39 | +\* Must be installed individually due to extra dependencies |
| 40 | + |
| 41 | +How to build |
| 42 | +------------ |
| 43 | + |
| 44 | +IPFIXcol is based on `libfds <https://github.com/CESNET/libfds/>`_ library that provides |
| 45 | +functions for IPFIX parsing and manipulation. First of all, install the library. |
| 46 | +For more information visit the project website and follow installation instructions. |
| 47 | + |
| 48 | +However, you have to typically do following steps: (extra dependencies may be required) |
| 49 | + |
| 50 | +.. code-block:: bash |
| 51 | +
|
| 52 | + $ git clone https://github.com/CESNET/libfds.git |
| 53 | + $ cd libfds |
| 54 | + $ mkdir build && cd build && cmake .. |
| 55 | + $ make |
| 56 | + # make install |
| 57 | +
|
| 58 | +Second, install build dependencies of the collector |
| 59 | + |
| 60 | +**RHEL/CentOS:** |
| 61 | + |
| 62 | +.. code-block:: |
| 63 | +
|
| 64 | + yum install gcc gcc-c++ cmake make |
| 65 | + # Optionally: doxygen, pkg-config |
| 66 | +
|
| 67 | +* Note: latest systems (e.g. Fedora) use ``dnf`` instead of ``yum``. |
| 68 | + |
| 69 | +**Debian/Ubuntu:** |
| 70 | + |
| 71 | +.. code-block:: |
| 72 | +
|
| 73 | + apt-get install gcc g++ cmake make |
| 74 | + # Optionally: doxygen |
| 75 | +
|
| 76 | +Finally, build and install the collector: |
| 77 | + |
| 78 | +.. code-block:: bash |
| 79 | +
|
| 80 | + $ mkdir build && cd build && cmake .. |
| 81 | + $ make |
| 82 | + # make install |
| 83 | +
|
| 84 | +How to configure |
| 85 | +---------------- |
| 86 | + |
| 87 | +TODO: Prepared configurations |
| 88 | + |
| 89 | +TODO: example configuration files |
| 90 | + |
| 91 | +TODO: description of information elements are |
| 92 | + |
| 93 | + |
| 94 | +FAQ |
| 95 | +-------------- |
| 96 | + |
| 97 | +Do you have any troubles? Unable to build and run the collector? *Feel free to submit a new issue.* |
| 98 | + |
| 99 | +We are open to new ideas! For example, are you missing a specific plugin that could |
| 100 | +be useful also for other users? Please, share your experience and thoughts. |
| 101 | + |
| 102 | +---- |
| 103 | + |
| 104 | +:Q: How to...? |
| 105 | +:A: You should... |
| 106 | + |
| 107 | +---- |
| 108 | + |
| 109 | +:Q: How can I add more IPFIX fields into records? |
| 110 | +:A: The collector receives flow records captured and prepared by an exporter. IPFIX is an |
| 111 | + unidirectional protocol which means that the collector is not able to instruct the exporter |
| 112 | + what to measure or how to behave. If you want to enhance your records, please, check |
| 113 | + configuration of your exporter. |
| 114 | + |
| 115 | +Coming soon |
| 116 | +----------- |
| 117 | +- NetFlow v5/v9 support |
| 118 | +- Runtime reconfiguration (improved compared to the previous generation) |
| 119 | +- RPM/DEB packages |
| 120 | +- Support for structured data types (lists, etc.) |
0 commit comments