Contexte

Ce document décrit comment importer ses propres fichiers CFG à travers sa propre source.

 
Attention, nous vous conseillons de créer votre propre source. En effet, la source Nagios (et Shinken) sont des sources qui sont placés dans le répertoire central Shinken (/etc/shinken) et peuvent être soumis à des modifications lors de mises à jours. Par contre, la création de nouvelles sources personnalisées se feront dans le répertoire dédié aux utilisateurs (/etc/shinken-user) et ce répertoire sera donc traité avec grande vigilance par le moteur de mise à jour, car incluant vos données utilisateurs
 

Il y a des étapes à suivre afin de créer une source qui vous permettra d'importer vos propres CFG:

  • Création de la source
  • Configuration de la source-data
  • Configuration du démon Synchronizer pour prendre en compte la nouvelle source

Ce qui est déjà disponible dans l'installation de Shinken

 

Pour vous rendre la vie plus facile, quelques taches de configuration ont déjà été faites:

    1. Le type de module "cfg-file-import" est déjà prêt à être utilisé,
    2. La possibilité d'utiliser la source pré-configurée "cfg-file-nagios" pour tester rapidement un import de cfg. 

 

Utiliser la source pré-configurée cfg-file-nagios (Attention)

Attention, encore une fois, pour une mise en production sur le long terme, il est préférable que vous utilisiez votre propre source, passez alors sur le chapitre suivant.

Pour un essai d'import de fichier cfg, l'installation ou la mise à jour de Shinken va mettre en place la source cfg-file-nagios déjà configurée:

  • Vous pouvez la voir dans la page des sources. 

Cette source utilise 2 types de configuration de fichiers

  • Les fichiers de définition de la source et de ses modules
  • Les fichiers de configuration pour l'import de vos éléments via vos fichiers cfg.
    • Le fichier d'exemple est disponible dans /etc/nagios/nagios.cfg
       

Il vous suffira alors d'activer la source pour importer vos éléments définis dans le fichier nagios.cfg.

Créer et utiliser sa propre source et module

 

Contexte

 

Le fait d'avoir plusieurs sources distinctes peut vous aider si vous avez un grand nombre de fichiers cfg et que vous souhaitez pouvoir choisir et séparer les imports. Par exemple, vous avez des fichiers cfg relatifs à l'organisation de Paris, et d'autres à l'organisation de Bordeaux (Hôtes, Utilisateurs, ..). 

A un instant donné, vous pouvez avoir de besoin d'importer les fichiers de Bordeaux uniquement. Ce sera chose possible avec les deux sources distinctes.

 

A chaque fois que vous avez besoin de personnaliser Shinken, le répertoire à utiliser est /etc/shinken-user

Création d'une source

Placez vous à présent dans le répertoire des sources Shinken et copiez la source Nagios existante :

cd /etc/shinken/sources/
cp cfg-file-nagios.cfg cfg-file-ma-source.cfg
 

Modifiez le fichier cfg-file-ma-source.cfg

Supprimez les 4 lignes allant de

# Shinken Enterprise

à

 # End of Shinken Enterprise part


Modifiez 

    source_name         cfg-file-nagios
	cfg_path            /etc/nagios/nagios.cfg

avec

    source_name			cfg-file-ma-source
    cfg_path            /etc/shinken-user/source-data/source-data-cfg-ma-source/definition.cfg

(ce chemin sera celui du répertoire de vos fichiers cfg dans le shinken-user)

 

En ce qui concerne les paramètres des sources, voici leurs descriptions : 

 

 Propriété Exemple Description
source_namecfg-file-ma-sourceNom de la source affichée dans l'UI de configuration en page d'accueil. Doit être unique.
order 2L'ordre de la source sur la page, qui a un impact dans la fusion des données lors des imports de sources. Voir la page du Synchronizer pour plus d'information au sujet des fusions. Cette propriété est éditée directement si vous changez l'ordre depuis l'interface.
import_interval 0

La source sera exécutée automatiquement toutes les import_interval minutes.

  • Si 0, la source ne sera jamais exécutée automatiquement.
     

Pour vos tests initiaux, nous vous conseillons de positionner la valeur à 0.
Le bouton Force import de la page principale vous permettra de faire l'import manuellement. 
 

 

 

module-type
cfg-file-import
Définition du type de module utilisé par la source.
enabled1

Activer ou désactiver la source. Cette propriété est éditée directement si vous utiliser le bouton Activer de l'interface.

 

descriptionCette source permet de charger mes fichiers cfg relatifs aux nouvelles commandesDescription de la source

 

 

Création du répertoire de données de la source

 

Pour créer son propre répertoire dans le répertoire des sources de shinken-user :

cd /etc/shinken-user/source-data
cp -r source-data-cfg-sample/ source-data-cfg-ma-source/

Rajouter les droits sur le répertoire :

chown -R shinken:shinken source-data-cfg-ma-source/

Une fois le répertoire créé, les fichiers cfg pourront alors être placés directement dans le répertoire source-data-cfg-ma-source/elements ou source-data-cfg-ma-source/packs
Dans tous les cas, tous les fichiers cfg dans le répertoire et sous répertoires de source-data-cfg-ma-source seront traités.

Configuration du démon Synchronizer pour déclarer la source

 

Modifiez le fichier /etc/shinken/synchronizers/synchronizer-master.cfg

A la fin de la ligne "sources", rajoutez votre source.

Exemple :

    sources               syncui,cfg-file-shinken,active-dir-example,sync-vmware,cfg-file-nagios,discovery,openldap-example,cfg-file-ma-source

Redémarrez le synchronizer pour qu'il prenne acte de la nouvelle source :

service shinken-synchronizer restart

 

Affichage de la source dans l'UI de configuration

 

 

 

 

Une fois le démon redémarré, votre nouvelle source personnalisée doit apparaître :

 

Son paramétrage sera alors en place : son état (activée ou désactivée), son ordre, sa fréquence en automatique ou en manuel.

Importation des objects

 

Depuis la page d'accueil de l'interface de configuration, vous pouvez alors utiliser le bouton "Force import" en cliquant sur le bouton  

Dans le panel des éléments, vos nouveaux éléments doivent apparaitre. Vous pourrez alors les importer dans votre base.