KB 2285 : TOUS LES AUTHENTIFICATEURS NTLM SONT OCCUPÉS
Les symptômes dans le cas d’authentificateurs occupés sont soit des pop-ups de demandes d’authentifications intempestifs, soit un arrêt brutal et complet du service squid.
SYMPTÔMES
Les symptômes dans le cas d’authentificateurs occupés sont soit des pop-ups de demandes d’authentifications intempestifs, soit un arrêt brutal et complet du service squid.
Contexte
Le nombre d’authentificateurs NTLM d’Olfeo est défini par défaut à 15 instances.
Ce nombre d’instances a été défini comme une moyenne, il correspond à une architecture de moins de 500 postes clients avec un trafic web raisonnable.
Il peut arriver que ce nombre d’instances soit insuffisant pour une architecture de plus de 500 postes et/ou une population générant beaucoup de trafic web (écoles, universités, bibliothèques, métiers utilisant des applications web, etc) et doive par conséquent être augmenté.
TEST
Pré-requis
Installer l’utilitaire squid-client avec la commande apt-get install squidclient :
TESTOLFEO:~# apt-get install squidclient Reading package lists... Done Building dependency tree... Done The following NEW packages will be installed: squidclient 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 102kB of archives. After unpacking 188kB of additional disk space will be used. WARNING: The following packages cannot be authenticated! squidclient Install these packages without verification [y/N]? y Get:1 http://debian.olfeo.com etch/main squidclient 3.1.5-2olfeo01 [102kB] Fetched 102kB in 0s (578kB/s) Selecting previously deselected package squidclient. (Reading database ... 16949 files and directories currently installed.) Unpacking squidclient (from .../squidclient_3.1.5-2olfeo01_i386.deb) ... Setting up squidclient (3.1.5-2olfeo01) ...
Étape 1 : Analyse avec squid client du nombre d’authentificateurs NTLM en attente.
La commande suivante va nous permettre de savoir si les authentificateurs NTLM sont occupés.
Exemple où tous les authentificateurs NTLM sont libres (colonne requests) :
TESTOLFEO:~# squidclient -h 127.0.0.1 -p 3129 mgr:ntlmauthenticator HTTP/1.0 200 OK Server: squid/3.1.5 Mime-Version: 1.0 Date: Tue, 06 Dec 2011 08:18:37 GMT Content-Type: text/plain Expires: Tue, 06 Dec 2011 08:18:37 GMT Last-Modified: Tue, 06 Dec 2011 08:18:37 GMT X-Cache: MISS from localhost X-Cache-Lookup: MISS from localhost:3129 Via: 1.0 localhost (squid/3.1.5) Proxy-Connection: close NTLM Authenticator Statistics: program: /usr/bin/ntlm_auth number active: 15 of 15 (0 shutting down) requests sent: 178 replies received: 178 queue length: 0 avg service time: 4 msec # FD PID # Requests Flags Time Offset Request 1 254 4226 0 0.000 0 (none) 2 256 4227 0 0.000 0 (none) 3 258 4228 0 0.000 0 (none) 4 260 4229 0 0.000 0 (none) 5 262 4230 0 0.000 0 (none) 6 264 4231 0 0.000 0 (none) 7 266 4232 0 0.000 0 (none) 8 268 4233 0 0.000 0 (none) 9 270 4234 0 0.000 0 (none) 10 272 4235 0 0.000 0 (none) 11 274 4236 0 0.000 0 (none) 12 276 4237 0 0.000 0 (none) 13 278 4238 0 0.000 0 (none) 14 280 4239 0 0.000 0 (none) 15 282 4240 0 0.000 0 (none) Flags key: B = BUSY C = CLOSING R = RESERVED S = SHUTDOWN PENDING P = PLACEHOLDER
Étape 2 : Analyse des logs dans /var/log/squid3/cache.log
Les lignes WARNING peuvent être filtrées pour une lecture plus aisée.
Après recherche dans ces lignes, tous les authentificateurs NTLM sont occupés et 15 requêtes n’ayant pas pu être traitées auraient pu entraîner un arrêt du service squid.
Commande à taper :
egrep -i ‘(busy|many|fatal)’ /opt/olfeo5/data/proxy/log/cache.log
Résultat :
2011/10/04 07:30:21| WARNING: All ntlmauthenticator processes are busy. 2011/10/04 07:30:21| WARNING: 15 pending requests queued 2011/10/04 07:30:21| Consider increasing the number of ntlmauthenticator processes in your config file.
RÉSOLUTION
Le nombre de requêtes pour le dernier authentificateur ne devrait pas être supérieur à 0.
Dans le cas contraire, il est recommandé de passer le nombre d’authentificateurs à 30 instances (pour une architecture à plus de 500 postes).
Dans la majorité des cas, il est donc conseillé de passer de 15 instances à 30 instances pour solutionner ce problème.
Si 30 n’est pas un nombre suffisant, augmenter par pas de 10 ou 20 jusqu’à l’absence de problème.