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{
		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 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{
		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 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.