J'ai une règle conditionnelle dans Icinga pour exécuter un script pour vérifier l'authentification cas. Le script utilise une URL et grep une chaîne dans la page retournée. L'URL et la chaîne ont des attributs pour le script.icinga, comment passer l'attribut à vérifier Commande
Voici le défintion d'un hôte:
object Host "m" {
address = "1xx.xx7.25"
import "linux-server"
display_name = "m"
vars.curl_casURL = "http://xxx.html"
vars.curl_casGREP = "Returned String"
}
Voici le code pour le service, il est seulement exécuté lorsque les 2 variables curl_casURL et curl_casGREP sont définies dans l'hôte:
apply Service "cas" {
import "generic-service"
check_command = "cas"
assign where (host.vars.curl_casURL && host.vars.curl_casGREP)
}
Dans le Interface Web, c'est OK, j'ai vu que le script est exécuté pour le serveur "m".
est ici la commande:
object CheckCommand "cas" {
import "plugin-check-command"
command = [ PluginDir + "/icinga-curl_cas.sh" ]
command +=[ vars.curl_casURL + vars.curl_casGREP ]
}
Mais le script ne reçoit jamais les arguments et les échos d'un état critique en raison de la première ligne du script:
if [ ! $1 ]
then
echo "GIVE ME AN URL, PLEASE!"
exit $STATE_CRITICAL
fi
Je n'ai pas trouvé dans le documenter la réponse. Quelqu'un pourrait-il m'aider? Merci!
Merci. Vous économisez mon temps! Je vais utiliser la deuxième façon. J'ai regardé dans la documentation de icinga et n'ai pas trouvé la bonne syntaxe de la manière laide! –
La bonne syntaxe pour while getopts dans ce cas est: 'while getopts" u: g: "opt; faire –