Экспорт Netflow-данных в формат Nfdump
Материал из BiTel WiKi
Версия от 10:49, 21 марта 2012; DDPaul (Обсуждение | вклад)
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:
- Действие: nfdump.
- Код источника Netflow.
- Час в формате "yyyy-mm-dd-hh", за который нужно получить данные.
- Файл, куда записать лог в формате Nfdump.
Вобщем, аргументы как у netflow.sh save, только вместо "save" - "nfdump".
5. Проверка и просмотр лога:
nfdump -r /share/bgbilling/log/nf-2012-03-21-12.dump