Quoi de neuf dans la version 2.0 ?
Important : assurez-vous d'avoir lu toute la documentation (et plus particulièrement les F.A.Q.) avant d'envoyer votre question aux listes de diffusion.
Journal des évolutions
Le journal des évolutions de Nagios est consultable en ligne sur http://www.nagios.org/changelog.php [Anglais] ou dans le fichier Changelog à la racine de la distribution du code source.
Problèmes connus
Il y a un problème connu qui affecte Nagios 2.0 sur les systèmes FreeBSD. Ce problème sera résolu, espérons-le, dans une version 2.x...
- FreeBSD et les threads [NdT : fils d'exécution]. FreeBSD propose une implémentation native au niveau utilisateur des threads appelée 'pthread', et en option un portage 'linuxthreads' qui utilise les accroches du noyau [NdT : kernel hooks]. Des gars de Yahoo! ont signalé que l'utilisation de la bibliothèque pthread provoque l'arrêt de Nagios lorsque la demande d'entrées-sorties est importante, ce qui cause la perte de certains résultats de contrôles de services. Passer à la bibliothèque linuxthreads semble améliorer les choses, mais ne résoud pas le problème. Le blocage se produit dans la fonction __pthread_acquire() de liblthread - le verrou ne peut jamais être acquis. Cela se produit quand le thread principal est embranché [NdT : fork] pour exécuter un contrôle actif. Au second embranchement pour créer le processus petit-fils, le petit-fils est créé par fork, mais ne retourne jamais à l'adaptateur [NdT : wrapper] de fork dans liblthread, parce qu'il est coincé dans __pthread_acquire(). Peut-être des utilisateurs de FreeBSD peuvent-ils contribuer à la résolution de ce problème.
Changements et nouveautés
- Changements dans les macros - Les macros ont subi une refonte majeure. Vous devrez mettre à jour la plupart de vos définitions de commandes pour vous adapter aux nouvelles macros. La plupart des macros sont maintenant disponibles en tant que variables d'environnement. De plus, des macros d'hôte et de service "à la demande" ont été ajoutées. Lisez la documentation sur les macros pour de plus amples informations.
- Changements dans les groupes d'hôtes
- Suppression des escalades de groupes d'hôtes - Cette fonction peut être remplacée par le paramétre hostgroup_name de la définition du groupe d'hôtes.
- Changement du paramétre "members" - La définition d'un groupe d'hôtes peut maintenant contenir plusieurs paramétres members, ce qui devrait rendre plus facile la saisie des fichiers de configuration lorsque vous avez un grand nombre d'hôtes membres. Vous pouvez aussi utiliser le paramétre hostgroups de la définition d'hôte pour définir à quel(s) groupe(s) d'hôtes appartient un hôte en particulier.
- Changement dans les groupes de contacts - Le paramétre contact_groups a été déplacé de la définition des groupes d'hôtes à celle des hôtes. Ceci afin d'être cohérent avec la définition des contacts de services. Mettez à jour vos fichiers de configuration !
- Changement dans les permissions - Les permissions d'accès aux groupes d'hôtes dans les CGI ont été changées. Vous devez maintenant avoir accès à tous les hôtes membres du groupe d'hôtes pour avoir accès au groupe d'hôtes.
- Changements dans les hôtes
- Contrôle de fraîcheur de l'hôte - le contrôle de fraîcheur a été ajouté aux contrôles d'hôtes. C'est le paramétre check_host_freshness qui définit ce comportement, associé au paramétre check_freshness de la défintion d'hôte.
- Commande OCHP - Les contrôles d'hôtes peuvent maintenant être remontés, comme l'étaient les contrôles de services. La commande OCHP est lancée pour tous les hôtes dont le paramétre obsess_over_host est activé dans la définition d'hôte.
- Changements dans le contrôle des hôtes
- Contrôles ordonnancés régulièrement - Vous pouvez maintenant ordonnancer le contrôle régulier d'hôtes en utilisant le paramétre check_interval de la définition d'hôte. NOTE : Attention ! Vous devez utiliser parcimonieusement les contrôles réguliers d'hôtes. Ils ne sont pas nécessaires au fonctionnement normal (les contrôles à la demande sont déjà réalisés quand c'est nécessaire) et peuvent dégrader les performances s'ils sont utilisés de manière inappropriée. Vous êtes prévenus.
- Contrôles d'hôtes passifs - Les contrôles d'hôtes passifs sont maintenant possibles s'ils sont activés par le paramétre accept_passive_host_checks du fichier de configuration principal et le paramétre accept_passive_host_checks de la définition d'hôte. Les contrôles passifs d'hôtes peuvent simplifier la mise en oeuvre d'une supervision redondante ou répartie. NOTE : Certains problèmes sont liés aux contrôles d'hôtes passifs - pour en savoir plus lisez ceci.
- Changements dans la mémorisation
- Mémorisation des informations d'ordonnancement - Les information d'ordonnancement des contrôles d'hôtes et de services (prochains moments de contrôle) peuvent maintenant être mémorisées entre les redémarrages du programme grâce au paramétre use_retained_scheduling_info.
- Mémorisation plus subtile - Les valeurs de divers paramétres d'hôtes et de services qui peuvent être mémorisées entre les redémarrages du programme ne le sont désormais que si elles ont été changées en cours d'exécution par une commande externe. Cela rendra les choses plus claires pour ceux qui tentent de modifier les valeurs de paramétres d'hôtes et de services puis redémarrent Nagios, s'attendant à constater des changements.
- Plus de choses mémorisées - Il y a plus d'informations mémorisées entre les redémarrages du programme, y compris l'historique de la détection d'oscillation. Youpi !
- Changements dans les informations étendues
- Nouvel emplacement - Les définitions d'informations étendues d'hôtes et de services sont maintenant stockées dans les fichiers de configuration des objets, avec les définitions d'hôtes, etc. Il en résulte que les définitions d'information étendues sont maintenant analysées et validées par le démon Nagios avant le démarrage.
- Nouveaux paramétres - Les définitions d'informations étendues d'hôtes et de services comportent maintenant deux nouveaux paramétres : notes et action_url.
- Changements dans l'interpréteur Perl intégré
- Emplacement de p1.pl - Vous pouvez maintenant définir l'emplacement du fichier d'aide de l'interpréteur Perl intégré (p1.pl) grâce au paramétre p1_file.
- Changements dans les notifications
- Notifications d'oscillation - Les notifications sont maintenant envoyées au commencement et à la fin de l'oscillation d'hôtes et de services. Cette fonction est définie par la valeur f dans le paramétre notification_options des définitions de contacts, d'hôtes et de services.
- Meilleur algorithme - L'algorithme de notification a été légèrement amélioré. Cela devrait éviter d'envoyer des notifications de rétablissement alors qu'aucune notification de problème n'avait été préalablement envoyée.
- Notifications de services - Avant que les notifications de services ne soient envoyées, les dépendances de notification pour l'hôte sont désormais vérifiées. Si les notifications d'hôte ne sont pas jugées valables, les notifications pour le service ne seront pas envoyées non plus.
- Options d'escalade - Les paramétres de période et d'état ont été ajoutés aux escalades d'hôtes et de services. Cela vous permet de contrôler plus finement l'utilisation des escalades. Vous trouverez ici plus d'informations sur les escalades.
- Ajout des groupes de services - Les groupes de services ont été ajoutés. Ils vous permettent de grouper des services pour l'affichage dans les CGI et peuvent être utilisés dans les définitions de dépendances de services et d'escalade de services pour faciliter la configuration.
- Ajout de l'arrêt planifié déclenché - La gestion de l'arrêt planifié dit "déclenché" a été ajouté pour les hôtes et les services. L'arrêt planifié déclenché vous permet de définir un arrêt planifié qui commence en même temps qu'un autre arrêt planifié (très utile pour définir l'arrêt planifié des hôtes enfants d'un hôte dont le moment d'arrêt planifié est variable). Vous trouverez ici plus d'informations sur l'arrêt planifié.
- Nouvel outil de statistiques - Un nouvel outil appelé 'nagiostats' fait maintenant partie de la distribution de Nagios. C'est un outil en ligne de commande qui vous donne les statistiques pour un processus Nagios en cours d'exécution. Il peut également produire des données compatibles avec MRTG, vous permettant de représenter graphiquement les statistiques. Vous trouverez ici plus d'information sur l'utilisation de cet outil.
- Supervision adaptative - Vous pouvez maintenant changer certains paramétres propres aux contrôles d'hôtes et de services (commandes de contrôles, intervalle de contrôle, nombre maximal d'essais de contrôle, etc.) en cours d'exécution en envoyant les commandes externes appropriées. Ce type de supervision adaptative ne sera probablement pas d'un grand usage pour la majorité des utilisateurs, mais il permet des trucs élégants. Vous trouverez ici plus d'informations sur la supervision adaptative.
- Changements dans les données de performance - La méthode de traitement des données de performance a légèrement changé. Vous pouvez maintenant traiter les données de performance en exécutant des commandes externes et/ou en écrivant dans les fichiers sans recompiler Nagios. Lisez la documentation sur les données de performance pour de plus amples informations.
- Abandon de la gestion native des bases de données - La gestion native du stockage de divers types de données (états, mémorisation, commentaires, arrêt planifié, etc.) dans MySQL et PostgreSQL a été abandonnée. Arrêtez de vous plaindre. J'espère que quelqu'un développera bientôt une solution alternative grâce au nouveau gestionnaire d'évènements. De plus, la gestion des bases de données n'était pas très bien implémentée et son abandon va rendre la tâche plus facile pour les nouveaux utilisateurs (une question de moins à se poser).
- API de distribution des évènements [NdT : event broker] - Une API [NdT : interface de programmation] a été créée pour permettre aux développeurs indépendants d'écrire des greffons qui s'intégrent avec le coeur du démon Nagios. La documentation de l'API de distribution d'évènements sera créée quand le code de la version 2.x sera mûr, et elle sera disponible sur le site web de Nagios.
- Changements divers
- Toutes les commandes peuvent avoir des paramétres - Tous les types de commandes (contrôles d'hôtes, notifications, traitement des données de performance, gestionnaires d'évènements, etc.) peuvent recevoir des paramétres (séparés du nom de la commande par le caractère !). Les paramétres sont remplacés dans la ligne de commande via les macros $ARGx.
- Récursivité dans le répertoire de configuration - Nagios traite maintenant de manière récursive tous les fichiers de configuration qu'il trouve dans les sous-répertoires des répertoires définis par le paramétre cfg_dir.
- Abandon de l'ancien style de fichiers de configuration - La gestion de l'ancien style (sans templates) de fichiers de configuration des objets et des informations étendues a été abandonnée.
- Recherches plus rapides - Les objets sont maintenant stockés dans une table de hachage chaînée pour accélérer les recherches. Cela devrait grandement améliorer la performance des CGI.
- Threads de travail - Quelques threads de travail ont été ajoutés pour artificiellement mettre en mémoire tampon les données pour le fichier de commandes externes et le tube [NdT : pipe] interne utilisé pour traiter les résultats de contrôles de services. Cela devrait significativement améliorer les performances pour les grandes installations.
- Changements dans la journalisation - L'état initial des hôtes et des services est maintenant journalisé légèrement différemment. De plus, les états initiaux de tous les hôtes et services sont immédiatement journalisés après toute rotation de journaux. Cela devrait résoudre les problèmes de "undetermined time" dans les CGI de disponibilité et de tendance.
- Mise en cache du fichier de configuration des objets - Un fichier de cache des objets est maintenant créé par Nagios au démarrage. Il permet d'accélérer un peu les CGI et vous permet de modifier vos fichiers de configuration des objets alors que Nagios s'exécute, sans affecter l'affichage des CGI.
- Limites initiales de contrôle - Vous pouvez définir des limites de temps dans lesquelles le contrôle initial de tous les hôtes et services doit être effectué après le démarrage de Nagios. Ces limites de temps sont définie par les paramétres max_host_check_spread et max_service_check_spread.
- Acquittements "collants" - Vous pouvez maintenant déterminer si des acquittements d'hôtes ou de services sont "collants" [NdT : sticky] ou pas. Les acquittements collants suppriments les notifications jusqu'à ce qu'un hôte ou un service se rétablisse complétement dans l'état UP ou OK. Les acquittements non collants suppriment simplement les notifications jusqu'à ce qu'un hôte ou un service change d'état.
- Changements dans le contrôle des grappes [NdT : clusters] - La façon de superviser des grappes de services et d'hôtes a changé et est plus fiable qu'elle n'était. Cela est dû à l'incorporation des macros à la demande et d'un nouveau plugin (check_cluster2). Vous trouverez ici plus d'informations sur le contrôle des clusters.
- Expressions régulières - L'utilisation d'expressions régulières dans de nombreux paramétres des objets peut être activée grâce aux paramétres use_regexp_matching et use_true_regexp_matching. Vous trouverez des informations sur quand et comment utiliser les expressions régulières dans la documentation sur les trucs et astuces des modèles.
- Pseudo-états des services - La gestion de pseudo-états de services qui étaient redondants a été supprimée du CGI d'état. Cela affectera les URL codées en dur qui utilisent le paramétre du CGI servicestatustypes=X. Voyez include/statusdata.h pour la nouvelle liste des états de service que vous pouvez utiliser.
- Changements dans le contrôle de la fraîcheur - L'algorithme de contrôle de la fraîcheur a légèrement changé. Le contrôle de fraîcheur ne se fera pas si l'instant présent n'est pas définit dans le paramétre check_timeperiod de l'hôte ou du service. De plus, les contrôles de fraîcheur n'auront plus lieu si les deux paramétres check_interval et freshness_threshold pour l'hôte ou le service valent zéro (0).