Trucs et astuces "gain de temps" dans les définitions de modèles d'objets

ou…
"Comment ne pas pêter les plombs"

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ées 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 ou services. Je vais parcourir séparement chaque type d'objet permettant cette fonctionnalité. Pour commencer, les types d'objets concernés sont les suivants :

Les types d'objets qui ne sont pas listés ci-dessus (c.-à-d. les périodes, les commandes) ne supportent pas les fonctionnalités que je vais vous décrire maintenant.

Correspondance avec des expressions régulières

Les exemples que je donne ci-dessous utilisent une correspondance "standard" avec les noms des objets. Si vous le souhaitez, vous pouvez activer la correspondance des noms d'objets avec des expressions régulières grâce au paramètre de configuration use_regexp_matching. Par défaut, les expressions régulières ne sont utilisées que dans les noms d'objets contenant les caractères de remplacement * et ?. Si vous souhaitez voir les expressions régulières appliquées sur tous les noms d'objets (sans tenir compte du fait qu'ils contiennent ou non les caractères de remplacement * et ?), activez le paramètre de configuration use_true_regexp_matching.

Les expressions régulières peuvent être utilisées dans n'importe quel champ des exemples ci-dessous (noms d'hôtes, noms de groupe d'hôtes, noms de service, et noms de groupes de service).

NOTE : Attention lorsque vous activez les expressions régulières - vous aurez peut-être à modifier votre fichier de configuration, pour éviter que des paramètres que vous ne souhaitez pas voir interprétés comme des expressions régulières ne le soient ! Les problèmes devraient être mis en évidence lorsque vous vérifiez votre configuration.

Définitions de service

