Socket timeout after 10 seconds

Résolu/Fermé
Ben' Messages postés 877 Date d'inscription samedi 26 septembre 2009 Statut Membre Dernière intervention 4 août 2017 - Modifié par Ben' le 8/08/2016 à 14:23
mamiemando Messages postés 33073 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 avril 2024 - 16 sept. 2016 à 10:22
Bonjour!

Je viens solliciter vos expertises afin de répondre à mon problème lié à la supervision d'une de mes bécanes. En effet, mon serveur me répond: CHECK_Socket timeout after 10 seconds. Autant dire que c'est pas sexy. Il faut savoir que c'est arrivé lorsque j'ai redémarrer le serveur qui est une VM sous HyperV

Ci-dessous mes logs et ma configuration Nagios sur mon client:

Le célèbre NRPE.conf:
root# cat /etc/nagios/nrpe.cfg
log_facility=@log_facility@

pid_file=/var/run/nrpe.pid

server_port=5666

nrpe_user=@nrpe_user@

nrpe_group=@nrpe_group@

allowed_hosts=127.0.0.1,IP-Nagios

dont_blame_nrpe=1

debug=0

command_timeout=60

connection_timeout=300

command[check_disk]=/usr/lib/nagios/plugins/check_disk -w 80 -c 90 /dev/
command[check_procs]=/usr/lib/nagios/plugins/check_procs
command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10
command[check_load]=/usr/lib/nagios/plugins/check_load -w 80 -c 90
command[check_swap]=/usr/lib/nagios/plugins/check_swap -w 90% -c 80%
command[check_mem]=/usr/lib/nagios/plugins/check_memuse.sh -w 80 -c 95



Pour vous donnez ma version Linux:
root# uname -a
Linux g*.*.* 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux


Pour vous montrer les droits appliquer sur les fichiers de conf Nagios:
root# ls -lr /etc/nagios/
total 100
-rw-r--r-- 1 nagios nagios   420 août   3 09:00 nrpe_local.cfg
drwxr-xr-x 2 nagios nagios  4096 janv. 13  2014 nrpe.d
-rw-r--r-- 1 nagios nagios 87268 août   3 10:39 nrpe.cfg.save
-rw-r--r-- 1 nagios nagios   660 août   8 13:54 nrpe.cfg


Et là ma plus grosse interrogation, il s'agit bien de données réseaux, mais très franchement je n'ai jamais eu à faire à un syslog pareil:
root# tail -f /var/log/syslog
Aug 8 14:10:54 g***-** kernel: [3914.834891] [UFW BLOCK] IN=eth0 OUT= MAC=******************************** SRC=IP_Nagios DST=IP_ServeurLocal LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=29974 DF PROTO=TCP SPT=43704 DPT=5666 WINDOW=5840 RED=0x00 SYN URGP=0


Le daemon:
root# ps -aux | grep nrpe
****** 34511  0.0  0.0  23332  1104 ?        Ss   août03   0:10 /usr/sbin/nrpe -c /etc/nagios/nrpe.cfg -d


Puis le port:
root# netstat -an | grep 5666
tcp        0      0 0.0.0.0:5666            0.0.0.0:*               LISTEN
tcp6       0      0 :::5666                 :::*                    LISTEN


Et bien voilà :) Je suis coincé sur ce syslog sans vraiment le comprendre..
J'espère ne pas vous avoir découragé.

Merci d'avance!
A voir également:

3 réponses

mamiemando Messages postés 33073 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 avril 2024 7 748
Modifié par mamiemando le 9/08/2016 à 10:27
Bonjour,

Explication de ton problème

/etc/nagios/nrpe.cfg :

allowed_hosts=127.0.0.1,IP-Nagios


Je ne sais pas d'où tu te connectes, mais déjà, cette IP laisse penser que ton client doit être sur la même machine que le serveur pour que le serveur le laisse s'y connecter.

/var/log/syslog

Aug 8 14:10:54 g***-** kernel: [3914.834891] [UFW BLOCK] IN=eth0 OUT=  MAC=******************************** SRC=IP_Nagios DST=IP_ServeurLocal LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=29974 DF PROTO=TCP SPT=43704 DPT=5666 WINDOW=5840 RED=0x00 SYN URGP=0


Cette ligne est écrite par ton pare-feu (
ufw
) et signal qu'un paquet, arrivant par eth0, émise par IP_Nagios, à destination de IP_ServeurLocal a été bloqué (port source 43704, port destination 5666 etc...)
https://doc.ubuntu-fr.org/ufw

Si cette ligne correspond à une connexion faite par ton client, alors :

1) le problème ne vient pas de la provenance du client (cf ce que je disais sur nrpe.cfg)

2) le pare-feu bloque le paquet émis par ton client. DComme le paquet a été bloqué par le pare-feu avant que celui-ci n'atteigne le serveur, le serveur ne répond rien car il croit qu'il n'a rien à faire. Du coup, le client attend patiemment 10s une réponse du serveur, et de désespoir, abandonne avec le message d'erreur
CHECK_Socket timeout after 10 seconds
.

En conclusion, le problème vient de ton pare-feu, pour lequel tu dois ajouter une règle qui autorise ce genre de paquet à circuler.

Pour résoudre ton problème

Si le client est sur la même machine que le serveur, il serait plus avisé qu'il le contacte via
127.0.0.1
, car il ne sera alors pas confrontés aux mêmes règles dans ton pare-feu. C'est mieux que d'ouvrir le pare-feu et permettre potentiellement à quiconque d'accéder au serveur nagios.

Si le client et le serveur ne sont pas sur la même machine, il serait bon de n'autoriser que l'IP du client a faire un tel accès (en admettant que cette IP soit fixe ou dans une plage d'IP fixe) afin de limiter les risques d'intrusions.

Bonne chance
1