Как можно собирать трафик (traffic sniffer) с удаленных linux серверов?

Посоветуйте оптимальное решение проблемы.

Есть группа linux серверов с запущенным приложением, входящий трафик равномерно распределяется между ними внешним tcp load balancer'ом (LB пропускает трафик сквозь себя, source IP при этом сохраняется).
Периодически для диагностики возникает необходимость собрать дампы трафика определённого клиента (по известному IP адресу), в идеале - смотреть на этот трафик в реальном времени через wireshark на windows рабочей станции.
Возможности собирать трафик через SPAN на сетевом оборудовании у меня, к сожалению, нет. Задачу нужно решать только софтом на серверах.

Штатное решение (запускаем wireshark на всех хостах, собираем дамп, сливаем на одну машину, объединяем в один файл и открываем в wireshark) крайне трудозатратно и позволяет смотреть данные только в offline'е.

Единственное, что удалось найти для сбора трафика с удалённых серверов - rpcapd, но это совсем не то, собирать сразу с десятка серверов так не получится.

В качестве временного решения-костыля написал простейшую утилитку, которая запускается на серверах, собирает нужный трафик (на базе libpcap), инкапсулирует его в TZSP/ERSPAN и отправляет его на заданный хост по UDP.

Проблему это решило, но остаётся ощущение, что есть что-то готовое и правильное решение моей задачи.
Кто сталкивался с подобной задачей? Как вы её решали?
  • Вопрос задан
  • 1336 просмотров
Пригласить эксперта
Ответы на вопрос 3
zolt85
@zolt85
Программист
Я вообще не спец в этом деле, но попробовал бы следующее:
- заточил бы Вашу утилиту, чтоб она писала все необходимое в текстовый файл
- на каждом целевом сервере ставим logstash, натравливаем его на этот самый текстовый файл
- где-то у себя поднимаем Elasticsearch + Kibana
- говорим логстэшам на серверах, отправлять данные в наш elasticsearch
- в кибане настраиваем красивые диаграммы/графики/таблички
- ???
- PROFIT

Так я, например, собираю статистику http запросов к своему приложению с серверов заказчика.

Как все это дело настроить/установить замечательно описано на оф. сайте Elasticsearch
Ответ написан
Berezoff
@Berezoff
Сисадмин-виндузятник, немного линуксятник
Посмотрите в сторону NetFlow-протокола, вам должно помочь
Ответ написан
@yaror
10 лет в мобильном телекоме
Насчёт rpcapd...
Точно ли при использовании rpcapd дамп не снять с нескольких источников?

В man tshark есть такое:
-i | -
Set the name of the network interface or pipe to use for live packet capture.
...
This option can occur multiple times. When capturing from multiple interfaces, the capture file will be saved in pcap-ng format.


Что, если попробовать сделать так?
tshark -i rpcap://host1/eth0 -i rpcap://host2/eth0 -f "какой-то фильтр"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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