Certains crashs d’agents sans aucune raison peuvent être expliqués par quelque chose qui se passe dans le mode de fonctionnement du FMS Pandora, plus précisément dans la section /etc/init.d/pandora_agent_daemon
.
Dans ce cas, le problème a été détecté sur des systèmes dotés d’une infrastructure de virtualisation basée sur Virtuozzo®, où sont surveillés à la fois les nœuds matériels et les machines virtuelles qui fonctionnent en dessous. Comme Virtuozzo® effectue une virtualisation logicielle, les processus s’exécutant sur les machines virtuelles sont parfaitement visibles s’exécutant ps sur le nœud matériel.
[root@xxxxxxx ~]# ps -Af | grep pandora_agent root 20643 17147 0 Aug25 ? 00:00:08 /usr/bin/perl /usr/bin/pandora_agent /etc/pandora root 22665 20918 0 Aug25 ? 00:00:08 /usr/bin/perl /usr/bin/pandora_agent /etc/pandora root 22862 21033 0 13:13 pts/5 00:00:00 grep pandora_agent root 23518 1 0 Aug25 ? 00:00:12 /usr/bin/perl /usr/bin/pandora_agent /etc/pandora root 24839 31440 0 Aug25 ? 00:00:08 /usr/bin/perl /usr/bin/pandora_agent /etc/pandora root 26703 24727 0 Aug25 ? 00:00:07 /usr/bin/perl /usr/bin/pandora_agent /etc/pandora root 28677 16959 0 Aug25 ? 00:00:08 /usr/bin/perl /usr/bin/pandora_agent /etc/pandora root 29524 301 0 Aug25 ? 00:00:08 /usr/bin/perl /usr/bin/pandora_agent /etc/pandora
Lorsque nous obtenons le PID de l’agent pandora_ via un ps pour faire un kill -par exemple- ce qui se passe est que l’identifiant du premier agent listé parmi tous ceux en cours d’exécution est pris, ce qui, statistiquement parlant, ne sera presque jamais celui que nous voulons -celui du noeud matériel-.
Lorsque nous arrêtons ou redémarrons (stop ou restart) les agents sur les nœuds matériels, nous appliquons en fait la commande à un agent non spécifié dans l’une des machines virtuelles fonctionnant en dessous. Lorsque la commande stop est lancée à l’intérieur d’une machine, il n’y a bien sûr aucun problème, car le commande ps ne voit que ses propres processus.
La solution consiste simplement à renommer le répertoire /etc/pandora por /etc/pandora_virt
et modifiez le fichier /etc/init.d/pandora_agent_daemon
et remplacez la ligne suivante :
PANDORA_PATH=/etc/pandora
avec
PANDORA_PATH=/etc/pandora_virt
Ainsi, le démarrage et l’arrêt du processus de la machine “réelle” n’affecteront pas les machines virtuelles.