Bagaimana cara mendapatkan log jaringan linux?

12

Kami memiliki server java yang berjalan di linux di port tertentu yang menerima koneksi terus-menerus untuk ribuan dan ribuan pengguna. Baru-baru ini klien kami tidak dapat terhubung dengan kesalahan waktu habis. Kami menduga lalu lintas terlalu tinggi tetapi log java kami sebenarnya menunjukkan bahwa tidak banyak yang terhubung dalam per detik.

Kami menduga bahwa mungkinkah terlalu banyak yang mencoba pada saat yang sama dan mereka pada dasarnya dijatuhkan di level OS dan oleh karena itu program java tidak pernah benar-benar mendapat kesempatan untuk menerima koneksi? Apakah ada semacam log in linux yang dapat menunjukkan seseorang mencoba menabrak soket?

erotsppa
sumber

Jawaban:

7

iptables -I INPUT -p tcp --dport some_port -j LOGkemudian
tail -f /var/log/messages
Setelah itu, untuk melihat berapa banyak data yang terkena aturan itu: iptables -L -n -v
Atau Anda bisa menjalankan tcpdump dan mengeluarkan port.

James L.
sumber
2
+1. Sebuah modifikasi sedikit mungkin bekerja lebih baik untuk menangkap hanya upaya sambungan baru: iptables -I INPUT -p tcp --dport some_port -m state --state NEW. Perhatikan bahwa kecuali Anda tertarik pada perincian setiap upaya koneksi, menghilangkan -j LOGmenghindari spam dari file log sistem dengan banyak data yang tidak dibutuhkan.
Steven Senin
3

Ketika saya memiliki masalah jaringan yang benar-benar buruk, saya cenderung menjalankan wireshark . Bagi saya, tidak ada alat diagnostik jaringan yang lebih baik ketika saya harus turun ke rincian seluk beluk. Dan jangan khawatir jika Anda tidak dapat menginstalnya di sumber atau kotak tujuan; Anda dapat menjalankan tcpdump -wuntuk menulis data paket ke file saat mulai dan / atau titik akhir, dan mengumpankan file ke wireshark di kotak lain sesuai keinginan Anda.

MadHatter
sumber
Yup, saya akan merekomendasikan menempatkan filter di atasnya sepertitcpdump -nS dst port <some port>
gravyface
0

Akan lebih baik untuk melihat secara tepat apa yang diperoleh benang Java Anda pada tingkat soket. Pada saat yang sama Anda ingin menghubungkannya dengan info jaringan OS. Lihatlah AppFirst. Mereka dapat melakukan hal semacam ini.

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

menunjukkan koneksi yang sedang dibangun.

Bandingkan ini dengan ulimitpengaturan aktif Anda , dan tentu saja dengan jumlah koneksi maksimal yang bisa ditangani oleh aplikasi java Anda.

sja
sumber