View Full Version : Downtine récurrent
tlinder
26th September 2005, 12:23
Bonjour,
j'utilise courramment le couple Nagios + Oreon avec beaucoup de plaisir depuis quelque temps maintenant.
Je suis confronté à un besoin qui pourrait être intégré à Oreon.
Je souhaite configuré Nagios pour scheduler des downtime réccurent, par exemple, le check de la base de données tous les samedi soir durant les backups.
Du coup, il est envisageable de le faire via crontab, est-qu'il est prévu de proposer cette fonctionnalité depuis l'interface Oreon ?
Merci pour votre feedback
Thierry
DonKiShoot
26th September 2005, 12:44
Oreon le fait, tout comme Nagios il me semble :
time-period
samedi 06:00:00-20:00:00 par exemple
tlinder
26th September 2005, 13:07
Je ne cherche pas à informer Nagios d'une Time period, mais lui indiquer des downtime.
Car si je spécifie mes services associés à une Timeperiod, alors les autres services qui doivent être continuellement mesurés, ne le seront plus ou je ne serai pas averti à temps.
Donc, cela ne répond pas complétement à mes besoins.
Qu'en penses-tu ?
Thierry
templuche
26th September 2005, 13:42
Bonjour,
Comme tu l'as dit, cron pourrais faire l'affaire. C'est vrai que cela n'est pas super drôle à configurer. Ton idée est bonne je pense. Il faudrait faire une interface de configuration intégrée à Oreon qui mettent les informations en base de données. Ensuite, il faut coder un script qui sera lancé en cron. Ce script va chercher les informations en base et écrit les donwtimes dans le nagios.cmd. Je pense que c'est faisable et que cela pourrait être intéressant. Je vote pour.
DonKiShoot
26th September 2005, 15:20
Je ne cherche pas à informer Nagios d'une Time period, mais lui indiquer des downtime.
Car si je spécifie mes services associés à une Timeperiod, alors les autres services qui doivent être continuellement mesurés, ne le seront plus ou je ne serai pas averti à temps.
Donc, cela ne répond pas complétement à mes besoins.
Qu'en penses-tu ?
Thierry
Apparement templuche a compris mais moi keudalle :lol:
De ce que j'ai compris une time-period sur ce check uniquement permetrait de ne pas lancer de check en dehors des heures prévu et donc de recevoir des alertes :?
templuche
26th September 2005, 16:08
Bonjour,
Apparement templuche a compris mais moi keudalle
Tu me mets le doute tout à coup. :?
Ce que j'ai compris c'est qu'il souhaite pouvoir scheduler des downtime de manière automatique. Je suppose que les périodes de downtime sont plus complexes que ce que Nagios permet de faire actuellement sinon il utiliserait les check_period. Par exemple, si un backup est fait tous les 1er samedi de chaque mois de 10h à 14h et que l'application est arrétée alors les check_period de nagios ne vont pas (car pas assez "puissant"). Il souhaiterait qu'Oreon puisse prendre en compte ceci avec des downtime récurrents plus expressifs.
C'est bien cela Thierry? On parle de la même chose?
tlinder
26th September 2005, 16:26
Tout à fait,
la notion de Time Period permet de mettre en place une stratégie d'alerte, soit par exemple l'email pendant les heures de bureau, pager en dehors.
Nagios propose la notion de downtime period pour informer nagios que durant la période donnée, un service ou un host ne doit pas être contrôlé car l'administrateur sait que le status n'est pas OK (maintenance, backup off-line,...).
Oreon et Nagios propose de scheduler un downtime pour un noeud et/ou un service, mais pas de manière récurrente. Du coup, pour poser un downtime tous les samedi de 22h00 à 24h00, on ne peut pas le faire.
La solution proposée par Nagios, est un job crontab qui envoi au bon moment une commande de downtime au travers du fichier de commande Nagios nagios.cmd.
L'idéal serait d'avoir un interface graphique qui autorise ce type d'enregistrement.
Cette fonctionnalité me semble intéressante, car nous avons tous des alertes de perte de services qui sont normales et que nous pourrions éviter par cette fonctionnalité.
J'espère avoir été plus claire dans mon descriptif, merci de me dire ce que vous en pensez, et comment on pourrais y arriver.
N'étant pas franchement costaud en PHP, je me charge volontier de la partie crontab si jamais.
Thierry
templuche
26th September 2005, 16:37
Bonjour,
Comment dire? Les timeperiod ne servent pas qu'aux notifications. Si tu crées une timeperiod "bidule" qui exclue la plage 22h-24h tous les samedis, alors il suffit d'indiquer pour ton service que la time period pour le check est "bidule". Donc ton service ne sera pas checké en dehors de la période prévue par la timeperiod "bidule".
DonKiShoot
26th September 2005, 16:42
Bonjour,
Comment dire? Les timeperiod ne servent pas qu'aux notifications. Si tu crées une timeperiod "bidule" qui exclue la plage 22h-24h tous les samedis, alors il suffit d'indiquer pour ton service que la time period pour le check est "bidule". Donc ton service ne sera pas checké en dehors de la période prévue par la timeperiod "bidule".
On est d'accord ! Fiouuu j'ai eu peur, je me suis senti un peu idiot.
Mais c vrai que pour une coupure tout les premiers samedi de chaque mois c crontab obligate :wink:
tlinder
26th September 2005, 16:47
C'est sur, mais si on propose cette fonctionnalité au travers de Oreon, je trouverai cela vraiment top !
N'est-ce-pas ?
wistof
26th September 2005, 16:48
effectivement, c'est fonction peut etre très utile.
Un courageux pour faire une entrée dans le bugtrack (en feature request) ?
julio
26th September 2005, 18:17
Vos delais sont de combien de jours ? :D
Klr que ca peut etre top.. Bon tlinder veut deja bien se charger de la partie cron. cool. Je vais essayer de regarder pour un schema de base dans les jours qui vienne, voir peut etre pour dans pas longtemps.
Ca devrait vraiment pas etre long a faire.
tlinder
27th September 2005, 07:35
Salut Julio,
voilà des infos qui me ravisse.
Je regarde comment mettre cela en place via cron et te tiens au courant.
On devrait arriver à pondre qqch ... :lol:
Je vois bien comment faire un script qui génère une commande à Nagios, un peu moins comment aller facilement chercher l'info dans une BD Mysql. Mais avec du bon sens et un peu d'huile de coude, ça devrai passer ....
Thierry
wistof
27th September 2005, 09:34
Hello,
avant de réinventer la roue, va faire un tour sur nagiosexchange, y a 3 project autour des downtimes planifiés/récurrents. Ca peut donner des idées.
tlinder
27th September 2005, 10:01
Merci pour l'info, c'est exactement ce que je pensais faire.
C'est vraiment pas dans ma nature de réinventer la roue.
Thierry
tlinder
7th October 2005, 13:32
Bonjour Messieurs,
j'ai regardé quel outil permettait de facilement créer la fonctionnalité de downtime réccurents.
Après quelques test, l'outil le plus abouti est : Downtime Scheduler
http://www.nagiosexchange.org/Downtimes.38.0.html?&tx_netnagext_pi1[p_view]=159
Il suffit de placer en crontab (1 x par jour) le démarrage d'un script Perl qui se charge de parser deux fichiers de confs:
1 pour les downtimes de hosts
1 pour les downtimes de services
Donc, est-il envisageable de travailler sur un interface PHP qui se chargerais de créer ces deux fichiers de confs ?
A disposition pour plus de renseignements
Thierry
julio
7th October 2005, 13:46
bonjour,
Décolé j'ai pas eu trop le temps,
Excellent si deja un truc fait ca... je vais tester et apres l'interfaçage des deux (oreon et downtime scheduler) ne devrait pas etre sorcié :)
Merci pour tes recherches :)
tlinder
7th October 2005, 14:09
j'ai des fichiers de conf en prod si tu veux.
Bonne chance
julio
7th October 2005, 14:30
ha oui je veux bien... si tu veux me les envoyer :)
tlinder
10th October 2005, 09:48
Voici le fichier de conf pour la création de downtime pour un host:
[root@m83-40-nms etc]# cat downtimeschedhst.cfg
# Configuration file for scheduling recurring downtime
#
# The Relevant fields are seperated by a comma ","
#
# Please follow the Following format
# Sun:Mon:Tue:Wed:Thu:Fri:Sat having a 1 in the field corresponding to the day indicates that the script should run
#
# Daysfield,Hostname,StartTime(HH:MM:ss),duration(se conds),fixed/dynamic,Dyn duration,Name(user posting downtime),Comments
# 0:1:1:1:1:1:0,host1.co.za,23:59:00,14400,1,7200,Na gios,Scheduled Daily Downtime (Backups)
#
#0:0:0:0:0:1:0,cchne102,22:00:00,3600,1,0,Nagios,S cheduled Weekly Downtime (Backups)
[root@m83-40-nms etc]#
Et voici le fichier de configuration pour un service:
[root@m83-40-nms etc]# cat downtimeschedsvc.cfg
# Configuration file for scheduling recurring downtime
#
# The Relevant fields are seperated by a comma ","
#
# Please follow the Following format
# Sun:Mon:Tue:Wed:Thu:Fri:Sat having a 1 in the field corresponding to the day indicates that the script should run
# IE
#Daysfield,Hostname,service-name,StartTime(HH:MM:ss),duration(seconds),fixed/dynamic,Name(user posting downtime),Comments
#0:1:1:1:1:1:0,host1.co.za,Host Service,23:59:00,14400,1,7200,Nic le Roux,Scheduled Daily Downtime (Backups)
0:0:0:0:0:0:1,cchne105,SAP,21:45:00,10800,1,0,Cron tab,Scheduled weekly Downtime (Backups)
0:0:0:0:0:0:1,cchne105,ORACLE,21:45:00,10800,1,0,C rontab,Scheduled weekly Downtime (Backups)
0:0:0:0:0:0:1,cchne106,SAP,21:45:00,10800,1,0,Cron tab,Scheduled weekly Downtime (Backups)
0:0:0:0:0:0:1,cchne107,SAP,21:45:00,10800,1,0,Cron tab,Scheduled weekly Downtime (Backups)
0:0:0:0:0:0:1,cchne107,ORACLE,21:45:00,10800,1,0,C rontab,Scheduled weekly Downtime (Backups)
[root@m83-40-nms etc]#