Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Les sources d'import par fichier permettent d'utiliser des fichiers de configuration existants pour importer des éléments.

 

La syntaxe de ces fichiers d'import est très proche de la syntaxe Nagios, à laquelle s'ajoute quelques clés spécifiques à Shinken Entreprise.

 

Les lignes commençant par un # seront considérées comme des commentaires et ne seront pas lues.


Panel

Sommaire

Table of Contents


Les hôtes


Code Block
define host {
	##### Définition générale de l’hôte ####
    host_name 					[OBLIGATOIRE]	*Nom de l'hôte*
	name						[OBLIGATOIRE]	*Nom de l'hôte (lorsqu'il s'agit d'un modèle d'hôte)*
	display_name								*Description*
    address 									*Adresse de l'hôte*
    use 										*Liste des modèles d'hôte à utiliser*
    hostgroups 									*Liste des groupes d'hôtes dans lesquels appartient l'hôte*
    realm 										*Royaume de l'hôte*
    business_impact 							[0-5]; Impact métier de l'hôte
    parents 									*Liste des hôtes desquels dépend cet hôte (d'un point de vue réseau)*
    notes_url 									*URL externe pouvant donner des informations supplémentaires sur l'hôte*
    enabled 									[0/1]; Est ce que l'hôte est activé/désactivé ?

 
	#### Données ####
	_NOMDEDONNEE								*valeur de la donnée*
 
	#### Droits de l'utilisateur ####
	view_contacts								*Les utilisateurs qui voient l'hôte*
	view_contact_groups							*Les groupes d'utilisateurs qui voient l'hôte*
	notification_contacts						*Les utilisateurs à notifier*
	notification_contact_groups					*Les groupes d'utilisateurs à notifier*
	edition_contacts							*Les utilisateurs peuvent modifier la configuration de l'hôte.*
	edition_contact_groups						*Les groupes d'utilisateurs qui peuvent modifier la configuration de l'hôte.*
    
	contacts 									*Liste des contacts qui pourront Voir/Editer/EtreNotifié*
    contact_groups 								*Groupes d'utilisateurs qui pourront Voir/Editer/EtreNotifié*
	
	#### Parametres de supervision ####
    check_period 								*Période de temps pendant laquelle les checks sont exécutés*
    check_command 								*Commande utilisée pour vérifier le statut UP/DOWN de l'hôte*
	max_check_attempts 							*Nombre de vérifications de l'état de l'hôte pour passer en état HARD*
	check_running_timeout 						*Timeout de la commande de vérification de l'hôte (en secondes)*
	check_interval 								*Intervalle d'execution de la commande de vérification de l'hôte*
    retry_interval 								*Intervalle de confirmation d'état (en minutes)* 
    active_checks_enabled 						[0/1]; Est ce que les checks actifs sont activés pour cet hôte ?
    passive_checks_enabled 						[0/1]; Est ce que les checks passifs sont activés pour cet hôte ?
    maintenance_period 							*Période de temps récurrente pendant laquelle l'hôte est en maintenance*
 
	#### Notifications ####

    notifications_enabled 						[0/1]; Est ce que les notifications sont activées pour cet hôte ?
    notification_interval 						*Intervalle d'envoi des notifications (en minutes)*
    notification_period 						*Période de temps pendant laquelle les notifications sont actives*
    notification_options						*Cette propriété permet de définir quels états de l'hôte peuvent envoyer des notifications*
	first_notification_delay					*Délai avant l'envoi de la première notification*
    escalations 								*Liste des escalades de notifications utilisées pour cet hôte*
    
	#### Expert ####
 
	poller_tag 									*Poller tag associé à cet hôte*
	reactionner_tag				    			*Poller reactionner associé à cet hôte*
	process_perf_data 							[0/1]; Prendre en compte la métrique éventuellement retournée par la check_command ?
	flap_detection_enabled 						[0/1]; Est ce que la détection du flapping est activée ?
	flap_detection_options						[o,d,u] ;Cette propriété permet de définir quel statut d'un hôte sont pris en compte pour le calcul du % de FLAPPING
    low_flap_threshold 							[0-100]; Seuil de sortie de l'état Flapping
	high_flap_threshold 						[0-100]; Seuil d'entrée dans l'état Flapping 
    event_handler_enabled 						[0/1]; Le gestionnaire d’événements est-il activé pour cet hôte ?
    event_handler 								*Commande utilisée pour le gestionnaire d'évenements*
	check_freshness								[0/1]; Est ce que la vérification de fraicheur du check est activée ?
    freshness_threshold 						*Seuil de fraicheur du check*
	business_impact_modulations 				*Modulation d'impact métier à utiliser*
	macromodulations 							*Modulation de données à utiliser*
	resultmodulations 							*Modulation de données à utiliser*
    service_excludes 							*Liste des checks à ne pas appliquer sur l'hôte*

	register									[0/1]; L'objet est-il un modèle d'hôte ou un hôte ?
}

 

Pour créer un modèle d'hôte:

  • La clé register doit avoir la valeur 0
  • La clé host_name est remplacée par la clé name
  • La clé for_all_users est spécifique aux modèles d'hôte: elle permet de définir si le modèle va être visible par tout le monde (1) ou seulement par les utilisateurs administrateurs Shinken (0).

    Info
    Le nom d'hôte (host_name) ne doit pas exister en tant que nom de cluster. Si tel est le cas, un warning sera affiché à l'import indiquant que les éléments de même nom ont été ignorés.




Les Clusters

Les clusters sont en fait des hôtes particuliers.

Ils sont donc définis avec le mot clé host. La différence avec les clusters et les hôtes est qu'un cluster possède obligatoirement une règle bp_rule.

Code Block
define host {
    #### Définition du Cluster ####
    host_name 					[OBLIGATOIRE]	*Nom de l'hôte*
	check_command				[OBLIGATOIRE]	bp_rule!ma-bp-rule
    realm 										*Royaume de l'hôte*
    business_impact 							[0-5]; Impact métier du cluster
    enabled 									[0/1]; Est ce que le cluster est activé/désactivé ?

	#### Notifications ####
    notifications_enabled 						[0/1]; Est ce que les notifications sont activées pour cet hôte ?	
    contacts 									*Liste des contacts auxquels envoyer les notifications*
    contact_groups 								*Groupes d'utilisateurs auxquels seront envoyées les notifications pour cet hôte*
    notification_interval 						*Intervalle d'envoi des notifications (en minutes)*
    notification_period 						*Période de temps pendant laquelle les notifications sont actives*
	notification_options						*Etats pour lesquels il faut envoyer une notification*
    first_notification_delay 					*Délai avant l'envoi de la première notification*
    escalations 								*Liste des escalades de notifications utilisées pour cet hôte*

	#### Expert ####
	flap_detection_enabled 						[0/1]; Est ce que la détection du flapping est activée ?
	flap_detection_options						[o,d,u] ;Cette propriété permet de définir quel statut d'un hôte sont pris en compte pour le calcul du % de FLAPPING
    low_flap_threshold 							[0-100]; Seuil de sortie de l'état Flapping
	high_flap_threshold 						[0-100]; Seuil d'entrée dans l'état Flapping 
    event_handler_enabled 						[0/1]; Le gestionnaire d’événements est-il activé pour cet hôte ?
    event_handler 								*Commande utilisée pour le gestionnaire d'évenements*	
}


Info
Le nom du cluster (host_name) ne doit pas exister en tant que nom d'hôte. Si tel est le cas, un warning sera affiché à l'import indiquant que les éléments de même nom ont été ignorés.


Les groupes d'hôtes


Code Block
define hostgroup {
	hostgroup_name			[OBLIGATOIRE]	*Nom du groupe d'hôtes*
	members									*Liste des hôtes à ajouter dans le groupe*
	template_members						*Les ayant les templates listés seront ajoutés au groupe*
	enabled 								[0/1]; Est ce que le groupe d'hôtes est activé/désactivé ?
	pack 									*Pack auquel appartient le groupe*
}


Les checks


Code Block
define service {
 
    ##### Définition du check - Général ####
	service_description				[OBLIGATOIRE]	*Nom du check*
    name							[OBLIGATOIRE]	*Nom du check (lorsqu'il s'agit d'un template)*
	use 											*Liste des modèles de check à utiliser*
    hostgroup_name									*Liste des groupes d'hôtes sur lesquels va s'appliquer le check*
    host_name 										*Liste des hôtes sur lesquels le check va s'appliquer*  
    notes_url 										*URL externe pouvant donner des informations supplémentaires sur le check*
	enabled 										[0/1]; Est ce que le groupe d'hôtes est activé/désactivé ?
	pack 											*Pack auquel appartient le groupe*
 
	#### Données ####
	_NOMDEDONNEE									*valeur de la donnée*
 
	#### Paramètres de supervision ####
    maintenance_period 								*Période de temps récurrente pendant laquelle l'hôte est en maintenance*
    check_period 									*Période de temps pendant laquelle les checks sont exécutés*
    check_command 					[OBLIGATOIRE]	*Commande utilisée pour vérifier le statut UP/DOWN de l'hôte*
    max_check_attempts 								*Nombre de vérifications de l'état du check pour passer en état HARD*
    check_interval 					[OBLIGATOIRE]	*Intervalle d’exécution de la commande*
    retry_interval 					[OBLIGATOIRE]	*Intervalle de confirmation d'état (en minutes)*

    check_running_timeout 							*Timeout de la commande de vérification de l'hôte (en secondes)*

    active_checks_enabled 							[0/1]; Est ce que les checks actifs sont activés pour ce check ?
    passive_checks_enabled 							[0/1]; Est ce que les checks passifs sont activés pour ce check ?
	duplicate_foreach 								*Donnée utilisée pour la fonctionnalité Duplicate For Each (en majuscule et débutant par un _)*
	default_value									*Vous pouvez fournir plusieurs arguments pour chaque valeur définie dans la donnée de l'hôte utilisé par la fonctionnalité Duplicate for Each.*
 
	#### Notifications ####
    notifications_enabled 							[0/1]; Est ce que les notifications sont activées pour cet hôte ?	
    contacts 										*Liste des contacts auxquels envoyer les notifications*
    contact_groups 									*Groupes d'utilisateurs auxquels seront envoyées les notifications pour cet hôte*
    notification_interval 							*Intervalle d'envoi des notifications (en minutes)*
    notification_period 							*Période de temps pendant laquelle les notifications sont actives*
	notification_options							*Etats pour lesquels il faut envoyer une notification*
    first_notification_delay 						*Délai avant l'envoi de la première notification*
    escalations 									*Liste des escalades de notifications utilisées pour cet hôte*
    
	#### Expert ####
	poller_tag 										*Poller tag associé à ce check*
	reactionner_tag									*Reactionner tag associé à ce check*
    business_impact 								[0-5]; Impact métier du check
	is_volatile										[0/1]; Cette propriété permet de forcer Shinken à envoyer une notification pour chaque retour en erreur d'un check.
	check_freshness									[0/1]; Est ce que la vérification de fraicheur du check est activée ?
    freshness_threshold 							*Seuil de fraicheur du check*
	flap_detection_enabled 							[0/1]; Est ce que la détection du flapping est activée ?
	flap_detection_options          				[o,d,u] ;Cette propriété permet de définir quel statut d'un hôte sont pris en compte pour le calcul du % de FLAPPING
    high_flap_threshold 							[0-100]; Seuil d'entrée dans l'état Flapping
    low_flap_threshold 								[0-100]; Seuil de sortie de l'état Flapping
    process_perf_data 								[0/1]; Prendre en compte la métrique éventuellement retournée par la check_command ?
    event_handler_enabled 							[0/1]; Le gestionnaire d’événements est-il activé pour cet hôte ?
    event_handler 									*Commande utilisée pour le gestionnaire d'évenements*
    business_impact_modulations 					*Modulation d'impact métier à utiliser*
    macromodulations 								*Modulation de données à utiliser*
    resultmodulations 								*Modulation de resultats à utiliser*
	definition_order								[100]
}
 

Détails sur les modèles de checks

Les clés à utiliser pour l'importation différent selon le type de check que l'on veut importer. Le tableau ci-dessous résume ces différences:

service_descriptionnameregisterType de l'objet
X 1Check
X 0Check pour modèle d'hôte
 X0Check template
 X1Erreur


Les contacts


Code Block
define contact {
	contact_name			[OBLIGATOIRE]	*Nom de l'utilisateur*
	name									*Nom de l'utilisateur (lorsqu'il s'agit d'un modèle d'utilisateur)*
	display_name							*Nom d'affichage de l'utilisateur*
	password								*Mot de passe de l'utilisateur*
	email									*Adresse email*
	pager									*Numéro de téléphone*
	use										*Liste des templates de contact à hériter*
	contactgroups							*Liste des groupes auxquels appartient l'utilisateur*
	expert									[0/1]; Est ce que l'utilisateur est un administrateur système ?
	is_admin								[0/1]; Est ce que l'utilisateur est un administrateur Shinken ?
	notificationways						*Liste des méthodes de notifications à utiliser pour cet utilisateur*
	enabled									[0/1]; Utilisateur désactivé/activé
	can_submit_commands						[0/1]; Est ce que l'utilisateur peut soumettre des commandes ?
	acl_make_downtime						[0/1]; Cette propriété permet de donner à l'utilisateur le droit de planifier ou d'enlever des périodes de maintenance depuis l'interface de visualisation
	acl_make_acknowledge					[0/1]; Cette propriété permet de donner à l'utilisateur le droit d'effectuer ou d'enlever des prises en compte dans l'interface de visualisation
	acl_force_result_check					[0/1]; Cette propriété permet de donner à l'utilisateur le droit de forcer le résultat d'un check dans l'interface de visualisation 
	acl_force_retry_check					[0/1]; Cette propriété permet de donner à l'utilisateur le droit de demander les réexécutions de checks dans l'interface de visualisation
	acl_share_everybody						[read,create,organize,modify,delete,all]; Vous pouvez paramétrer ici les droits d'accès à la section "Tout le monde" des favoris de l'interface de visualisation
	acl_share_group							[read,create,organize,modify,delete,all]; Vous pouvez paramétrer ici les droits d'accès à la section "Mes groupes" des favoris de l'interface de visualisation
	acl_share_private						[read,create,organize,modify,delete,all]; Vous pouvez paramétrer ici les droits d'accès à la section "Privé" des favoris de l'interface de visualisation.
	acl_try_check_on_poller					[0/1]; Cette propriété permet de donner à l'utilisateur le droit d'executer les checks sur les pollers.
	acl_try_check_on_synchronizer			[0/1]; Cette propriété permet de donner à l'utilisateur le droit d'executer les checks sur la machine de configuration. 
}

La clé contact_groups est dépréciée, utilisez plutôt contactgroups

Pour créer un modèle d'utilisateur:

  • La clé register doit avoir la valeur 0
  • La clé contact_name est remplacée par la clé name

Les Groupes de contacts


Code Block
define contactgroup {
	contactgroup_name		[OBLIGATOIRE]	*Nom du contact group*
	members									*Membres du groupe*
	template_members						*Les Utilisateurs avec le Modèle d'utilisateur spécifié appartiendront au groupe*
	enabled									[0/1]; Contact désactivé/activé
	pack									*Cette propriété permet de définir dans quel pack se trouve le groupe d'hôte.*
}


Les Méthodes de Notification


Code Block
define notificationway {
	notificationway_name			[OBLIGATOIRE]	*Cette propriété permet de définir le nom utilisé pour identifier la méthode de notification.*
	host_notification_period						*Cette propriété permet de définir la période de temps pendant laquelle les notifications concernant les hôtes seront envoyées.*
	service_notification_period						*Cette propriété permet de définir la période de temps pendant laquelle les notifications concernant les checks seront envoyées.*
	host_notifications_enabled						*Cette propriété permet de définir si Shinken va envoyer des notifications concernant les hôtes.*
	service_notifications_enabled					*Cette propriété permet de définir si Shinken va envoyer des notifications concernant les checks.*
	host_notification_commands						*Cette propriété permet de définir les commandes qui envoient les notifications pour un hôte.*
	service_notification_commands					*Cette propriété permet de définir les commandes qui envoient les notifications pour un check.*
	host_notification_options						*Cette propriété permet de définir quels Statuts et Contextes de l'hôte peuvent envoyer des notifications*
	service_notification_options					*Cette propriété permet de définir quels Statuts et Contextes du check peuvent envoyer des notifications*
	min_business_impact								*Cette propriété permet de définir le seuil d'Impact Métier qui enverra des notifications.*
	enabled											[0/1]; Contact désactivé/activé
	pack											*Cette propriété permet de définir dans quel pack se trouve le groupe d'hôte.*
}


Les Escalades


Code Block
define escalation {
	escalation_name				[OBLIGATOIRE]	*Nom du contact group*
	first_notification_time						*Cette propriété est utilisée pour définir combien de temps (en minutes) Shinken doit attendre après la première notification pour démarrer l'escalade.*
	last_notification_time						*Cette propriété est utilisée pour définir combien de temps (en minutes) Shinken doit attendre après la première notification pour arreter l'escalade*
	notification_interval						*Cette propriété permet de définir les intervalles de temps entre les notifications.*
	escalation_period							*Cette propriété est utilisée pour définir la période pendant laquelle l'escalade sera activée.*
	escalation_options							*Cette propriété permet de définir quels états peuvent démarrer une escalade*
	contacts									*Cette propriété est utilisée pour définir quels sont les utilisateurs à notifier.*
	contact_groups								*Cette propriété est utilisée pour définir quels sont les utilisateurs à notifier.*
	enabled										[0/1]; Contact désactivé/activé
	pack										*Cette propriété permet de définir dans quel pack se trouve le groupe d'hôte.*
}


Modulation d'impact métier


Code Block
define businessimpactmodulation {
    business_impact_modulation_name     [OBLIGATOIRE]	*Nom de la modulation*

    modulation_period                   				*Période de temps pendant laquelle la modulation est effective*
    business_impact                    					[0-5]; Valeur de l'impact métier à utiliser pour la modulation

    pack                                				*Nom du pack dans lequel se trouve la modulation*
    enabled                             				[0/1]; La modulation est elle activée ?
}


Modulation de données


Code Block
define macromodulation {
    macromodulation_name	[OBLIGATOIRE]	*Nom de la modulation*
    modulation_period                   	*Période de temps pendant laquelle la modulation est effective*

    pack                                	*Nom du pack dans lequel se trouve la modulation*
    enabled                             	[0/1]; La modulation est elle activée ?
}


Modulation de résultats


Code Block
define resultmodulation {
    resultmodulation_name	[OBLIGATOIRE]	*Nom de la modulation*

    modulation_period                  	 	*Période de temps pendant laquelle la modulation est effective*
    output_rules                        	*Définition des règles de 	modulation*

    pack                                	*Nom du pack dans lequel se trouve la modulation*
    enabled                             	[0/1]; La modulation est elle activée ?
}


Les commandes


Code Block
define command {
    command_name	[OBLIGATOIRE]	*Nom de la commande*

    command_line    [OBLIGATOIRE]	*Commande à executer*
    timeout             			*Temps en secondes à partir duquel la commande entre en timeout*

    enabled             			[0/1]; La commande est elle activée ?
    pack                			*Nom du pack dans lequel se trouve la commande*
}


Les Périodes de temps


Code Block
define timeperiod {
    timeperiod_name		[OBLIGATOIRE]	*Nom de la période de temps*

    monday              				08:00-18:00
    tuesday             				08:00-18:00
    wednesday           				08:00-18:00
    thursday            				08:00-18:00
    friday              				08:00-18:00
    sunday	            				08:00-18:00
    saturday            				08:00-18:00
    

    enabled	            				[0/1]; La modulation est elle activée ?
    pack                				*Nom du pack dans lequel se trouve la modulation*
}


Forcer l'utilisation d'un modèle

Certains objets de Shinken Entreprise peuvent utiliser des modèles pour accélerer le processus de configuration. C'est le cas par exemple des hôtes, checks ou des contacts.

Dans les fichiers d'imports, la propriété "use" permet de définir une liste de modèles à utiliser.

Pour chaque objet de même nom qui définit la propriété "use", les modèles spécifiés seront ajoutés dans la liste des modèles à hériter pour l'objet en question.

 

Prenons par exemple la configuration suivante:

Code Block
# Fichier 1
define host {
	host_name			Test host
	address				192.168.1.XX
	use					modele1, modele2
}
 
# Fichier 2
define host {
	host_name			Test host
	address				192.168.1.XX
	use					modele3
}

 

L'hôte "Test host" héritera des modèles modele1modele2 et modele3.

 

Or, il se peut aussi que l'utilisateur veuille remplacer la liste des modèles utilisés au lieu d'y ajouter des éléments. Dans ce cas, il peut ajouter [FORCE] à la propriété "use", ce qui aura pour effet de remplacer completement la liste des modèles utilisés par celle fournie avec l'option [FORCE]. 

Note : il n'y a pas d'espace entre la propriété et le [FORCE].

La configuration se comporterait alors de la manière suivante:

Code Block
# Source 1
define host {
	host_name			Test host
	address				192.168.1.XX
	use					modele1, modele2
}

# Source 2
define host {
	host_name			Test host
	address				192.168.1.XX
	use[FORCE]			modele3
}

 

Dans ce dernier cas, l'hôte "Test host" utilisera seulement le modèle modele3, à cause de l'option FORCE.

Résolution des conflits

Dans le cas ou l'option FORCE est utilisée plusieurs fois, la dernière à être définie sera effective. Par exemple, si le même objet est défini plusieurs fois dans des sources différentes, la dernière source définissant la propriété "use" avec l'option FORCE fera foi.

 

Prenons la configuration suivante:

Code Block
# Source 1
define host {
	host_name			Test host
	address				192.168.1.XX
	use					modele1, modele2
}

# Source 2
define host {
	host_name			Test host
	address				192.168.1.XX
	use[FORCE]			modele3
}

# Source 3
define host {
	host_name			Test host
	address				192.168.1.XX
	use[FORCE]			modele4
}

 

Dans cet exemple de configuration, l'hôte utilisera seulement le modèle "modele4".

Forcer l'application d'autres propriétés

De la même manière que pour forcer l'application des modèles, voici la liste des propriétés ou vous pouvez rajouter le [FORCE] suivant la propriété :
 

Clé d'import
view_contacts
view_contact_groups
notification_contacts
notification_contact_groups
edition_contacts
edition_contact_groups
parents
escalations
business_impact_modulations
macromodulations
resultmodulations
 


Note sur le champ SE_UUID

Le champ SE_UUID qui peut être trouvé dans les fichiers de configuration est un champ interne à Shinken Entreprise.

Il permet d'identifier les objets de manière unique. Ce champ ne doit donc pas être modifié manuellement.

 

Aussi, lors de la copie d'objet dans les fichiers de configuration, il faut être vigilant quand à la présence d'un champ SE_UUID. Dans ce cas de figure, il faut supprimer le champ SE_UUID de l'objet dupliqué, sans quoi l'interface de Configuration affichera une erreur à l'import de la source.