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 млн сессий/ |