Экспорт Netflow-данных в формат Nfdump

Материал из BiTel WiKi

Перейти к: навигация, поиск

1. Вытащить файл nfdump.jar из архива Медиа:nfdump.zip и закинуть его в каталог lib коллектора.

2. Привести netflow.sh к виду:

#!/bin/sh
 
cd ${0%${0##*/}}.
 
if [ -z "$JAVA_HOME" ]; then
  echo "The JAVA_HOME environment variable is not defined"
  echo "This environment variable is needed to run this program"
  exit 1
fi
 
BGIPN_NETFLOW_HOME=.
CLASSPATH=${BGIPN_NETFLOW_HOME}|>:${BGIPN_NETFLOW_HOME}|>/lib/*
 
if [ "$1" = "start" ]; then
    nohup  ${JAVA_HOME}|>/bin/java -Dapp.name=BGIPNNetflowCollector -Dlog4j.configuration=log4j-collector.xml -Dlog.dir.path=log/ -Dnetworkaddress.cache.ttl=3600 -Xmx256m -Djava.awt.headless=true -cp ${CLASSPATH}|>  bitel.billing.server.netflow.ipn.Collector $1 $2 $3   > ./log/netflow.out 2>&1 &
elif [ "$1" == "nfdump" ]; then
    ${JAVA_HOME}|>/bin/java -Dnetworkaddress.cache.ttl=3600 -Xmx256m -Djava.awt.headless=true -cp ${CLASSPATH}|>  ru.maestro.billing.server.netflow.Nfdump $2 $3 $4
else
    ${JAVA_HOME}|>/bin/java -Dnetworkaddress.cache.ttl=3600 -Xmx256m -Djava.awt.headless=true -cp ${CLASSPATH}|>  bitel.billing.server.netflow.ipn.Collector $1 $2 $3 $4 $5
fi

Другими словами, при 1-м аргументе = "nfdump" запускается класс ru.maestro.billing.server.netflow.Nfdump, куда передаются аргументы 2, 3, 4.

3. Добавить в конфигурацию коллектора (файл netflow_ipn.properties):

# *********************************************************
# * Выгрузка логов в другие форматы (Nfdump, flow-tools)  *
# *********************************************************
# Размер буфера в байтах под хранение одного блока данных (чанка) Nfdump.
# Должен быть не менее datalog.flow.chunk.size, если не используется компрессия.
# Если же биллинг хранит сжатые логи (datalog.flow.compression.type=1), то размер нужно увеличить примерно на 50%.
# В целом, размер в 1МБайт с гарантией подойдет для дефолтной конфигурации коллектора.
nfdump.buffer.size=1048576

Рекомендации по подбору размера буфера под чанк приведены в комментарии.

4. Экспорт выполняется командой:

/opt/BGBillingServer/Netflow/netflow.sh nfdump 1 2012-03-21-12 /share/bgbilling/log/nf-2012-03-21-12.dump

Параметры скрипта netflow.sh:

  1. Действие: nfdump.
  2. Код источника Netflow.
  3. Час в формате "yyyy-mm-dd-hh", за который нужно получить данные.
  4. Файл, куда записать лог в формате Nfdump.

Вобщем, аргументы как у netflow.sh save, только вместо "save" - "nfdump".

5. Проверка и просмотр лога:

nfdump -r /share/bgbilling/log/nf-2012-03-21-12.dump
Личные инструменты