Introduction
Cette documentation va essayer de vous expliquer comment vous pouvez exploiter les fonctionnalités ( quelque peu cachées) des définitions d'objets basée sur des modèles , ne serait ce que pour "ne pas pêter les plombs". Comment, me demanderez vous ? Plusieurs types d'objets permettent de spécifier de multiples noms d'hôtes et/ou de groupes d'hôtes dans les définitions, vous permettant de copier la défintion de l'objet dans de multiples hôtes et services. Je vais parcourir séparement chaque type d'objet. Pour démarrer, les types d'objets qui supportent ce type d'astuce sont :
Les types d'objets qui ne sont pas listés ci-dessus (c.a.d les périodes, les commandes) ne supportent pas les fonctionnalités que je vais vous décrire maintenant.
Services
Hôtes multiples: Si vous désirez créer des services identiques, assignés à de multiples hôtes, vous pouvez spécifier des hôtes multiples dans la directive host_name comme suit:
define service{ host_name HOST1,HOST2,HOST3,...,HOSTN service_description SOMESERVICE other service directives ... }
La définition ci-dessus va créer un service appellé SOMESERVICE sur les hôtes HOST1 à HOSTN. Toutes les instances du service SOMESERVICE doivent être identiques (c.a.d avoir la même commande de contrôle, le même max_check_attempts, la même période de notification, etc.).
Tous les hôtes situés dans de multiples groupes d'hôtes : Si vous voulez créer des services identiques, assignés à tous les hôtes d'un ou de plusieurs groupes d'hôtes, vous pouvez le faire en une seule définition de service. Comment ? La directive hostgroup_name autorise à spécifier un ou plusieurs groupes d'hôtes pour le service qui doit être créé.
define service{ hostgroup_name HOSTGROUP1,HOSTGROUP2,...,HOSTGROUPN service_description SOMESERVICE other service directives ... }
La définition ci-dessus va créer un service appellé SOMESERVICE sur tous les hôtes membre des groupes d'hôtes HOSTGROUP1 à HOSTGROUPN. Toutes les instance du service SOMESERVICE doivent être identiques (c.a.d avoir la même commande de contrôle, le même max_check_attempts, la même période de notification, etc.).
Tous les hôtes: Si vous voulez créer des services identiques, assignés à tous les hôtes de vos fichiers de configurations, vous pouvez utiliser un "joker" dans la directive host_name comme suit:
define service{ host_name * service_description SOMESERVICE other service directives ... }
La définition ci-dessus va créer un service appellé SOMESERVICE sur tous les hôtes définis dans vos fichiers de configurations. Toutes les instance du service SOMESERVICE doivent être identiques (c.a.d avoir la même commande de contrôle, le même max_check_attempts, la même période de notification, etc.).
Service Escalations
Hôtes multiples: Si vous désirez créer une escalade de service pour des services de même nom/description, assignés à des hôtes multiples, vous pouvez spécifier des hôtes multiples dans la directive host_name comme suit:
define serviceescalation{ host_name HOST1,HOST2,HOST3,...,HOSTN service_description SOMESERVICE other escalation directives ... }
La définition ci-dessus va créer une escalade de service pour les services appellés SOMESERVICE sur les hôtes HOST1 à HOSTN. Toutes les instances du service SOMESERVICE doivent être identiques (c.a.d avoir le même contact de groupe, le même intervalle de notification, etc)
Tous les hôtes de multiples groupes d'hôtes: Si vous désirez créer une escalade de service pour des services de même nom/description, assignés à tous les hôtes dans un ou plusieurs groupes d'hôtes, vous pouvez spécifier dans la directive hostgroup_name :
define serviceescalation{ hostgroup_name HOSTGROUP1,HOSTGROUP2,...,HOSTGROUPN service_description SOMESERVICE other escalation directives ... }
La définition ci-dessus va créer une escalade de service pour les services appellés SOMESERVICE sur tous les hôtes membres des groupes d'hôtes HOSTGROUP1 à HOSTGROUPN. Toutes les instances de l'escalade de service doivent être identiques (c.a.d avoir le même contact de groupe, le même intervalle de notification, etc)
Tous les hôtes: Si vous désirez créer une escalade de service pour des services de même nom/description, assignés à tous les hôtes définis dans vos fichiers de configuration, vous pouvez utiliser un "joker" dans la directive host_name :
define serviceescalation{ host_name * service_description SOMESERVICE other escalation directives ... }
La définition ci-dessus va créer une escalade de service pour les services appellés SOMESERVICE sur tous les hôtes définis dans vos fichiers de configuration. Toutes les instances de l'escalade de service doivent être identiques (c.a.d avoir le même contact de groupe, le même intervalle de notification, etc)
Services multiples: Si vous désirez créer une escalade de service pour tous les services assignés à un hôte, vous pouvez utiliser un "joker" dans la directive service_description comme suit:
define serviceescalation{ host_name HOST1 service_description * other escalation directives ... }
La définition ci-dessus va créer une escalade de service pour tous les services sur l'hôte HOST1. Toutes les instances de l'escalade de service doivent être identiques (c.a.d avoir le même contact de groupe, le même intervalle de notification, etc)
Si vous vous sentez d'esprit aventureux, vous pouvez spécifier un "joker" à la fois dans la directive host_name et la directive service_description. Cela créera une escalade de service pour tous les services définis dans vos fichiers de configuration.
Dépendance de service
Hôtes multiples : Si vous désirez créer des dépendances de service pour des services de même nom/description, assignés à des hôtes mulitples, vous pouvez spécifier des hôtes multiples dans les directives host_name et/ou dependent_host_name comme suit:
define servicedependency{ host_name HOST1,HOST2 service_description SERVICE1 dependent_host_name HOST3,HOST4 dependent_service_description SERVICE2 other dependency directives ... }
Sur cet exemple, le service SERVICE2 sur les hôtes HOST3 et HOST4 sera dépendant du service SERVICE1 sur les hôtes HOST1 et HOST2. Toutes les instances de cette dépendance de service doivent être identiques, à l'exception des noms d'hôtes.(c.a.d avoir le même critère d'echec de notification, etc.).
Tous les hôtes dans de multiples groupes d'hôtes: Si vous désirez créer des dépendances de service pour des services de même nom/description, assignés à tous les hôtes dans un ou plusieurs groupes d'hôtes, vous pouvez utiliser les directives hostgroup_name et/ou dependent_hostgroup_name comme suit:
define servicedependency{ hostgroup_name HOSTGROUP1,HOSTGROUP2 service_description SERVICE1 dependent_hostgroup_name HOSTGROUP3,HOSTGROUP4 dependent_service_description SERVICE2 other dependency directives ... }
Sur cet exemple, le service SERVICE2 sur tous les hôtes des groupes d'hôtes HOSTGROUP3 et HOSTGROUP4 sera dépendant du service SERVICE1 sur tous les hôtes dans les groupes d'hôtes HOSTGROUP1 et HOSTGROUP2. En supposant qu'il y a 5 hôtes dans chaque groupe, cette définition est l'équivalent de 100 définitions unitaires de service! Toutes les instances de cette dépendance de service doivent être identiques, à l'exception des noms d'hôtes.(c.a.d avoir le même critère d'echec de notification, etc.).
Services multiples: Si vous désirez créer des dépendances de service pour tous les services d'un hôte particulier, , vous pouvez utiliser un "joker" dans les directives service_description et/ou dependent_service_description comme suit:
define servicedependency{ host_name HOST1 service_description * dependent_host_name HOST2 dependent_service_description * other dependency directives ... }
Dans cet exemple, tous les services sur l'hôte HOST2 seront dépendants de tous les services sur l'hôte HOST1. Toutes les instances de cette dépendance de service doivent être identiques, à l'exception des noms d'hôtes.(c.a.d avoir le même critère d'echec de notification, etc.).
Escalade d'hôtes
Hôtes multiples :Si vous désirez créer une escalade d' hôte pour des hôtes multiples, vous pouvez spécifier des hôtes multiples dans la directive host_name comme suit:
define hostescalation{ host_name HOST1,HOST2,HOST3,...,HOSTN other escalation directives ... }
La définition ci-dessus va créer une escalade d'hôte pour les hôtes HOST1 à HOSTN. Toutes les instances de l'escalade d'hôte doivent être identiques (c.a.d avoir le même contact de groupe, le même intervalle de notification, etc)
Tous les hôtes de multiples groupes d'hôtes: Si vous désirez créer une escalade d'hôtes pour tous les hôtes dans un ou plusieurs groueps d'hôtes, vous pouvez spécifier dans la directive hostgroup_name :
define hostescalation{ hostgroup_name HOSTGROUP1,HOSTGROUP2,...,HOSTGROUPN other escalation directives ... }
La définition ci-dessus va créer une escalade d'hôtes pour tous les hôtes membres des groupes d'hôtes HOSTGROUP1 à HOSTGROUPN. Toutes les instances de l'escalade de service doivent être identiques (c.a.d avoir le même contact de groupe, le même intervalle de notification, etc)
Tous les hôtes: Si vous désirez créer une escalade d'hôtes pour tous les hôtes définis dans vos fichiers de configuration, vous pouvez utiliser un "joker" dans la directive host_name :
define hostescalation{ host_name * other escalation directives ... }
Cette définition va créer une escalade d'hôte pour tous les hôtes définis dans vos fichiers de configuration.Toutes les instances de l'escalade de service doivent être identiques (c.a.d avoir le même contact de groupe, le même intervalle de notification, etc)
Dépendances d'hôtes
Hôtes multiples: Si vous désirez créer des dépendances d'hôtes pour de multiples hôtes, vous pouvez spécifier des hôtes multiples dans les directives host_name et/ou dependent_host_name comme suit:
define hostdependency{ host_name HOST1,HOST2 dependent_host_name HOST3,HOST4,HOST5 other dependency directives ... }
Sur cet exemple, la définition sera équivalente à la création de six dépendances d'hôtes distinctes. Ici, les hôtes HOST3 et HOST4 seront dépendants des hôtes HOST1 et HOST2. Toutes les instances de cette dépendance d'hôtes doivent être identiques, à l'exception des noms d'hôtes.(c.a.d avoir le même critère d'echec de notification, etc.).
Tous les hôtes dans de multiples groupes d'hôtes: Si vous désirez créer des escalades d'hôtes, assignées à tous les hôtes dans un ou plusieurs groupes d'hôtes, vous pouvez utiliser les directives hostgroup_name et/ou dependent_hostgroup_name comme suit:
define hostdependency{ hostgroup_name HOSTGROUP1,HOSTGROUP2 dependent_hostgroup_name HOSTGROUP3,HOSTGROUP4 other dependency directives ... }
Dans cet exemple; tous les hôtes dans les groupes d'hôtes HOSTGROUP3 et HOSTGROUP4 seront dépendants de tous les hôtes dans le groupes d'hôtes HOSTGROUP1 et HOSTGROUP2. Toutes les instances de cette dépendance d'hôtes doivent être identiques, à l'exception des noms d'hôtes.(c.a.d avoir le même critère d'echec de notification, etc.).
Groupes d'hôtes
Tous les hôtes: si vous désirez créer un groupe d'hôte qui contienne tous les hôtes définis dans vos fichiers de configuration, vous pouvez utiliser un "joker" dans la directive members comme suit:
define hostgroup{ hostgroup_name HOSTGROUP1 members * other hostgroup directives ... }
Cette définition créera un groupe d'hôtes appelé HOSTGROUP1 qui contient tous les hôtes définis comme mebres dans vos fichiers de configuration.
Escalade de groupe d'hôtes
Groupes d'hôtes multiples : Si vous désirez créer des escalades de groupes d'hôtes qui soient assignées à de multiples groupes d'hôtes, vous pouvez spécifier des groupes d'hôtes mulitples dans la directive hostgroup_name comme suit:
define hostgroupescalation{ hostgroup_name HOSTGROUP1,HOSTGROUP2,...,HOSTGROUPN other escalation directives ... }
Cette définition va créer une escalade de groupes d'hôtes distincte pour les groupes d'hôtes HOSTGROUP1 à HOSTGROUPN. Toutes les instances de l'escalade du groupe d'hôtes doivent être identiques (c.a.d avoir les mêmes contacts de groupe, les mêmes intervalles de notifications, etc)