Nagios - Downtime - Arrêt planifié et notific
Fermé
Zeddo
Messages postés
75
Date d'inscription
mercredi 27 janvier 2010
Statut
Membre
Dernière intervention
5 mars 2015
-
23 mars 2012 à 11:20
Zeddo Messages postés 75 Date d'inscription mercredi 27 janvier 2010 Statut Membre Dernière intervention 5 mars 2015 - 2 avril 2012 à 10:52
Zeddo Messages postés 75 Date d'inscription mercredi 27 janvier 2010 Statut Membre Dernière intervention 5 mars 2015 - 2 avril 2012 à 10:52
A voir également:
- Nagios - Downtime - Arrêt planifié et notific
- Arrêt maladie - Guide
- Comment supprimer les pubs qui apparaissent sans arrêt - Guide
- Bouton marche arret i o - Forum Word
- Arrêt défilement excel ✓ - Forum Clavier
- Forcer l'arrêt d'une application pc - Guide
8 réponses
Ah tu espérais que ton fichier de config soit lu tel quel par Nagios ?
Non ce n'est pas comme ça que ça marche :)
Il faut envoyer une external command dans le commandfile de Nagios.
Un exemple ici : http://old.nagios.org/developerinfo/externalcommands/commandinfo.php?command_id=118
Pour le faire sur un hostgroup : http://old.nagios.org/developerinfo/externalcommands/commandinfo.php?command_id=123
Non ce n'est pas comme ça que ça marche :)
Il faut envoyer une external command dans le commandfile de Nagios.
Un exemple ici : http://old.nagios.org/developerinfo/externalcommands/commandinfo.php?command_id=118
Pour le faire sur un hostgroup : http://old.nagios.org/developerinfo/externalcommands/commandinfo.php?command_id=123
Bonjour,
Théoriquement, ça ne doit pas arriver :
http://nagios.manubulon.com/traduction/wiki_preview/notifications.html
Tu es sûr de ton coup ? Ton Nagios est-il récent ?
Théoriquement, ça ne doit pas arriver :
http://nagios.manubulon.com/traduction/wiki_preview/notifications.html
Le premier filtre des notifications d'hôte et de service consiste à vérifier que l'hôte ou le service n'est pas dans une période d'arrêt planifié. Si c'est le cas, personne n'est notifié. S'il n'est pas dans une période d'arrêt planifié, la notification est passée au filtre suivant. Notez également que les notifications de services sont supprimées si l'hôte auquel est associé le service est dans une période d'arrêt planifié.
Tu es sûr de ton coup ? Ton Nagios est-il récent ?
Zeddo
Messages postés
75
Date d'inscription
mercredi 27 janvier 2010
Statut
Membre
Dernière intervention
5 mars 2015
15
23 mars 2012 à 14:09
23 mars 2012 à 14:09
Non, je ne suis pas vraiment sûr de mon coup^^
J'ai refait une paire de tests et il s'avère que mon fichier downtimeschedhst.cfg n'est pas pris en compte.
Problème entier, je repart de 0, comment mettre en place un arrêt planifier !
Pour ce qui est de la version de Nagios, j'ai pris la dernière FAN disponible en téléchargement, avec un yum update juste derrière. Je suppose donc que c'est la plus récente.. (suis un peu noob en matière de Linux :p)
J'ai refait une paire de tests et il s'avère que mon fichier downtimeschedhst.cfg n'est pas pris en compte.
Problème entier, je repart de 0, comment mettre en place un arrêt planifier !
Pour ce qui est de la version de Nagios, j'ai pris la dernière FAN disponible en téléchargement, avec un yum update juste derrière. Je suppose donc que c'est la plus récente.. (suis un peu noob en matière de Linux :p)
Zeddo
Messages postés
75
Date d'inscription
mercredi 27 janvier 2010
Statut
Membre
Dernière intervention
5 mars 2015
15
26 mars 2012 à 09:25
26 mars 2012 à 09:25
Salut,
merci pour les liens.
Encore une question du noob que je suis...:p
Le Time_t format... Comment tu calcules ça ?
On dirait un chiffre unique. Sachant que j'ai un reboot de mes machines chaque nuit, ce chiffre changerait systématiquement ? Je fais peut être la mauvaise approche dans ma méthode ?
merci pour les liens.
Encore une question du noob que je suis...:p
Le Time_t format... Comment tu calcules ça ?
On dirait un chiffre unique. Sachant que j'ai un reboot de mes machines chaque nuit, ce chiffre changerait systématiquement ? Je fais peut être la mauvaise approche dans ma méthode ?
C'est une date au format EPOCH ( = secondes écoulées depuis le 01/01/1970)
Dans l'exemple que je t'ai donné en lien, c'est la commande date +%s qui te le donne. Avec l'option -d de date, tu peux lui demander de te convertir une autre date au choix.
Dans la plupart des langages de programmation, c'est le résultat de la commande time() (ou assimilée).
Dans l'exemple que je t'ai donné en lien, c'est la commande date +%s qui te le donne. Avec l'option -d de date, tu peux lui demander de te convertir une autre date au choix.
Dans la plupart des langages de programmation, c'est le résultat de la commande time() (ou assimilée).
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Zeddo
Messages postés
75
Date d'inscription
mercredi 27 janvier 2010
Statut
Membre
Dernière intervention
5 mars 2015
15
26 mars 2012 à 10:13
26 mars 2012 à 10:13
Ok, je comprend un peu mieux..
Voici ce que j'ai fait :
Dans Nagios.cfg, j'ai modifié ceci :
check_external_commands=1
J'ai ensuite commenté la ligne suivante pour rajouter celle en dessous :
#command_file=/var/log/nagios/rw/nagios.cmd
command_file=/usr/local/nagios/var/rw/nagios.cmd
(le fichier dans /var se supprime tt seul lorsqu'on arrête le service Nagios, et se recré au démarrage du service. Il pese 0 octet)
Le fichier nagios CMD ressemble à ca :
#!/bin/sh
# This is a sample shell script showing how you can submit the SCHEDULE_HOST_DOWNTIME command
# to Nagios. Adjust variables to fit your environment as necessary.
now='date +%T'
commandfile='/usr/local/nagios/var/rw/nagios.cmd'
/bin/printf "[%lu] SCHEDULE_HOST_DOWNTIME;nvkaspersky;10:09:00;10:20:00;1;0;7200;nagios;test de reboot sans notifications\n" $now > $commandfile
l'option date +%T me donne l'heure au format qui me semble le bon, par exemple dix heures neufs minutes est retranscrit comme ca : 10:09:00
Et la, rien ne va plus^^ Quand je restart le service, j'ai ceci :
Stopping nagios: /etc/init.d/nagios: line 72: kill: (13695) - Aucun processus de ce type
Et Nagios ne marche plus :/
Voici ce que j'ai fait :
Dans Nagios.cfg, j'ai modifié ceci :
check_external_commands=1
J'ai ensuite commenté la ligne suivante pour rajouter celle en dessous :
#command_file=/var/log/nagios/rw/nagios.cmd
command_file=/usr/local/nagios/var/rw/nagios.cmd
(le fichier dans /var se supprime tt seul lorsqu'on arrête le service Nagios, et se recré au démarrage du service. Il pese 0 octet)
Le fichier nagios CMD ressemble à ca :
#!/bin/sh
# This is a sample shell script showing how you can submit the SCHEDULE_HOST_DOWNTIME command
# to Nagios. Adjust variables to fit your environment as necessary.
now='date +%T'
commandfile='/usr/local/nagios/var/rw/nagios.cmd'
/bin/printf "[%lu] SCHEDULE_HOST_DOWNTIME;nvkaspersky;10:09:00;10:20:00;1;0;7200;nagios;test de reboot sans notifications\n" $now > $commandfile
l'option date +%T me donne l'heure au format qui me semble le bon, par exemple dix heures neufs minutes est retranscrit comme ca : 10:09:00
Et la, rien ne va plus^^ Quand je restart le service, j'ai ceci :
Stopping nagios: /etc/init.d/nagios: line 72: kill: (13695) - Aucun processus de ce type
Et Nagios ne marche plus :/
Il ne faut pas que tu édites manuellement le fichier nagios.cmd. C'est un fichier de commande : c'est là que tu écris les ordres que tu envoies à Nagios. Nagios le lit régulièrement pour y prendre ses ordres, et il y attend un format particulier (le fameux SCHEDULE_HOST_DOWNTIME;nvkaspersky;...)
Donc ton script doit se situer ailleurs (à peu près n'importe où) et y écrire quand tu veux envoyer un ordre à Nagios.
Le format de date retourné par le %T n'est pas bon du tout, Nagios s'attend à un format de type EPOCH, c'est-à-dire ce que retourne la commande date +%s. C'est le nombre de secondes depuis le 01/01/1970.
Donc ton script doit se situer ailleurs (à peu près n'importe où) et y écrire quand tu veux envoyer un ordre à Nagios.
Le format de date retourné par le %T n'est pas bon du tout, Nagios s'attend à un format de type EPOCH, c'est-à-dire ce que retourne la commande date +%s. C'est le nombre de secondes depuis le 01/01/1970.
Zeddo
Messages postés
75
Date d'inscription
mercredi 27 janvier 2010
Statut
Membre
Dernière intervention
5 mars 2015
15
26 mars 2012 à 11:19
26 mars 2012 à 11:19
J'avais trouvé entre nos 2 mails le fait de ne pas toucher au nagios.cmd, et de créer un script à part.
Par contre il y a un truc que je ne comprend toujours pas..
Si le %T n'est pas bon, et qu'il faut un %s pour le format de date, comment j'indique mon heure de début et l'heure de fin de l'indisponibilité de la machine ?
Les 2 heures que j'ai mis en gras ci-dessous, comment je précise que mon serveur redémarre chaque nuit à 00h15 et est stoppé jusqu'à 00h30? (le 10h09 et 10h20, c'était juste pour l'heure de mes tests)
SCHEDULE_HOST_DOWNTIME;nvkaspersky;10:09:00;10:20:00;1;0;7200;nagios;test de reboot sans notifications\n" $now > $commandfile
Par contre il y a un truc que je ne comprend toujours pas..
Si le %T n'est pas bon, et qu'il faut un %s pour le format de date, comment j'indique mon heure de début et l'heure de fin de l'indisponibilité de la machine ?
Les 2 heures que j'ai mis en gras ci-dessous, comment je précise que mon serveur redémarre chaque nuit à 00h15 et est stoppé jusqu'à 00h30? (le 10h09 et 10h20, c'était juste pour l'heure de mes tests)
SCHEDULE_HOST_DOWNTIME;nvkaspersky;10:09:00;10:20:00;1;0;7200;nagios;test de reboot sans notifications\n" $now > $commandfile
Zeddo
Messages postés
75
Date d'inscription
mercredi 27 janvier 2010
Statut
Membre
Dernière intervention
5 mars 2015
15
27 mars 2012 à 11:46
27 mars 2012 à 11:46
Merci pour la réponse, ça m'a donné une idée :)
Par contre, vu que les redémarrages ont lieu tous les jours, toute l'année... ça va pas le faire^^
Je ne vois que 2 options :
-jouer avec le timeperiod -> pas super mais ça peut le faire, un peu bricole pour les services communs à toutes les machines (le reboot n'en concerne que certaines)
- passer les dates en variables pour avoir un fichier dynamique.
Du genre :
date2='date +%Y-%m-%d %T'
date3=date -d $date2 +%s
date4=$date3+20
CHEDULE_HOST_DOWNTIME;nvkaspersky;$date3;$date4;1;0;7200;nagios;test de reboot sans notifications\n" $now > $commandfile
Bon, la syntaxe est relativement fausse, mais tu vois l'idée^^
Par contre, vu que les redémarrages ont lieu tous les jours, toute l'année... ça va pas le faire^^
Je ne vois que 2 options :
-jouer avec le timeperiod -> pas super mais ça peut le faire, un peu bricole pour les services communs à toutes les machines (le reboot n'en concerne que certaines)
- passer les dates en variables pour avoir un fichier dynamique.
Du genre :
date2='date +%Y-%m-%d %T'
date3=date -d $date2 +%s
date4=$date3+20
CHEDULE_HOST_DOWNTIME;nvkaspersky;$date3;$date4;1;0;7200;nagios;test de reboot sans notifications\n" $now > $commandfile
Bon, la syntaxe est relativement fausse, mais tu vois l'idée^^
Zeddo
Messages postés
75
Date d'inscription
mercredi 27 janvier 2010
Statut
Membre
Dernière intervention
5 mars 2015
15
2 avril 2012 à 10:52
2 avril 2012 à 10:52
Bonjour tout le monde,
J'ai rebossé un peu sur le sujet, et j'ai abouti à un script qui donne ceci :
#!/bin/sh
now='date -d 'today 10:40' +%s'
now2='date -d 'today 11:40' +%s'
commandfile='/var/log/nagios/rw/nagios.cmd'
echo "['date +%s'] SCHEDULE_HOST_DOWNTIME;nvkaspersky;$now;$now2;1; 0;2700;Nagios;Commentaire" >> $commandfile
Le but du jeu, c'était de faire un test sur un serveur de 10h40 à 11h40.
Facile sans couper le serveur, il suffit de stopper le service NSCLIENT++.
Par contre... ça marche pas :) j'ai toujours ma flopée de mail
On peut pas mettre une variable ($now) dans cette commande ??
J'ai rebossé un peu sur le sujet, et j'ai abouti à un script qui donne ceci :
#!/bin/sh
now='date -d 'today 10:40' +%s'
now2='date -d 'today 11:40' +%s'
commandfile='/var/log/nagios/rw/nagios.cmd'
echo "['date +%s'] SCHEDULE_HOST_DOWNTIME;nvkaspersky;$now;$now2;1; 0;2700;Nagios;Commentaire" >> $commandfile
Le but du jeu, c'était de faire un test sur un serveur de 10h40 à 11h40.
Facile sans couper le serveur, il suffit de stopper le service NSCLIENT++.
Par contre... ça marche pas :) j'ai toujours ma flopée de mail
On peut pas mettre une variable ($now) dans cette commande ??