Как собрать полную статистику использования сети на freebsd роутере?

grep определен для сопоставления, сохранения или отбрасывания строк, поэтому он должен прочитать всю строку перед выполнением сопоставления; это не может выполнить то, что вы хотите.

Сначала вам нужно проверить, выполняет ли команда это эхо-вывод входных символов один за другим в конвейер. Стандартные программы C (а иногда и другие программы, использующие C stdio) по умолчанию используют строчную буферизацию, когда stdout является «интерактивным устройством», как определено реализацией, но в противном случае полная буферизация, а pipe обычно не определяется как интерактивный. Ваша команда уже ведет себя необычно на tty, но проверьте, что она по-прежнему ведет себя так на конвейере с помощью команды command | dd bs = 1 .

Если это не сработает, вам понадобится программа, которая устанавливает псевдо-tty (pty) для команды , например урезанный сценарий , предложенный Марк Плотник.

Если эхо в канал работает на стороне команды , все, что вам нужно, это что-то с правой стороны канала, которое не дожидается полной строки. Это может сделать простая программа на C, например:

#include <stdio.h>
int main (void) {
  setvbuf (stdout, NULL, _IONBF, 0);
  int c;
  while( (c = getchar()) != EOF ){
    int sel = c != '%';
    for( ; c != '\n' && c != EOF; c = getchar() ) 
      if( sel ) putchar (c);
    if( sel ) putchar ('\n');
  }
}

Или, если у вас есть bash - а встроенные устройства IMLE, как правило, НЕ используют - попробуйте сценарий, содержащий

IFS=$'\n'
while read -rn1 c; do y=true; [[ "$c" == "%" ]] && y=false;
  while ! [[ "$c" == "" ]]; do $y && printf "%c" "$c"; read -rn1 c || exit; done
  $y && printf "\n"; done
3
02.12.2016, 17:09
1 ответ

Для получения деталей сетевых транзакций есть реализация генератора Netflow для FreeBSD или Linux:

ng_netflow

НАЗВАНИЕ ng_netflow - реализация NetFlow от Cisco

ОПИСАНИЕ Узел ng_netflow реализует протокол экспорта NetFlow от Cisco на маршрутизаторе под управлением FreeBSD. Узел ng_netflow прослушивает входящий трафик и идентифицирует в нем уникальные потоки. Потоки различаются по конечным точкам IP-адресами, номерами портов TCP/UDP, ToS и входным интерфейсом. Просроченные потоки экспортируются из узла в UDP-датаграммы NetFlow версии 5/9.

Что касается самого NetFlow:

NetFlow - это сетевой протокол, разработанный компанией Cisco для сбора информации об IP-трафике и мониторинга сетевого трафика. трафика и мониторинга сетевого трафика. Анализируя поток данных, можно построить картину потока и объема сетевого трафика.

также rfc 3954 - NetFlow Services Export Version 9

Для хранения данных Netflow вам также понадобится так называемый сервер-коллектор. Это может быть либо Linux, либо FreeBSD. Он не должен быть установлен на самом маршрутизаторе. Одной из таких известных реализаций является nfsen

NfSen - это графический веб-интерфейс для инструментов nfdump netflow.

NfSen позволяет вам:
- Отображать данные netflow: Потоки, пакеты и байты, используя RRD (Round Robin Database).
- Легко перемещаться по данным нетфлоу.
- Обработка данных нетфлоу в течение заданного промежутка времени.
- Создание исторических и непрерывных профилей.
- Устанавливать предупреждения, основанные на различных условиях.
- Написание собственных плагинов для обработки данных netflow на регулярной основе.

nfsen2

Имейте в виду, что, в зависимости от доступной пропускной способности, генерация NetFlows может быть обременительной для CPU. Известной стратегией в некоторых случаях является создание зеркала порта коммутатора маршрутизатора и использование другой машины для этих операций.

После определенного порога пропускной способности, вероятно, имеет смысл приобрести профессиональный маршрутизатор, если генерация NetFlows является обязательным требованием.

В качестве последнего предупреждения, при наличии NAT, NetFlows должны быть захвачены во внутреннем/LAN интерфейсе, так как в противном случае вы потеряете представление о том, кто что делает.

Я использую около 100 ГБ данных за 5-6 месяцев трафика, используя NfSen, собирая данные NetFlow с оборудования Cisco, ваш пробег может отличаться.

7
27.01.2020, 21:12

Теги

Похожие вопросы