Nagios : Crash du service à cause de downtime.h - Management du SI - Systèmes & Réseaux Pro
Marsh Posté le 20-08-2016 à 20:34:57
Il faut que tu télécharges les sources de Nagios, que tu appliques ton diff sur le fichier en question via la commande patch (patch -i 0007-fix_downtime_struct.diff downtime.h) et que tu recompiles Nagios pour obtenir ton binaire patché.
Marsh Posté le 20-08-2016 à 21:12:12
Merci de l'info ! Donc pour résumé : j'ai installé Nagios via yum. Là, je retelecharge Nagios 3.5.1, par exemple dans /tmp, je patche avec la commande que tu m'indiques et pour recompiler il me suffit d'un make install ? Je ne risque pas de supprimer ce qui est déjà existant ? Il s'agit d'une machine qui est en production ..
Merci !
Marsh Posté le 20-08-2016 à 21:28:29
On fait pas de tests sur une machine en prod Je te conseille de refaire les manips sur une VM ou une autre machine, ca t'évitera de tout casser suite a une fausse manip.
Idéalement tu veux recompiler le Nagios avec exactement les mêmes options de compilations que celles utilisées dans ton RPM, ca t'évitera d'éventuels soucis.
Récupère plutôt le source rpm de Nagios, appliques le patch, et tu rebuild a partir du spec fourni dans le srpm.
Ensuite tu mets à jour ta machine de prod avec le rpm patché que tu as généré.
Marsh Posté le 20-08-2016 à 21:46:43
Hmm.. Je sens que ça va piquer ! Je vais tenter ça dès demain matin, je me permets de revenir vers toi si je galère ?
Marsh Posté le 20-08-2016 à 22:02:56
Si tu n'y arrives pas indique moi sur quel repository tu récupères le rpm Nagios (ou les repos que tu as dans /etc/yum.repos.d/) histoire que je me fasse une VM a l'identique de ta conf.
Marsh Posté le 21-08-2016 à 19:15:38
Hello !
J'ai essayé de me débrouiller tout seul, mais visiblement je m'y prends mal ..
Les repos : CentOS-Base.repo
CentOS-fasttrack.repo
CentOS-Vault.repo
epel-testing.repo
CentOS-Debuginfo.repo
CentOS-Media.repo epel.repo
ok.repo
J'ai récupérer le rpm de Nagios via yumdownloader nagios, dans /tmp.
Ensuite je tente d'extraire le fichier .rpm pour appliquer le patch (via rpm2cpio). Là je bloque !
Ensuite je pense que je dois utiliser rpmbuild --rebuild /tmp/nagiosxxx.src.rpm ?
Il me reste ensuite à vérifier que ça corrige le problème. Si oui, récupérer le rpm pour le mettre sur la machine de prod'.
Correction : CentOS 6.8 et pas 6.5.
Merci si tu passes par là
Marsh Posté le 21-08-2016 à 20:33:35
Je suis dans le coin oui
Normalement tu installes le source rpm, tu patches, et tu rebuildes le rpm à partir du .spec
J'ai une VM de Centos 6.8 en x86_64, je te refais le rpm un peu plus tard dans la soirée.
Marsh Posté le 21-08-2016 à 23:31:23
On part du principe que tu as installé déja les outils de compilation + quelques trucs utiles (j'ai eu la main lourde sur l'install des prérequis Perl, ca installe aussi des prérequis inutiles => avoir une machine de compilation et pas le faire en prod directement).
yum groupinstall "Development tools" |
Alors : j'ai activé le source repository de epel.repo, et on commence par récupérer le source rpm :
[root@Centos6 yum.repos.d]# yumdownloader --source nagios |
On installe le rpm. Les étapes de compilation et de rebuild du rpm ne se font pas en root.
[root@Centos6 ~]#su - mockbuild |
Tu obtiens les sources de Nagios + les patches RedHat + le spec qui permet de tout recompiler dans le répertoire rpmbuild du $HOME de ton utilisateur
Maintenant on place le patch Nagios ;
[mockbuild@Centos6 ~]$ vi rpmbuild/SOURCES/nagios-0012-Fix-downtime-crash.patch |
Le contenu du fichier sera :
diff --git a/include/downtime.h b/include/downtime.h |
On édite le .SPEC pour y placer la ligne qui va appliquer le patch lors du build :
[mockbuild@Centos6 ~]$ vi rpmbuild/SPECS/nagios.spec |
On ajoute les lignes suivantes :
Ligne 35 : Patch12: nagios-0012-Fix-downtime-crash.patch |
On va aussi éditer le début du fichier pour changer la version et éviter de confondre le RPM modifié avec le RPM de base
Name: nagios |
Yapluka rebuilder le rpm
[mockbuild@Centos6 ~]$ rpmbuild -ba rpmbuild/SPECS/nagios.spec |
Et tu obtiens un joli set de RPM :
[mockbuild@Centos6 ~]$ ls rpmbuild/RPMS/x86_64/nagios- |
Que j'ai mis à disposition la pendant quelques jours.
Et voila
Edit - Correction d'une faute de frappe
Marsh Posté le 20-08-2016 à 18:36:28
Bonjour,
Je rencontre un problème sur Nagios. Tous les soirs à minuit, le service Nagios crash automatiquement. J'ai identifié le problème mais ne parvient pas à le corriger.
Voici les informations dont je dispose :
Centos 6.5
Nagios 3.5.1
Check-MK 1.2.6p16
Le problème est lié à un hôte que j'ai déclaré en "scheduled downtime" : c'est à dire que Nagios ne va pas me générer de notification (par mail) même si l'host est down. Tous les soirs, à minuit, lors de la rotation des logs, Nagios crashe à cause de ce downtime. Il s'agit d'un bug connu : http://lists.mathias-kettner.de/pi [...] 14596.html. Il existe un patch (décrit dans le lien) mais je ne parviens pas à comprendre comment l'appliquer.
Une bonne âme pour m'aiguiller ?
Merci