Мы запускаем серверный процесс, который имеет несколько активных портов. Я хотел бы знать, какая исходящая передача данных связана с каждым портом. Я хотел бы увидеть 24-часовой отчет, например:
- порт 30000: 2.4G
- порт 30001: 1.2G
- порт 30002: 2.3G
Есть ли способ сделать это?
решение1
Вы можете использоватьiftopдля сбора данных сетевого трафика по каждому порту.
iftop
имеет текстовый режим ( iftop -t
), который может быть полезен - см.iftop - как сгенерировать текстовый файл с его выводом?
решение2
В принципе вам нужноПоток данных, передающихся по сетиустановка - серия зондов на хосте, которые будут собирать данные о проходящем трафике и затем передавать их на коллектор (который может находиться или не находиться на том же хосте), из которого вы можете строить свои статистические отчеты. На момент написания этой статьи наиболее современной и функциональной платформой netflow являетсяnfdump. Поскольку вы используете Linux, рекомендуемые зонды будут следующими:ipt-netflow.
Также стоит упомянуть ряд производных/альтернатив, например:sFlow, но наиболее простым подходом будет использование Netflow.