Як отримати мережевий журнал Linux?


14

У нас є Java-сервер, який працює в Linux на певному порті, який приймає стійкі з'єднання для тисяч і тисяч користувачів. Останнім часом наші клієнти не можуть підключитися до помилки тайм-ауту. Ми підозрюємо, що трафік стає занадто високим, але наш журнал Java фактично показує, що не багато підключаються за секунду.

Ми підозрюємо, що це може бути, що надто багато намагаються одночасно, і вони в основному опускаються на рівні ОС, і тому програма java ніколи не отримує шансу прийняти з'єднання? Чи є якийсь журнал в Linux, який може показувати, хто намагається вдарити сокет?

Відповіді:


8

iptables -I INPUT -p tcp --dport some_port -j LOGпотім
tail -f /var/log/messages
, щоб побачити, на скільки даних потрапило це правило: iptables -L -n -v
Або ви можете запустити tcpdump та виконувати порти.


2
+1. Невелика модифікація може працювати краще , щоб зловити тільки нові спроби підключення: iptables -I INPUT -p tcp --dport some_port -m state --state NEW. Зауважте, що якщо вас не цікавлять деталі кожної спроби підключення, пропускання не -j LOGдозволяє спамувати файл системного журналу з великою кількістю непотрібних даних.
Стівен, понеділок,

3

Коли у мене справді неприємні проблеми з мережею, я, як правило, запускаю проводку . Для мене немає кращого інструменту діагностики мережі, коли мені доведеться переходити до деталей, що містять грязі. І не хвилюйтеся, якщо ви не можете встановити його ні в джерельному, ні в кінцевому вікні; Ви можете запустити, tcpdump -wщоб записати пакетні дані у файл на стартовій та / або кінцевій точці, а файл подати до проводів в іншому полі за Вашою зручністю.


Так, я б рекомендував поставити на нього фільтр, якtcpdump -nS dst port <some port>
gravyface

0

Було б добре подивитися точно, що ваші потоки Java отримують на рівні сокета. У той же час ви хочете співвіднести це з інформацією про мережу ОС. Погляньте на AppFirst. Вони можуть робити таку річ.


0
watch -n1 -d "netstat -an | grep ESTABLISHED | wc -l"

показує встановлені на даний момент з'єднання.

Порівняйте це з активними ulimitналаштуваннями, і звичайно з максимальною кількістю з'єднань, якими може працювати ваша програма java.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.