Экспорт Netflow-данных в формат Nfdump
Материал из BiTel WiKi
(Различия между версиями)
DDPaul (Обсуждение | вклад) (Новая страница: «<b>1.</b> Закинуть nfdump.jar в каталог lib коллектора. <b>2.</b> Привести netflow.sh к виду: <source lang="bash"> #!/bin/sh …») |
DDPaul (Обсуждение | вклад) |
||
(2 промежуточные версии не показаны) | |||
Строка 1: | Строка 1: | ||
- | <b>1.</b> | + | <b>1.</b> Вытащить файл nfdump.jar из архива [[Медиа:nfdump.zip]] и закинуть его в каталог lib коллектора. |
<b>2.</b> Привести netflow.sh к виду: | <b>2.</b> Привести netflow.sh к виду: | ||
Строка 43: | Строка 43: | ||
<b>4.</b> Экспорт выполняется командой: | <b>4.</b> Экспорт выполняется командой: | ||
<source lang="bash"> | <source lang="bash"> | ||
- | + | ./netflow.sh nfdump 1 2012-03-21-12 /tmp/nf-2012-03-21-12.dump | |
</source> | </source> | ||
Строка 56: | Строка 56: | ||
<b>5.</b> Проверка и просмотр лога: | <b>5.</b> Проверка и просмотр лога: | ||
<source lang="bash"> | <source lang="bash"> | ||
- | nfdump -r / | + | nfdump -r /tmp/nf-2012-03-21-12.dump |
</source> | </source> |
Текущая версия на 08:27, 22 марта 2012
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. Экспорт выполняется командой:
./netflow.sh nfdump 1 2012-03-21-12 /tmp/nf-2012-03-21-12.dump
Параметры скрипта netflow.sh:
- Действие: nfdump.
- Код источника Netflow.
- Час в формате "yyyy-mm-dd-hh", за который нужно получить данные.
- Файл, куда записать лог в формате Nfdump.
Вобщем, аргументы как у netflow.sh save, только вместо "save" - "nfdump".
5. Проверка и просмотр лога:
nfdump -r /tmp/nf-2012-03-21-12.dump