Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| en:ipfixreceiver [2017/03/09 09:33] – created aalekseenko | en:ipfixreceiver [2019/02/13 16:32] (current) – removed lexx26 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== IPFIX receiver utility ====== | ||
| - | ===== Introduction ===== | ||
| - | IPFIX receiver is used for receiving an IPFIX (Netflow 10) stream from DPI devices and store the stream to a local file. The stored file can be processed as a text file any unix utilities. | ||
| - | |||
| - | ===== Installation and upgrade ===== | ||
| - | - use VAS Experts repositore according to p.1 of the [[dpi_10_update|DPI installation instruction]]. | ||
| - |   - install ipfixreceiver: | ||
| - |   - check changes in configuration files for installed version look at part " | ||
| - | |||
| - | ===== Important changes in version 1.0.3 vs 1.0.2 ===== | ||
| - |   - chenged configuration file in part of IP address transformation, | ||
| - | - saving data now in separate process, important if DPI has more than 25 000 session per second, it can load upto 2 proccesor cores. In DEBUG loging added check records to controll save processing\\ (a)cnt=NNNNN - send NNNNN buffer\\ (b)cnt=YYYYY - saved YYYYY buffer. | ||
| - |   - buffer_size parameter added - size of buffer to interchange between receiver and saver processes, use it in [dump] section, default value - 100000 records (for 20Gbe or 25 000 seesion per second). If the buffer size is not reached then 30sec timeout is used to push buffer into saver process.  | ||
| - | |||
| - | ===== Supplied files ===== | ||
| - |   - configuration expamples: | ||
| - | / | ||
| - | / | ||
| - |   - programm files directory: | ||
| - |   - additional files:\\ < | ||
| - |   - link to executable: | ||
| - | |||
| - | ===== Дополнительные настройки ОС ===== | ||
| - |   - настройте iptables для приема внешних данных\\ Для работы ipfixreceiver' | ||
| - | protocol=tcp | ||
| - | host=212.12.11.10 | ||
| - | port=1500</ | ||
| - |   - настройте ротацию логов\\ Пример ротации для лог файла / | ||
| - | / | ||
| - | rotate 5 | ||
| - | missingok | ||
| - | notifempty | ||
| - | compress | ||
| - | size 10M | ||
| - | daily | ||
| - | copytruncate | ||
| - | nocreate | ||
| - | postrotate | ||
| - | endscript | ||
| - | }</ | ||
| - |   - Настройте удаление старых файлов. Например удаление старых архивов (более 31 дня) с записями о сессиях запакованных gzip:\\ < | ||
| - | |||
| - | ===== Параметры запуска программы ===== | ||
| - | Утилита ipfixreceiver имеет следующие параметры запуска : | ||
| - | < | ||
| - | где | ||
| - | start - запуск в режиме сервиса | ||
| - | stop - останов сервиса | ||
| - | state - состояние работы сервиса | ||
| - | restart - перезапуск сервиса | ||
| - | -v - вывести информацию о версии | ||
| - | -f <config file> - указать файл конфигурации для запуска сервиса | ||
| - | |||
| - | Пример: | ||
| - |   ipfixreceiver start -f / | ||
| - | </ | ||
| - | ===== Конфигурация ===== | ||
| - | |||
| - | По умолчанию используется файл конфигурации / | ||
| - | : | ||
| - | |||
| - | ==== Служебные разделы ==== | ||
| - | - loggers - определяет используемые лог идентификаторы | ||
| - | - handlers - определяет используемые обработчики для сохранения лога | ||
| - | - formatters - определяет используемые форматы для лога | ||
| - | |||
| - | ==== logger_root ==== | ||
| - |   - level - определяет уровень логирования (верхний уровень)\\ Возможные значения:< | ||
| - | CRITICAL  | ||
| - | ERROR - включая ошибки | ||
| - | WARNING  | ||
| - | INFO - включая информацию | ||
| - | DEBUG - включая отладочные | ||
| - | NOTSET  | ||
| - | </ | ||
| - |   - handlers - используемые обработчики сообщений\\ Пример: | ||
| - | ==== handler_ipfixreceiverlogger ==== | ||
| - |   - class - класс обработчика\\ Пример: | ||
| - |   - level - уровень сообщений < | ||
| - |   - formatter - наименование формата сообщений< | ||
| - |   - args - параметры обработчика < | ||
| - | ==== formatter_ipfixreceiverlogger ==== | ||
| - |   - format - описание формата сообщения\\ Пример: | ||
| - | где | ||
| - | %(name)s  | ||
| - | %(levelname)s - уровень сообщения (' | ||
| - | %(asctime)s  | ||
| - | %(message)s  | ||
| - | </ | ||
| - |   - datefmt - описание формата даты\\ Пример: | ||
| - | ==== connect ==== | ||
| - |   - protocol - протокол (tcp или udp). < | ||
| - |   - host - IP или имя сервера. < | ||
| - |   - port - номер порта. < | ||
| - | ==== dump ==== | ||
| - |   - rotate_minutes - период в минутах, | ||
| - |   - processcmd - команда которая будет запущена по окончании ротации файла, параметр имя файла с путем к нему.< | ||
| - |   - dumpfiledir - директория куда будут сохраняться файлы с принятыми данными. < | ||
| - |   - buffer_size - размер буфера обмена между процессом приема и записи в файл, по умолчанию значение параметра 100000 записей (ориентировано на 20Гбит трафика или 25 000 сессий в сек). Если к-во сессий в секунду значительно меньше, | ||
| - | |||
| - | ==== InfoModel ==== | ||
| - | Блок описывает получаемые данные по IPFIX протоколу. | ||
| - |   - InfoElements - параметр с описанием элементов информационной модели для IPFIX < | ||
| - |                 packetDeltaCount,  | ||
| - |                 protocolIdentifier,  | ||
| - |                 session_id,  | ||
| - | где, | ||
| - | session_id - наименование поля из описания IPFIX см. разделы | ||
| - | 43823 - уникальный номер организации (enterprise number) | ||
| - | 1 - уникальный номер поля | ||
| - | UINT64 - тип поля | ||
| - | True - использовать обратный порядок байт (endian). Значения - True или пусто. | ||
| - | </ | ||
| - | Типы полей: | ||
| - | ^ Type      ^ Length  | ||
| - | | OCTET_ARRAY  | ||
| - | | UINT8          | 1          | unsigned8  | ||
| - | | UINT16  | ||
| - | | UINT32  | ||
| - | | UINT64  | ||
| - | | INT8           | 1          | signed8  | ||
| - | | INT16          | 2          | signed16  | ||
| - | | INT32          | 4          | signed32  | ||
| - | | INT64          | 8          | signed64  | ||
| - | | FLOAT32  | ||
| - | | FLOAT64  | ||
| - | | BOOL           | 1          | boolean  | ||
| - | | MAC_ADDR  | ||
| - | | STRING  | ||
| - | | SECONDS  | ||
| - | | MILLISECONDS  | ||
| - | | MICROSECONDS  | ||
| - | | NANOSECONDS  | ||
| - | | IP4ADDR  | ||
| - | | IP6ADDR  | ||
| - | |||
| - | Наименование полей и описание можно взять по ссылкам: | ||
| - | - [[statistics_ipfix|Шаблон экспорта Netflow в формате IPFIX]] | ||
| - | - [[li_ipfix|Шаблоны экспорта clickstream и SIP]] | ||
| - | |||
| - | Дополнительная информация: | ||
| - | [[https:// | ||
| - | ==== ExportModel ==== | ||
| - | определяет параметры модели для экспорта, | ||
| - |   - Mode - тип используемого экспорта < | ||
| - | ==== ExportModelFile ==== | ||
| - | Описание модели экспорта File. | ||
| - |   - Delimiter разделитель полей в строке ( \t - табуляция, | ||
| - |   - ExportElements - описание полей которые будут сохранены в файл. < | ||
| - | login | ||
| - |                   | ||
| - |                   | ||
| - | host, decodehost | ||
| - | path, decodepath | ||
| - |                   | ||
| - |                   | ||
| - | где поля в каждой строке: | ||
| - | имя - наименование поля из информационной модели [InfoModel] (login, session_id и т.п.) | ||
| - | обработчик - процедура обработки поля перед выводом | ||
| - |                 | ||
| - |                 | ||
| - |                 | ||
| - |                 | ||
| - |                 | ||
| - |                 | ||
| - |   формат - описание формата для seconds, milliseconds.  | ||
| - |             | ||
| - |             | ||
| - | </ | ||
| - | ===== Проблемы и решения ===== | ||
| - |   - как получить версию утилиты? | ||
| - | - можно ли на один порт отправлять IPFIX потоки с разных DPI?\\ Да. Единственное в записываемом потоке их будет не различить. | ||
| - |   - как понять, | ||
| - |   - все проверено, | ||
| - |   - с DPI идет большое количество сессий (более 2 млн сессий/ | ||