Hôtes multiples : Si vous désirez créer des services identiques, assignés à plusieurs 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 seront identiques (c.-à-d. auront la même commande de contrôle, le même nombre maximum d'essais, 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 ? Le paramètre hostgroup_name vous permet de spécifier un ou plusieurs groupes d'hôtes pour lesquels le service doit être créé :

        define service{
			HOSTGROUP1,HOSTGROUP2,…,HOSTGROUPN
			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 seront identiques (c.-à-d. auront la même commande de contrôle, le même nombre maximum d'essais, 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 caractère de remplacement dans le paramètre host_name comme suit:

        define service{
			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 seront identiques (c.-à-d. auront la même commande de contrôle, le même nombre maximum d'essais, la même période de notification, etc.).

Définitions d'escalade de service

Hôtes multiples : Si vous désirez créer des escalades de service pour des services portant le même nom/description, et qui sont assignés à plusieurs hôtes, vous pouvez spécifier des hôtes multiples dans le paramètre 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 pour les services appelés SOMESERVICE sur les hôtes HOST1 à HOSTN. Toutes les instance de l'escalade de service seront identiques (c.-à-d. auront le même groupe de contact, 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 portant le même nom/description, et qui sont assignés à tous les hôtes dans un ou plusieurs groupes d'hôtes, vous pouvez spécifier dans le paramètre 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 pour les services appelés SOMESERVICE sur tous les hôtes membres des groupes HOSTGROUP1 à HOSTGROUPN. Toutes les instance de l'escalade de service seront identiques (c.-à-d. auront le même groupe de contact, le même intervalle de notification, etc.).

Tous les hôtes : Si vous désirez créer une escalade de service identique pour des services portant le même nom/description, et qui sont assignés à tous les hôtes définis dans vos fichiers de configuration, vous pouvez utiliser un caractère de remplacement dans la directive host_name de la manière suivante :

	define serviceescalation{
			host_name *
			service_description SOMESERVICE
			other escalation directives…
                }

La définition ci-dessus va créer une escalade pour tous les services appelés SOMESERVICE de tous les hôtes définis dans vos fichiers de configuration. Toutes les instance de l'escalade de service seront identiques (c.-à-d. auront le même groupe de contact, le même intervalle de notification, etc.).

Tous les services d'un même hôte : Si vous voulez créer une escalade de service pour tous les services assignés à un hôte précis, vous pouvez utiliser un caractère de remplacement dans le paramètre service_description de la manière suivante :

define serviceescalation{
	host_name	HOST1
	service_description *
	other escalation directives…
                }

La définition ci-dessus va créer une escalade pour tous les services de l'hôte HOST1. Toutes les instance de l'escalade de service seront identiques (c.-à-d. auront le même groupe de contact, le même intervalle de notification, etc.).

Si vous vous sentez l'esprit particulièrement aventureux, vous pouvez spécifier un caractère de remplacement à la fois dans les paramètres host_name et service_description. Cela créera une escalade de service pour tous les services définis dans vos fichiers de configuration.

Services multiples du même hôte : Si vous souhaitez créer une escalade de service pour plusieurs services assignés à un hôte précis, vous pouvez spécfier plusieurs descriptions de service dans le paramètre service_description de la manière suivante :

define serviceescalation{
	host_name HOST1
	service_description SERVICE1,SERVICE2,…,SERVICEN
	other escalation directives…             }

La définition ci-dessus va créer une escalade pour les services SERVICE1 à SERVICEN de l'hôte HOST1. Toutes les instance de l'escalade de service seront identiques (c.-à-d. auront le même groupe de contact, le même intervalle de notification, etc.).

Tous les Services de multiples groupes de services : Si vous voulez créer des escalades de service pour tous les services appartenant à un ou plusieurs groupes de services, vous pouvez utiliser le paramètre servicegroup_name comme suit :

define serviceescalation{
	servicegroup_name SERVICEGROUP1,SERVICEGROUP2,…,SERVICEGROUPN
	other escalation directives…
                }

La définition ci-dessus va créer une escalade pour tous les services membres des groupes de services SERVICEGROUP1 à SERVICEGROUPN. Toutes les instance de l'escalade de service seront identiques (c.-à-d. auront le même groupe de contact, le même intervalle de notification, etc.).

Définitions de dépendance de service

Hôtes multiples : Si vous souhaitez créer des dépendances de service pour des services portant le même nom/description, et qui sont assignés à plusieurs hôtes, vous pouvez spécifier de multiples hôtes dans les paramètres 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…
                }

Dans l'exemple ci-dessus, le service SERVICE2 des hôtes HOST3 et HOST4 sera dépendant du service SERVICE1 des hôtes HOST1 et HOST2. Toutes les instances de la dépendance de service seront identiques, mis à part les noms d'hôtes (c.-à-d. auront le même critère d'échec de notification, etc.).

Tous les hôtes de multiples groupes d'hôtes : Si vous voulez créer des dépendances de service pour des services portant le même nom/description, et qui sont assignés à tous les hôtes d'un ou plusieurs groupes d'hôtes, vous pouvez utiliser le paramètre 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…
                }

Dans l'exemple ci-dessus, le service SERVICE2 de tous les hôtes membres des groupes d'hôtes HOSTGROUP3 et HOSTGROUP4 seront dépendant du service SERVICE1 de tous les hôtes membres des groupes d'hôtes HOSTGROUP1 et HOSTGROUP2. Si l'on suppose qu'il y a cinq hôtes dans chacun des groupes d'hôtes, cette définition équivaut à créer 100 définitions simples de dépendance de service ! Toutes les instances de la dépendance de service seront identiques, mis à part les noms d'hôtes (c.-à-d. auront le même critère d'échec de notification, etc.).

Tous les services d'un même hôte : Si vous voulez créer des dépendances de service pour tous les services assignés à un hôte précis, vous pouvez utiliser un caractère de remplacement dans les paramètres 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 l'exemple ci-dessus, tous les services de l'hôte HOST2 seront dépendants de tous les services de l'hôte HOST1. Toutes les instances de la dépendance de service seront identiques (c.-à-d. auront le même critère d'échec de notification, etc.).

Services muiltiples d'un même hôte : Si vous voulez créer des dépendances de service pour plusieurs services assignés à un hôte précis, vous pouvez spécifier plusieurs descriptions de service dans les paramètres service_description et/ou dependent_service_description comme suit :

define servicedependency{
	host_name HOST1
	service_description SERVICE1,SERVICE2,…,SERVICEN
	dependent_host_name HOST2
	dependent_service_description SERVICE1,SERVICE2,…,SERVICEN
	other dependency directives…
                }

Tous les services de multiples groupes de service : Si vous voulez créer des dépendances de service pour tous les services appartenant à un ou plusieurs groupes de services, vous pouvez utiliser les paramètres servicegroup_name et/ou dependent_servicegroup_name comme suit :

define servicedependency{
	servicegroup_name SERVICEGROUP1,SERVICEGROUP2,…,SERVICEGROUPN
	dependent_servicegroup_name SERVICEGROUP3,SERVICEGROUP4,…SERVICEGROUPN
	other escalation directives…
                }

Définitions d'escalade d'hôte

Hôtes multiples : Si vous souhaitez créer des escalades d'hôte pour plusieurs hôtes, vos pouvez spécifier plusieurs hôtes dans le paramètre host_name comme suit :

define hostescalation{
	host_name HOST1,HOST2,HOST3,…,HOSTN
	other escalation directives…
                }

La définition ci-dessus créera une escalade d'hôte pour les hôtes HOST1 à HOSTN. Toutes les instances de l'escalade d'hôte seront identiques (c.-à-d. auront les mêmes groupes de contacts, le même intervalle de notification, etc.).

Tous les hôtes de multiples groupes d'hôtes : Si vous voulez créer des escalades d'hôte pour tous les hôtes d'un ou plusieurs groupes d'hôtes, vos pouvez utiliser le paramètre hostgroup_name comme suit :

define hostescalation{
	hostgroup_name HOSTGROUP1,HOSTGROUP2,…,HOSTGROUPN
	other escalation directives…
                }

La définition ci-dessus créera une escalade d'hôte sur tous les hôtes membres des groupes d'hôtes HOSTGROUP1 à HOSTGROUPN. Toutes les instances de l'escalade d'hôte seront identiques (c.-à-d. auront les mêmes groupes de contacts, le même intervalle de notification, etc.).

Tous les hôtes : Si vous voulez créer des escalades d'hôte identiques pour tous les hôtes définis dans vos fichiers de configuration, vous pouvez utiliser un caractère de remplacement dans le paramètre host_name comme suit :

define hostescalation{
			host_name *
			other escalation directives…
                }

La définition ci-dessus créera une escalade d'hôte sur tous les hôtes définis dans vos fichiers de configuration. Toutes les instances de l'escalade d'hôte seront identiques (c.-à-d. auront les mêmes groupes de contacts, le même intervalle de notification, etc.).

Définitions de dépendance d'hôte

Hôtes multiples : Si vous voulez créer des dépendances d'hôte pour plusieurs hôtes, vous pouvez spécifier plusieurs hôtes dans les paramètres host_name et/ou dependent_host_name comme suit :

define hostdependency{
	host_name HOST1,HOST2
	dependent_host_name HOST3,HOST4,HOST5
	other dependency directives…
                }

La définition ci-dessus équivaut à créer six dépendances d'hôte distinctes. Dans cet exemple, les hôtes HOST3, HOST4 et HOST5 seront dépendants à la fois d'HOST1 et de HOST2. Toutes les instances de la dépendance d'hôte seront identiques, à l'exception des noms d'hôtes (c.-à-d. auront le même critère d'échec de notification, etc.).

Tous les hôtes de multiples groupes d'hôtes : Si vous voulez créer des dépendances d'hôte pour tous les hôtes d'un ou plusieurs groupes d'hôtes, vous pouvez utiliser les paramètres hostgroup_name et/ou dependent_hostgroup_name comme suit :

define hostdependency{
	hostgroup_name HOSTGROUP1,HOSTGROUP2
	dependent_hostgroup_name HOSTGROUP3,HOSTGROUP4
	other dependency directives…
                }

Dans l'exemple ci-dessus, tous les hôtes des groupes d'hôtes HOSTGROUP3 et HOSTGROUP4 seront dépendants de tous les hôtes des groupes d'hôtes HOSTGROUP1 et HOSTGROUP2. Toutes les instances de la dépendance d'hôte seront identiques, à l'exception des noms d'hôtes (c.-à-d. auront le même critère d'échec de notification, etc.).

Groupes d'hôtes

Tous les hôtes : Si vous souhaitez créer un groupe d'hôte contenant tous les hôtes définis dans vos fichiers de configuration, vous pouvez utiliser un caractère de remplacement dans le paramètre members de la manière suivante :

define hostgroup{
	hostgroup_name HOSTGROUP1
	members *
	other hostgroup directives…
                }

La définition ci-dessus créera un groupe d'hôtes appelé HOSTGROUP1 contenant tous les hôtes définis dans vos fichiers de configuration.