Nagios 3: amélioration dans l'héritage et la gestion des templates (2/2)
Si vous ne connaissez pas l'héritage multiple, il vous faut d'abord l'apprendre. Uns fois cette étape passée, vous pouvez lire ce billet.
Ce qu'il y a de bien avec l'héritage c'est l'éternelle discussion: "pour ou contre l'héritage multiple?". Le but ici n'est pas d'être pour ou contre (bien au contraire!) mais de vivre avec son temps. Nagios versions 1.x et 2.x ne supportaient pas l'héritage multiple. Nagios 3 le supporte. Il est toujours possible d'interdire à tout le monde d'utiliser l'héritage multiple mais autant savoir les apports de cette technique pour pouvoir la critiquer plus facilement ;-) .
L'héritage multiple permet d'hériter de plusieurs modèles. Auparavant, Nagios ne supportait pas l'héritage multiple. Ce qui avait pour inconvénient une double écriture de paramètres de configuration à certains endroits. C'était le cas notamment pour les services, sur des configurations avancées avec de nombreux modèles de service. Surtout, cela avait pour inconvénient d'être moins parlant au niveau configuration. Un exemple? Admettons que l'on définisse une stratégie de configuration poussée. Plusieurs modèles de services sont définis: un modèle standard , un modèle Linux, un modèle Windows, un modèle AIX, ... Puis ensuite, on définit les modèles de service Linux_Cpu_Usage
, Windows_Cpu_Usage
et Aix_Cpu_Usage
vérifiant le taux d'occupation du CPU sur l'OS considéré et testés toutes les 15 minutes. Puis, les modèles Linux_Process_Status
, Windows_Process_Status
et Aix_Process_Status
vérifient la présence d'un processus sur l'OS considéré. Ceux là doivent être testés toutes les 5 minutes. Comment définir cela en Nagios 2.x? Comme ça:
define service{
register 0
name standard
.... # tous paramètres par défaut
}
define service{
register 0
use standard
name Windows
contact_groups Windows
}
define service{
register 0
use standard
name Linux
contact_groups Linux
}
define service{
register 0
use standard
name Aix
contact_groups Aix
}
define service{
register 0
use Aix
name Aix_Cpu_Usage
check_command ...
normal_check_interval 15
}
define service{
register 0
use Linux
name Linux_Cpu_Usage
check_command ...
normal_check_interval 15
}
define service{
register 0
use Windows
name Windows_Cpu_Usage
check_command ...
normal_check_interval 15
}
define service{
register 0
use Aix
name Aix_Process_Status
check_command ...
normal_check_interval 5
}
define service{
register 0
use Linux
name Linux_Process_Status
check_command ...
normal_check_interval 5
}
define service{
register 0
use Windows
name Windows_Process_Status
check_command ...
normal_check_interval 5
}
Et alors?
me direz vous! C'est simple: il est très facile de se tromper... et d'oublier sur un des templates de plus bas niveau que le test doit être effectué toutes les 5 minutes. Il est plus parlant et moins risqué de faire ceci:
define service{
register 0
name Cpu_Usage
normal_check_interval 15
}
define service{
register 0
name Process_Status
normal_check_interval 5
}
define service{
register 0
use Aix, Cpu_Usage
name Aix_Cpu_Usage
check_command ...
}
define service{
register 0
use Linux, Cpu_Usage
name Linux_Cpu_Usage
check_command ...
}
define service{
register 0
use Windows, Cpu_Usage
name Windows_Cpu_Usage
check_command ...
}
define service{
register 0
use Aix, Process_Status
name Aix_Process_Status
check_command ...
}
define service{
register 0
use Linux, Process_Status
name Linux_Process_Status
check_command ...
}
define service{
register 0
use Windows, Process_Status
name Windows_Process_Status
check_command ...
}
Avec cette stratégie de configuration, il est simple de ne pas se tromper. En documentant cette méthode, les utilisateurs sont habitués à écrire tout le temps la même chose. Il n'ont qu'une question à se poser pour l'héritage: Quel OS?
et Quel type d'indicateur?
. Facile non? Merci Nagios!
L'héritage multiple est une bonne chose s'il est correctement intégré à la stratégie de configuration. Faire de l'héritage multiple pour faire de l'héritage multiple n'est pas utile. J'ai montré un exemple où il est intéressant de l'utiliser. Étant donné que nous sommes aux tous premiers pas de Nagios 3, il est très probable que d'autres apports positifs vont être identifiés avec cette nouvelle fonctionnalité.



"faire de l'heritage multiple pour faire de
Arrangeurs | dimanche, mai 25 2008 | 22:37"faire de l'heritage multiple pour faire de l'heritage multiple n'est pas utile" ! prrécision importante pour la compréhensio ;) merci pour ce billet, c'est toujours un plaisir de cvous lire, byec bye
Bonjour Cédric J'ai lu avec intérêt tes deux
sdeseille | vendredi, juin 6 2008 | 14:24Bonjour Cédric
J'ai lu avec intérêt tes deux articles sur les évolutions de Nagios 3 dans la configuration.
Je vais pouvoir mettre à jour mon support de cours en ajoutant un chapitre sur Nagios 3.
Si tu veux bien y jeter un oeil il est dispo sur mon site.
Bonjour Sébastien, J'ai bien lu ton document. Il
Cédric Temple | samedi, juin 14 2008 | 08:37Bonjour Sébastien,
J'ai bien lu ton document. Il m'a fallu un peu de temps car il est long et très fourni: excellent travail. Je t'ai fait mes retours par email.
A bientôt!