Comprobar si hay pérdida de paquetes de red entre servidores

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email

El equipo de aplicaciones nos reportó una incidencia puntual de pérdida de comunicaciones entre la aplicación y el servidor de base de datos pero a nivel de sistema operativo no había errores en los logs, ni errores en las tarjetas de red (ethtool -S eth0), hice una prueba de ping y tampoco se perdían paquetes.

Mi sensación era que hubo algún corte de red puntual en un elemento de comunicaciones, sin más.

No obstante, para comprobar si se pierden paquetes periódicamente, monté un script que guarda la información de 20 peticiones de ping cada minuto en un fichero de log con la fecha en el nombre del fichero.

Script de envíos periódicos de ping

El código fuente del script es el siguiente:

[root admsys]# cat ping.sh
#!/usr/bin/sh

PATH=/usr/bin

LOG=/planific/log/ping_$(date +%Y%m%d).log

echo $(date) >> $LOG
/usr/bin/ping -c 20 10.48.40.76 >> $LOG
[root admsys]#

La línea del cron que lo ejecuta cada minuto es:

[root ~]# crontab -l |grep -i ping
# D.M.P. 08/04/2019 - Pruebas de ping por incidencia de comunicaciones - RE: Caiguda BBDD dimarts passat i avui
* * * * * /planific/bin/admsys/ping.sh >/dev/null 2>&1
[root ~]#

En la información que recoge tenemos la fecha, la hora, el resultado de cada petición de ping y el número de paquetes de red perdidos:

[root ~]# tail -26 /planific/log/ping_20190408.log
Mon Apr 8 15:03:01 CEST 2019
PING 10.48.40.76 (10.48.40.76) 56(84) bytes of data.
64 bytes from 10.48.40.76: icmp_seq=1 ttl=64 time=0.142 ms
64 bytes from 10.48.40.76: icmp_seq=2 ttl=64 time=0.170 ms
64 bytes from 10.48.40.76: icmp_seq=3 ttl=64 time=0.180 ms
64 bytes from 10.48.40.76: icmp_seq=4 ttl=64 time=0.136 ms
64 bytes from 10.48.40.76: icmp_seq=5 ttl=64 time=0.116 ms
64 bytes from 10.48.40.76: icmp_seq=6 ttl=64 time=0.155 ms
64 bytes from 10.48.40.76: icmp_seq=7 ttl=64 time=0.158 ms
64 bytes from 10.48.40.76: icmp_seq=8 ttl=64 time=0.114 ms
64 bytes from 10.48.40.76: icmp_seq=9 ttl=64 time=0.119 ms
64 bytes from 10.48.40.76: icmp_seq=10 ttl=64 time=0.135 ms
64 bytes from 10.48.40.76: icmp_seq=11 ttl=64 time=0.139 ms
64 bytes from 10.48.40.76: icmp_seq=12 ttl=64 time=0.151 ms
64 bytes from 10.48.40.76: icmp_seq=13 ttl=64 time=0.138 ms
64 bytes from 10.48.40.76: icmp_seq=14 ttl=64 time=0.143 ms
64 bytes from 10.48.40.76: icmp_seq=15 ttl=64 time=0.132 ms
64 bytes from 10.48.40.76: icmp_seq=16 ttl=64 time=0.118 ms
64 bytes from 10.48.40.76: icmp_seq=17 ttl=64 time=0.129 ms
64 bytes from 10.48.40.76: icmp_seq=18 ttl=64 time=0.153 ms
64 bytes from 10.48.40.76: icmp_seq=19 ttl=64 time=0.140 ms
64 bytes from 10.48.40.76: icmp_seq=20 ttl=64 time=0.129 ms

--- 10.48.40.76 ping statistics ---
20 packets transmitted, 20 received, 0% packet loss, time 19000ms
rtt min/avg/max/mdev = 0.114/0.139/0.180/0.023 ms
[root ~]#

Por último, configuré un fichero de rotación de logs (/etc/logrotate.d) para que cada mes hiciese limpieza de los ficheros de ping que se van generando para que no llene el filesyste:

[root ~]# tail -8 /etc/logrotate.d/sistemas_unix
/planific/log/ping*.log {
   monthly
   copytruncate
   missingok
   postrotate
        find /planific/log -name "ping*" -mtime +30 -exec rm {} \;
   endscript
}
[root ~]#

¿Te ha gustado? ¡Compártelo!

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email

SUSCRÍBETE A PUERTO53

Recibe un email periódico con los artículos más interesantes de Puerto53.com

Antes de suscribirte lee los términos y condiciones. Gracias.

Contenido Relacionado

Artículos Recientes

Deja un comentario

About Author