PDA

View Full Version : [reglé]service windows et caracteres speciaux...


agriva
04-11-2005, 02:46 PM
j'utilise le plugin check_nt associé a son client (nsclient) pour tester si des services windows fonctionnent. Cela marche tres bien pour la plupart MAIS lorsque le service windows contient un espace ou une parenthese (je parle biensur du "service name" et non du "display name"), cela ne marche plus : j'ai les erreurs suivantes : "no output" ou "service unknown".
J'ai bien essayé d'enlever les parentheses dans la liste des caracteres interdits via Oreon mais cela ne marche pas...
Comment puis je faire?

agriva
04-13-2005, 12:16 PM
Bon, quelqu'un m'a repondu sur un autre forum qu'il fallait mettre des " " et un espace entre le ! et " mais le pb c'est qu'en ligne de commande, ca marche bien, par contre Oreon ajoute SYSTEMATIQUEMENT des \ avant chaque " .
Donc au lieu d'avoir des services définis de la facon suivante :

define service{
...
check_command check_nt_service! "IBMWAS5Service - server1"
...
}
j'ai :

define service{
...
check_command check_nt_service!\"IBMWAS5Service - server1\"
...
}
avec

define command{
command_name check_nt_service
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 1248 -v SERVICESTATE -d SHOWALL -l $ARG1$
}

Comment purrais je faire?

rom
04-13-2005, 02:53 PM
Alors j'ai teste en passant ca comme argument :
! "IBMWAS5Service - server1"
et ca passe bien a la generation.

Je ne sais pas pourqoi ca ne passe pas chez toi mais tu peux essaier en modifiant le fichier Service.class.php a la ligne 383.

Tu rajoutes la fonction stripslashes, ca donne :

function get_check_command_arg(){
return stripslashes($this->check_command_arg);
}

Tiens nous au courant.

agriva
04-13-2005, 04:35 PM
ca marche nickel ! merci :D
Par contre, lorsque j'édite mon service, le contenu du champ check_command_argument apparait juste avec un ! au lieu d'avr !"monservice" (et ceci uniquement pour les services contenant des ""). Par contre, quand je visualise juste mon service le champ check_command_argument est OK.
Comment pourrais je modifier ca?

rom
04-13-2005, 05:03 PM
La ca va etre plus complique a corriger pour toi.

En fait nos inputs de champs d'affichage sont de la forme value="", ce qui implique que si tu mets un texte dedans avec un ", et bien ca va merder.

A l'inverse, si tu mets un value='', ca passera avec un texte avec des ", mais pas avec un texte avec des '. Compris ?

Est ce que quelqu'un sait si les " sont frequemment utilises ? Et si oui, est ce qu'on peut les remplacer par des ' dans les arguments ?

Pour resoudre ton probleme, et si ca fonctionne, tu peux donc essaier de renommer ! "IBMWAS5Service - server1" en ! 'IBMWAS5Service - server1'

tlinder
04-26-2005, 06:27 PM
Bonjour,

j'ai le même problème, même en modifiant la fonction function get_check_command_arg comme spécifié.

Si je tente de créer une check command avec les infos suivantes:

/usr/local/nagiostat/nagiostat -p "$LASTCHECK$|!!|$HOSTNAME$|!!|$SERVICEDESC$|!!|$SER VICESTATE$|!!|$OUTPUT$|!!|$PERFDATA$"

J'obtiens dans le champ:


/usr/local/nagiostat/nagiostat -p \"$LASTCHECK$|!!|$HOSTNAME$|!!|$SERVICEDESC$|!!|$SER VICESTATE$|!!|$OUTPUT$|!!|$PERFDATA$\"

Du coup, mon check ne fonctionne pas convenablement.

:idea: Si vous avez des idées, ce serait super, car maintenant , je suis obligé de retoucher à la main le fichier checkcommands.cfg à chaqu modification.

Merci d'avance pour votre aide

Thierry

agriva
04-26-2005, 07:22 PM
Pourquoi tu utilises cette syntaxe?
/usr/local/nagiostat/nagiostat -p "$LASTCHECK$|!!|$HOSTNAME$|!!|$SERVICEDESC$|!!|$SER VICESTATE$|!!|$OUTPUT$|!!|$PERFDATA$"
Ce ne serait pas plutot :
/usr/local/nagiostat/nagiostat -p "$LASTCHECK$ $HOSTNAME$ $SERVICEDESC$ $SERVICESTATE$ $OUTPUT$ $PERFDATA$"
A quoi te servent les | et les ! ?

tlinder
04-27-2005, 09:09 AM
C'est nagiostat que le propose.
C'est simplement afin de pouvoir séparer les arguments de la ligne de commande.

Si comme dans ta proposition, on choisit l'espace, cela ne fonctionnera pas, car certains contenur de variables contiennent aussi des espaces.

Le traitement de la chaîne "|!!|" est propre à nagiostat.

Par contre, ce qui me pose problème, c'est que lorsque je rentre cette commande au travers d'Oreon, il me rajoute des "\" devant les caractères ".

Du coup, si je refait un modifiy de la check command sans rien toucher, Oreon en rajoute une couche.

/usr/local/nagiostat/nagiostat -p \"$LASTCHECK$ $HOSTNAME$ $SERVICEDESC$ $SERVICESTATE$ $OUTPUT$ $PERFDATA$\"

Puis :


/usr/local/nagiostat/nagiostat -p \\\"$LASTCHECK$ $HOSTNAME$ $SERVICEDESC$ $SERVICESTATE$ $OUTPUT$ $PERFDATA$\\\"

Merci pour votre aide.

Thierry

tlinder
04-29-2005, 12:29 AM
Bonjour,

je suis passé à la version 1.2.1 d'Oreon, mais malheuresement, le problème précité n'est pas corrigé.

Etant donné qu'il est bloquant pour moi, si vous avez un workaround, je suis preneur.

:!: Car pour l'instant, à chaque fois que je regénère les fichiers de conf Nagios, je suis bon pour les retoucher à la main. C'est vraiment pas terrible. :!:

Merci

Thierry

julio
04-29-2005, 03:07 AM
avec des simples quote > ' < ca marche pas ?

tlinder
04-29-2005, 09:42 AM
Salut,
bonne idée, mais j'avais déjà testé.

Si j'insère ce champ:

/usr/local/nagiostat/nagiostat -p '$LASTCHECK$|!!|$HOSTNAME$|!!|$SERVICEDESC$|!!|$SE RVICESTATE$|!!|$OUTPUT$|!!|$PERFDATA$'


je retrouve cela après sauvegarde du champ:

/usr/local/nagiostat/nagiostat -p \'$LASTCHECK$|!!|$HOSTNAME$|!!|$SERVICEDESC$|!!|$S ERVICESTATE$|!!|$OUTPUT$|!!|$PERFDATA$\'


Si tu as une autre piste, je suis preneur.

Merci d'avance

Thierry