Bonjour à tout le monde.
Alors voila:
J'ai fait un plugins nagios en perl pour vérifier la memoire utilisée sur un serveur unix.
Un simple check_snmp n'était pas suffisant car le résultat me retournait la memoire libre en bits...
J'ai donc a peu près fait ça (je n'ai pas le script sous les yeux mais je vais essayer de mémoire de mettre les commandes principales)
Voila en gros après ça me renvoie suivant le pourcentage utilisé le code erreur 0, 1, ou 2 (OK, WARNING ou CRITICAL)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 my $check = `./check_snmp -H @IP -o OID -c public`; my @tableau = split(' ',$check); my $memoire_libre = ( $tableau[3] *8 / 1024 / 1024 ); my $memoire_utilisee = ( 2 - $memoire_libre ); my $pourcentage_libre = ( $memoire_libre * 100 / 2 ); my $pourcentage_utilisee = ( $memoire_utilisee * 100 / 2 ); print "". $memoire_libre ." libre ". $pourcentage_libre ."%, ". $memoire_utilisee ." Go libre ". $memoire_utilisee ." utilise ". $pourcentage_utilisee ."%";
Donc lorsque j'exécute le script perl directement en ligne de commande sur le serveur nagios, ok tout va bien cela me renvoie les bonnes valeurs, etc...
Par ex: 1,02 Go libre 52%, 0,98 Go utilise 48%
En revanche, lorsque j'associe dans CENTREON un service à cette commande, le résultat retourné dans ma supervision toujours dans centreon est systématiquement:
0 Go libre 0%, 2 Go utilise 10%
Voili voilou le souci, et, sachant que j'ai fait mes débuts dans le langage PERL seulement hier, je ne vois pas du tout pourquoi cela marcherait en lançant le script à la main (en ligne de commande) et non dans centreon...
Est-ce un problème de programmation? Ou plutôt un souci de centreon?
Je me doute qu'il vous faudrait le script entier pour peut-être faciliter la recherche d'erreur, mais avez-vous dèjà une piste à suivre?
Demain soir je mettrai le script en entier...
Marci d'avance...
Partager