Bug #3247

Problème avec les external commands

Added by julien breton almost 2 years ago. Updated almost 2 years ago.

Status:ClosedStart date:04/19/2012
Priority:HighDue date:
Assignee:Quentin Garnier% Done:

100%

Category:Centreon - MonitoringEstimated time:1.00 hour
Target version:Centreon 2.3.9
Resolution:fixed

Description

J'ai un problème avec les external commands sur ma plateforme. Je suis systématiquement obligé de relancer la commande plusieurs fois avant qu'elle soit prise en compte (quand elle l'est, si je n'abandonne pas avant).

Que ce soit un export de la conf, un schedule service check ou acknowledgmenent, c'est la même chose. J'ai mis à jour centreon en 2.3.4 (pas encore en 2.3.6) et n'observe aucune amélioration.

Je supervise 2000 hôtes et 4000 services. Sur ma plateforme de test, avec 60 hôtes et 400 service çà fonctionne bien.

Dans les logs Nagios, je ne vois rien arriver relatif aux commandes envoyées.

Ce qui me gêne c'est que je veux installer le module threshold mais avec ce bug, il ne me sert à rien vu qu'il envoie les modification via les external commands.

Plateforme :

2 serveurs centreon, 5 nagios satellite. Le problème ne se pose que sur les satellite.

Une petite aide ?

Merci

History

#1 Updated by Sylvestre Ho almost 2 years ago

Hello,

Problème de réseau? Le SSH est il fluide entre le central et les pollers?
Que dit le log centcore?

Cordialement,

#2 Updated by julien breton almost 2 years ago

RAS coté réseau et pour ssh, j'ai fais plusieurs tests, pas de problème non plus. La connexion se fait en quelques millisecondes.

Pour les logs, rien du tout. Pas la moindre trace d'une external commands. Juste les PROCESS_SERVICE_CHECK_RESULT. D'ailleurs, il n'y a que çà dans les logs pour les externals commands.

Ce qui est bizarre, c'est que j'ai lancé un check forcé sur le nagios ou se trouve centreon (utilisé pour se monitorer lui-même) et je n'ai rien vu dans les logs, alors que la commande à bien été prise en compte et tracer dans les logs nagios.

Idem pour l'ajout d'un commentaire. Trace dans Nagios mais pas dans Centcore.

#3 Updated by julien breton almost 2 years ago

Une idée ? Une piste ? Quelque chose ?

Merci

#4 Updated by Sylvestre Ho almost 2 years ago

Bonjour,

Si l'external command est lancée localement, ça ne passe pas par centcore. Est-ce que centcore tourne?
/etc/init.d/centcore status

#5 Updated by Sylvestre Ho almost 2 years ago

  • Assignee set to Sylvestre Ho
  • Target version set to Centreon 2.3.9

#6 Updated by Sylvestre Ho almost 2 years ago

  • Status changed from New to Assigned

#7 Updated by Sylvestre Ho almost 2 years ago

  • Estimated time set to 1.00

#8 Updated by julien breton almost 2 years ago

Désolé pour le retard.

Oui, Centcore tourne bien puisque au bour de plusieurs fois les externals commands sont envoyées. Ca donne l'impression qu'il y a une fenêtre de temps (quelques secondes) pendant lequel l'exécution des externals commandes sont possibles, puis après plus rien. Rien dans les logs (tail -f pour suivre en live)

#9 Updated by julien breton almost 2 years ago

J'ai testé sur un centreon de DEV avec quasiment le même nombre d'hosts et services, sur une VM (juste le time interval qui a été changé pour ne pas trop charger la VM).

-> Aucun problème les externals commands sont bien lancées. Cependant, le test ne peut pas trop être comparé.

En revanche, sur ma plateforme de spare, j'ai le même problème (même hardware, même version de centreon)

Enfin, à noter qu'un restart de centcore échoue en général, obligé de le faire 2 ou 3 fois. Lors des mises à jour, faut-il arrêter centcore et centstorage afin que les binaires se mettent à jour s'il y a lieu ?

#10 Updated by Quentin Garnier almost 2 years ago

Voici mon adresse email: pour convenir d'une session WebEx Lundi si possible.

#11 Updated by Quentin Garnier almost 2 years ago

  • Status changed from Assigned to Solved

Le problème se situait au niveau des droits sur le répertoire "/var/lib/centreon". Ce répertoire doit appartenir à l'utilisateur du serveur apache ("www-data" ou "apache" le plus souvent)

# chown apache:nagios /var/lib/centreon
# chmod 775 /var/lib/centreon

Le serveur "apache" écrit dans ce fichier ainsi que le processus de traps. Sachant que le processus de trap est en utilisateur "root", il est nécessaire que le serveur "apache" puisse écrire dans ce fichier (même s'il possède des droits "root").

#12 Updated by julien breton almost 2 years ago

Quentin,

Je met à jour ce post pour les autres.

Comme dit par email, le patch du fichier /usr/local/centreon/bin/centTrapHandler-2.x consistant à remplacer les 2 lignes :

my $submit = "su -l nagios -c '/bin/echo \"EXTERNALCMD:$id:[$datetime] PROCESS_SERVICE_CHECK_RESULT;$this_host;$this_service;$status;$arguments_line\" >> $cmdFile' ";

et

my $submit = "su -l nagios -c '/bin/echo \"EXTERNALCMD:$id:[$datetime] SCHEDULE_FORCED_SVC_CHECK;$this_host;$this_service;$datetime\" >> $cmdFile' ";

ne fonctionne pas. En effet le process de trap crée un fichier /var/lib/centreon/centcore.cmd nagios:nagios en rw-r--r- (avec en dossier parent www-data:nagios) mais apache ne peut toujours pas écrire dedans (pourquoi ? bonne question)

Mais en mettant :

my $submit = "su -l www-data -c '/bin/echo \"EXTERNALCMD:$id:[$datetime] PROCESS_SERVICE_CHECK_RESULT;$this_host;$this_service;$status;$arguments_line\" >> $cmdFile' ";

et

my $submit = "su -l www-data -c '/bin/echo \"EXTERNALCMD:$id:[$datetime] SCHEDULE_FORCED_SVC_CHECK;$this_host;$this_service;$datetime\" >> $cmdFile' ";

ca marche. les traps sont traitées et les external_commands via l'interface web aussi (le fichier centcore.cmd contient bien le tout)

Soit il faut ajouter çà dans une prochaine version, soit il faut que le process de trap crée le fichier en rw-rw-r- et faire un chown www-data:nagios sur le répertoire /var/lib/centreon

Merci pour le support

#13 Updated by Quentin Garnier almost 2 years ago

  • Status changed from Solved to Assigned

#14 Updated by Quentin Garnier almost 2 years ago

La correction "su l nagios" fonctionne logiquement. Il faut que le répertoire hébergeant le fichier "centcore.cmd" possède les droits suivants:
775 avec owner = utilisateur apache et, group = utilisateur nagios.
Sachant que l'utilisateur "nagios" se situe dans le groupe "apache" et l'utilisateur "apache" dans le groupe "nagios".

#15 Updated by Sylvestre Ho almost 2 years ago

  • Category set to Centreon - Monitoring
  • Assignee changed from Sylvestre Ho to Quentin Garnier

Quentin,

Do you have a solution yet?

Thanks

#16 Updated by Sylvestre Ho almost 2 years ago

  • Status changed from Assigned to Closed
  • % Done changed from 0 to 100
  • Resolution set to fixed

revision r13144

Also available in: Atom PDF