⚠️ IPFIXcol2 has been released!The next generation of the collector is more stable, up to 2x faster, and adds support for new features (e.g. biflow, structured data types, etc.). The code was completely rewritten and some plugins might not be available.
Since the release of the new collector, this old framework is not supported anymore! Please, consider upgrading to the new release.
- Framework description
- IPFIXcol
- Plugins
- Built-in tools
- External tools
- Howto install
- Howto build
- Docker
- RPM
- FastBit
- Contact us * Reporting bugs * Forum
IPFIXcol framework is a set of:
- IPFIXcol - collector for capturing IPFIX NetFlow data
- input, intermediate and storage plugins for collector
- tools for data processing etc.
To generate data for the IPFIXcol, look at the list list of supported flow exporters.
Described in it's README
IPFIX collector comes with several built-in plugins described at IPFIXcol's page.
There are also external plugins that are installed separately
- nfdump - NFDUMP file reader
- geoip - adds country codes into the metadata structure
- profiler - fills metadata informations about profiles and channels
- profile_stats - counts statistic per profile and channel
- stats - counts statistics per ODID
- uid - fills user identity information
- fastbit - uses FastBit library to store and index data
- fastbit_compression - uses FastBit library to store and index data with optional compression support
- json - converts data into JSON format
- nfdump - stores data in NFDUMP file format
- postgres - stores data into PostgreSQL database
- statistics - uses RRD library to generate statistics for collected data
- unirec - stores data in UniRec format
Destribed in IPFIXcol's README
Converts data from NFDUMP file format into FastBit. Uses IPFIXcol, nfdump input plugin and fastbit storage plugin.
More info in it's README
Tool for manipulating IPFIX data in FastBit database format. It uses FastBit library to read and index data.
More info in it's README
Daemon for removing old data.
More info in it's README
Tool for merging FastBit data (saves free disk space, reduces number of files..)
More info in it's README
Tool for profiles management and distribution
Individual packages of the IPFIXcol framework can be installed from Fedora copr repository Just add the repository to your system:
dnf copr enable @CESNET/IPFIXcol
And install the packages you need (e.g. IPFIXcol framework and JSON output plugin):
dnf install ipfixcol ipfixcol-json-output
If you not are using one of the supported operating systems, you can build the IPFIXcol from sources.
Dependencies must be installed first. For Fedora, CentOS and RHEL the list of necessary packages is as follows:
autoconf bison docbook-style-xsl doxygen flex
gcc gcc-c++ git libtool libxml2 libxml2-devel
libxslt lksctp-tools-devel lzo-devel make
openssl-devel GeoIP-devel rrdtool-devel
sqlite-devel postgresql-devel corosync corosync-devel rpm-build
Debian and Ubuntu distributions have a different names for some of the packages:
autoconf bison build-essential docbook-xsl doxygen flex
git liblzo2-dev libtool libsctp-dev libssl-dev libxml2
libxml2-dev pkg-config xsltproc libgeoip-dev librrd-dev
libsqlite3-dev libpq-dev libcpg-dev corosync-dev
IPFIXcol does not support openssl1.1, therefore you need to use libssl1.0-dev on Debian Jessie.
Moreover, you need to build the FastBit library
First, download IPFIXcol git repository (do NOT forget to use --recursive
option):
git clone --recursive https://github.com/CESNET/ipfixcol.git
Note: If you have updated from a previous revision of the repository without a submodule
or if you forgot to add --recursive
option, you can just download the submodule manually:
git submodule update --init --recursive
After installing all dependencies and downloading the repository, the whole framework can be build at once with
autoreconf -i
to generate configure script from configure.ac, Makefile.in from Makefile.am and install missing files.
./configure
to configure packages in subdirectories and generate Makefiles.
make
sudo make install
sudo ldconfig
to build and install all projects. The call to ldconfig is necessary to update the cache of fynamic linker to find dependency library.
Or you can build each part (collector, tool(s), external plugin(s)) separately.
The projects that depend on ipfixcol headers check the reltive path to base/header directory to use headers. When project is separated from the structure, it needs to have the headers installed (ipfixcol-devel package).
IPFIXcol can be used with Docker. See Docker howto.
IPFIXcol can also be installed using Ansible orchestration. See Ansible howto.
Each part of framework supports building rpm packages by running
make rpm
RPMs can be build only for specific parts, not the whole project.
Plugins and tools that uses FastBit file format need FasBit library installed. IPFIXcol framework uses it's own fork of FastBit library to keep compatibility.
IPFIXcol's FastBit library can be found here.
If you find any bug you can report it into issue tracker here on GitHub.
We are open to contributions to IPFIXcol which improve the stability and functionality of the collector. To keep the code readable and consistent, please adhere to the coding style document.
if you have some questions or if you just want to share your ideas about useful features etc., please use this forum.