Мне нужно собрать некоторую сетевую статистику для тестирования моего серверного приложения. Я пробовал много инструментов Linux, но ничего из того, что я нашел, не подходит для моих нужд.
В основном я хочу собрать некоторую статистику UDP (байты / time_interval, packets / time_interval, packets_loss), но только для двух конкретных хостов - например, я хочу получить статистику UDP по трафику, идущему с IP_A: PORT_A на IP_B: PORT_B.
Такие инструменты, как tcpdump / wirehark, могут легко сбрасывать такой трафик, но у меня проблемы с получением статистики, такой как временная скорость (см. Также сведения о пропускной способности), а системная статистика Linux дает мне номер для всего трафика.
Было бы лучше получить текстовый вывод, чтобы его можно было проанализировать и поместить в gnuplot. Мне удалось получить желаемую информацию из iptables, но, проанализировав вывод из
iptables -L -v
кажется довольно сложным.
Кто-нибудь знает, как я могу этого добиться?
заранее спасибо
Используйте собственные правила iptables:
iptables -I INPUT -p udp -s IP_A --sport PORT_A -d IP_B --dport PORT_B
iptables -I OUTPUT -p udp -s IP_B --sport PORT_B -d IP_A --dport PORT_A
А затем опрашивайте его через равные промежутки времени (каждую секунду? 5 секунд?), Отмечая изменения и выполняя соответствующие вычисления.