Comment puis-je exécuter manuellement une vérification nagios à partir de la ligne de commande?

24

Lors de la définition et du test de nouveaux services dans nagios, j'ai redémarré nagios, puis en cliquant sur le service et replanifié un chèque dès que possible, puis en attendant que le chèque se produise.

Existe-t-il un moyen plus efficace de procéder? Je voudrais utiliser la ligne de commande pour exécuter cette vérification particulière et obtenir la sortie.

cwd
la source

Réponses:

31

Parfois, je trouve difficile de déterminer exactement ce que fait un plugin. Pour comprendre cela, j'ai mis nagios en mode débogage avec la configuration comme celle-ci. debug_level=2048 Avec nagios en mode débogage, je coupe simplement le debug_logfichier debug_file=/var/log/nagios3/nagios.debug. Forcez une vérification et vous verrez exactement comment la commande est exécutée. Je ne laisserais pas ce paramètre normalement cependant, il est très détaillé et remplit votre fichier journal à un rythme rapide.

Zoredache
la source
impressionnant. c'est plus dans le sens de ce que je voulais dire. juste parce que j'avais déjà regardé dans le fichier commandes.cfg pour comprendre quelles commandes étaient en cours d'exécution, mais je voulais savoir quels drapeaux étaient définis. Merci! :)
cwd
2
Je mentionnerai également aux nouveaux utilisateurs que l'utilisation tail -fvous permettra de continuer à voir les mises à jour du fichier en temps réel, et control+cl'annulera.
cwd
2
Les debug_levels sont binaires - 2048 active uniquement les messages des macros. Pour activer tout ce que vous souhaitez définir debug_level = 4095. (1 + 2 + ... + 2048)
jwg
18

C'est assez simple. Il suffit de cd (ou non) dans le répertoire des plugins (cet emplacement de répertoire varie, selon la façon dont vous l'avez installé, mais vérifiez / usr / local / nagios ou / usr / lib / nagios).

Trouvez le plugin que vous souhaitez exécuter (si vous n'êtes pas sûr, comparez ce que vous voyez dans votre répertoire de plugins sur votre boîte Linux avec les plugins situés ici: http://exchange.nagios.org/directory/Plugins , ou essayez d'exécuter "./plugin-name -h" pour obtenir les informations d'aide sur le plugin).

La méthode pour utiliser l'un de ces "plugins" à partir de la ligne de commande est la même que pour tout autre script Linux: exécutez simplement "./plugin-name" avec les indicateurs appropriés que vous souhaitez vérifier, et le tour est joué!

David W
la source
1
+1 ... et si cela vous semble trop difficile, vous pouvez toujours consulter les fichiers de configuration de Nagios pour voir quelle commande et quels paramètres doivent être exécutés. Même l'emplacement du répertoire des plugins est là.
John Gardeniers
5
Et gardez à l'esprit que toujours le faire avec l' nagiosutilisateur su - nagios -s /bin/bash.
quanta
agréable. et les -charges des variables environnementales pour cet utilisateur?
cwd
Oui, comme tout autre drapeau Linux, le "-" avec les drapeaux que vous utilisez chargera le drapeau. (Si j'exécutais df -h sur la CLI linux, j'utilise l'indicateur "h" - dans le cas de la commande df, le h signifie "lisible par l'homme".) Donc, si vous vouliez exécuter la vérification check_http à partir de la CLI, vous exécutez ./check_http -I, où le drapeau I représente l'adresse IP ( nagiosplugins.org/man/check_http ). nagiosplugins.org/man pourrait être utile, ainsi que le répertoire Plugins auquel j'ai lié plus tôt.
David W
L'option d'aide doit être --help. nagios-plugins.org/doc/guidelines.html
dmourati
5

Je prends une direction légèrement plus brutale que @Zoredache, je me connecte au serveur nagios et je fais "tout en étant vrai; fais ps awwlx | grep NAGIOS_CHECK_NAME; fait", tandis que je force une nouvelle vérification du service, où NAGIOS_CHECK_NAME est soit une partie du nom du chèque ou de l'IP du serveur que je recherche. Habituellement, en quelques secondes, la commande de vérification complète apparaît, puis je tue la boucle while et exécute la commande de vérification.

Oui, c'est totalement brutal, mais <shrug> ça marche pour moi.

Sean Reifschneider
la source
Essayez de "regarder" à la place de la boucle while. linux.about.com/library/cmd/blcmdl1_watch.htm
dmourati
3

Vous pouvez également essayer le plugin «capture». Il fait essentiellement la même chose qu'un niveau de débogage de 2048, mais peut être utilisé par plug-in. Cela donne moins de sortie pour creuser.

http://www.waggy.at/nagios/capture_plugin.htm

Keith
la source
1
J'ai eu du mal à faire fonctionner cela, je ne sais pas ce que je faisais mal (noob) mais l'astuce debug_level a fonctionné pour moi :)
sbditto85
2

Allez dans le répertoire de votre plugin - dans mon exemple c'est

/usr/lib64/nagios/plugins/

Tapez le nom de votre plugin - dans mon exemple, c'est

check_tcp

exécutez maintenant la commande complète - (nom du plugin) -H (nom d'hôte) -p (numéro de port)

/usr/lib64/nagios/plugins/check_tcp -H myservername -p 8080

sortie

TCP OK - 0.004 second response time on port 8080|time=0.004146s;;;0.000000;10.000000

Cependant, dans cet exemple, le numéro de port est facultatif

un autre exemple -

dans votre fichier de configuration qui ressemble à quelque chose comme ci-dessous (myserver.cfg) et vous voulez exécuter check_cpu à partir de la ligne de commande

define service{
  use                             generic-service
  host_name                       myserver
  servicegroups                   windows
  service_description             CPU
  contact_groups                  sysadmin_email_only
  notification_options            w,c,r
  check_command                   check_nrpe!check_cpu
}

pour vérifier instantanément (sans GUI vert ou rouge)

Essayez ceci - (chemin complet du plugin) - H (nom_serveur) -c (nom de vérification)

/usr/lib64/nagios/plugins/check_nrpe -H spc7atc01 -c check_cpu

sortie -

OK CPU Load ok.|'5'=4;80;90; '10'=3;80;90; '15'=3;80;90;

C'est ça

Sharia Chowdhury
la source