Търсения в Netflow, част 3

Изтриването на виртуалната машина с анализатора NetFlow послужи като още едно доказателство, че работи само кръг. Причините всъщност са доста забавни. Не е забавна само възможността за загуба на данни. В тази връзка реших да създам нова тема, в която да споделя моите изследвания и да си запазя методите за решаване на проблема за себе си.

Задача: Генериране на сложен, но четим за всеки отчет за трафика за определени периоди в контекста на различни услуги/източници на данни.

Необработени данни: Необработени данни, събрани от Flow-Tools.

Откъде да започна?

Ето пример за стандартен изход на програмата за поточен печат:

Сега нека да разгледаме позицията на пакета в общата графика:

В графична форма изглежда така:

netflow
Като цяло трябва да приведем нашата графика в тази форма. Само трябва да групираме едни и същи пакети и да ги обобщим. Основната особеност тук е, че времевите интервали са различни. Освен това прехвърлянето на данни може да започне по всяко време и във всеки интервал от време. Тоест, трябва да изчислим колко байта са прехвърлени в първия интервал, да разберем и изчислим колко са прехвърлени средно във всеки следващ интервал и след това да изчислим колко са били в „опашката“. Опашката също е вероятно да завърши някъде по средата на интервала.

От думи към дела

Подготовка на филтъра за разтоварване и запазване с име nflow.acl:

Създаване на Perl скрипт.

На моя двуядрен виртуален сървър с 4 GB RAM скриптът работи за около половин час. Данните, заети при обработката на филтрите по обобщение за периода 08:00-21:00 часа, заеха около 3 GB RAM. Така че скриптът не е за слаби лаптопи. Този скрипт не е съвършен. Може да се преработи за по-слабитемашини. За да направите това, е необходимо не всички данни да бъдат въведени в анализатора, а един файл със сурови данни. Направих това, защото ми беше разрешено захранване и имаше по-малко цикли на четене от HDD - бавен ресурс в сравнение с RAM.

Резултат от изпълнението на скрипта:

Извеждане на данни

Най-лесният начин за показване на данни: 1) Копирайте данните в MS-Word и ги преобразувайте в таблица

netflow

2) Копирайте таблицата в MS-Excel и преобразувайте обема в скорост. Направих го на отделен лист за удобство

netflow

3) Сега можем да начертаем графика. Направих това:

търсения

Знаем малко и за Shell.

Ако имате слаб сървър и искате да получите малко данни, ето примерна олекотена версия за получаване на обобщени отчети за деня.

Резултатът от този скрипт е малко по-различен от изхода на Perl скрипт. Данните ще бъдат подредени в една колона. Въпреки това, в MSWord можете просто да конвертирате в таблица с разделител „знак за абзац“.

На следващата сутрин сървърът ми беше изтрит и инсталиран Windows. Защото Perl и FreeBSD не са истинска вяра. И ние така чрез бивше дърво и управляваме данните. Но по нов начин.