Buenas noches,
Creo que mi pregunta va a ser difícil de contestar, pero bueno, veamos qué se cuece.
La situación es que tenemo una máquina en producción (a partir de ahora A) que generan bastantes logs diarios. Mediante un programita que nos hemos montado, enviamos a través de red estos logs en real time a una máquina (a partir de ahora B) que tenemos para parsear logs, generar alarmas... etc...
El caso, es que entre las máquinas A y B en teoría sólo debería de haber una conexión TCP ESTABLISHED continuamente. Sin embargo, en la máquina B, ahora existen cerca de 400 conexiones ESTABLISHED con A, y sin embargo A dice que sólo tiene 1 conexión ESTABLISHED con B. ¿Divertido eh?
esnifando tráfico efectivamente A dice la realidad, porque en el resto de conexiones ESTABLISHED de B no se ve ni un sólo paquete.
¿Sobran unas cuantas verdad? xD Estas máquinas están separadas en distintas sedes, entre Firewalls, F5... y demás arquitectura que seguramente desconozca.
He probado a utilizar tcpkill (Por cierto, una gran utilidad para otros casos) para cepillarme las conexiones que sé que sobran, pero no sirve, porque utiliza un paquete RST para cerrar la conexión, y este paquete para generarse necesita que al menos haya algún intercambio de paquetes (Inexistente).
en /proc/[PID]/fd/ de la máquina B están los 400 sockets "abiertos"... he probado un rm a ver si colaba, pero nada...xD.
El problema es que cada hora en A se reinician las conexiones (Para garantizar que no se queda fastidiado el proceso de A) y se van generando cada hora nuevas conexiones en B. Sin embargo parece que B no se entera de que se cierran y las deja ESTABLISHED.
¿Sabéis alguna manera de cerrar los sockets que se han quedado inútilmente abiertos?
Gracias a todos ;)
Salu2
Etiquetas:
Compartir
-
▶ Responde a esto