Groupes d'hôtes et modèles.
Les modèles vous permettent de définir des classes pour vos hôtes et services, par exemple "service normal", "service critique", "hôte à faible priorité". Ils servent également de moyen utile pour diviser les responsabilités si vous avez plusieurs équipes avec des responsabilités différentes, vous pouvez donc avoir un modèle "hôte Linux" et un modèle "hôte Windows", chacun définissant les informations de contact appropriées.
Vous pouvez utiliser plusieurs modèles sur une seule ressource, afin de pouvoir composer des modèles orthogonaux appropriés. Par exemple, vous pouvez avoir
host foo {
use windows-host,normal-priority-host
...
}
ce qui entraînerait les informations de contact (et les escalades) pour l'équipe Windows et les taux d'interrogation et les seuils pour un hôte "normal".
Les groupes d'hôtes vous permettent de regrouper toutes les vérifications d'un sous-ensemble de vos hôtes. Ayez des choses comme "baseline-linux-hosts" qui vérifient la charge, l'espace disque, la ssh
capacité et tout ce qui devrait être sur chaque hôte que vous surveillez. Ajoutez des groupes comme "https-servers" avec des vérifications de la connectivité HTTP, de la connectivité HTTPS et des dates d'expiration des certificats SSL; "serveurs de fichiers" avec des vérifications d'accessibilité NFS et SMB et des vérifications de disque peut-être plus agressives; ou "machines virtuelles" avec vérification du bon fonctionnement des outils d'accessibilité VM.
Mettez chaque hôte et groupe d'hôtes dans son propre fichier. Ce fichier doit contenir la définition d'hôte ou de groupe d'hôtes en premier, suivie des définitions des services qui lui sont applicables.
Si vous utilisez la cfg_dir
directive dans votre nagios.cfg
fichier, Nagios effectuera une recherche récursive dans ce répertoire. Profitez-en. Pour un paramètre de cfg_dir=/etc/nagios/conf.d
, vous pouvez avoir une arborescence de répertoires comme celle-ci:
- /etc/nagios/conf.d/
- commands.d /
- http.cfg
- nrpe.cfg
- smtp.cfg
- ssh.cfg
- hosts.d /
- host1.cfg
- host2.cfg
- host3.cfg
- hostgroups.d /
- hostgroup1.cfg
- hostgroup2.cfg
J'ai tendance à créer un répertoire pour chaque type de ressource (commandes, groupes de contacts, contacts, escalades, groupes d'hôtes, hôtes, groupes de services, périodes de temps), à l'exception des services, qui sont regroupés avec les hôtes ou les groupes d'hôtes qui les utilisent.
La structure précise peut varier selon vos besoins organisationnels. Lors d'un travail passé, j'ai utilisé des sous-répertoires sous hosts.d
pour chaque site différent. Dans mon travail actuel, la plupart des définitions d'hôte Nagios sont gérées par Puppet, il y a donc un répertoire pour les hôtes gérés par Puppet et un autre pour les hôtes gérés manuellement.
Notez que ce qui précède décompose également les commandes en plusieurs fichiers, généralement par protocole. Ainsi, le nrpe.cfg
fichier aurait les commandes check_nrpe
et check_nrpe_1arg
, alors que http.cfg
pourrait avoir check_http
, check_http_port
, check_https
, check_https_port
et check_https_cert
. 1
Je n'ai généralement pas un grand nombre de modèles, donc je n'ai généralement qu'un hosts.d/templates.cfg
fichier et un services.d/templates.cfg
fichier. Si vous les utilisez plus intensivement, ils peuvent aller dans des fichiers correctement nommés dans un templates.d
répertoire.
1 J'aime aussi avoir une check_http_blindly
commande, qui est essentiellement check_http -H $HOSTADDRESS$ -I $HOSTADDRESS$ -e HTTP/1.
; il renvoie OK même s'il obtient un code de réponse 403.