Quel est l'utilité des sources ?

Dans une installation avec plusieurs centaines d'équipements, il peut être fastidieux d'ajouter ces serveurs en supervision alors que ces mêmes serveurs existent dans d'autres référentiels.

Les sources permettent d'importer dans Shinken Entreprise des éléments de supervision depuis des outils tiers, comme par exemple un annuaire LDAP, un serveur vSphere, sans qu'un utilisateur doive saisir les équipements un par un.

Fonctionnement des sources

Les sources fonctionnent de la manière suivante:

  • Déclenchement de l'action d'import ;
  • Récupération des informations par la source ;
  • Mélange des différentes sources actives: fusion des informations des sources pour faire un élément de Shinken ;
  • Comparaison du résultat du mélange des sources avec les éléments de la Zone de travail et Staging, pour identifier les nouveautés et les différences.


  • Mélange des sources : fusion des informations collectées par toutes les sources actives pour ne proposer qu'un élément à Shinken.
  • Import : action de rajouter des éléments de supervision depuis des outils tiers.

Comment faire un import

Pour obtenir des éléments, il faut que la source soit activée et configurée .

  • Plus d'informations sur la configuration des sources sont disponibles à cet endroit : Créer et organiser ses sources
  • Le déclenchement de l'import d'une source peut se faire de plusieurs façons  ( automatiquement ou manuellement ).

Automatiquement

  • A intervalle régulier - C et intervalle ( en minutes ) est défini dans le fichier de configuration de la source.

    Dans la page principale, la colonne "Prochain import", permet de connaître le temps avant le prochain import.

Manuellement

  • Manuelle dans la page principale
    Il est possible de forcer un import en cliquant sur l
    a flèche en face de la source, sous la colonne "Forcer l'import" ( La source doit être activée ).

  • Manuelle à l’intérieur dans la source
    • Il suffit de cliquer sur le nom de la source pour ouvrir les pages de gestions de la source.
    • Il est possible de forcer un import en cliquant sur la flèche en haut à droite de la page ( La source doit être activée ).

Explication de l'import

La page suivante donne une vue d'ensemble de ce mécanisme en y intégrant les Taggers : Modules de Sources ( imports ) et de Taggers ( qualification ).

Collecte des données ( 1 )

Les sources vont récupérer activement ( par exemple en allant interroger un serveur VSphere ) ou passivement ( en recevant des requêtes sur une API ) des informations sur des éléments de supervision.

Chaque source a une manière de récupérer ces informations, qui est expliquée dans les pages de documentations ci-dessous.

Voir :

Les informations récupérées par les sources sont par exemple un nom DNS, une adresse IP, une description de l'hôte à superviser, etc

À partir de ces informations, les sources génèrent des éléments, puis le mélange des sources est déclenché.

Mélange des sources ( 2 )

Après la collecte des données, c'est l'étape de mélange des sources.
Dans cette étape, on va
vérifier tous les éléments importés, qui seront ensuite fusionnés s'ils possèdent au moins une clé de synchronisation commune. 

C'est-à-dire que pour chaque élément, le Synchronizer va

  1. Regarder si d'autres éléments ont des clés de synchronisation en commun avec lui
  2. Si oui, il va récupérer toutes les propriétés des éléments en question
  3. Générer un nouvel élément
  4. Donner à l'élément généré toutes les propriétés récupérées ainsi que celles de l'élément d'origine

L'élément généré est celui qui sera envoyé dans l'étape suivante.

En cas de conflit entre des éléments ( deux sources importent le même élément mais avec des informations différentes ) on compare les priorités des sources et on garde les informations de la source ayant la priorité la plus élevée ( voir la page Le mélange des sources & les clés de synchronisation (sync-key) )


La priorité d'une source est indiquée par son numéro dans la colonne "Ordre" dans l'interface ( définis par le paramètre "order" du fichier de configuration de la source se trouvant dans /etc/shinken/sources ).

(warning) Plus ce numéro est bas et plus la priorité de la source est élevée. (warning)



Si une source renvoie un champ dont le nom se termine par "[FORCE]" :

members[FORCE]

Alors la valeur de ce champ ne sera pas fusionnée à celle des autres champs, mais viendra les écraser. On dit que l'on a "forcé" la valeur.

Si une autre source force également le même champ, on gardera les valeurs de celui dont la source à la priorité la plus élevée.

Exemple de Mélange des sources

Dans cet exemple :

  • La source Source 1 importe l'hôte "BDX - MySQL - 1" et fournis le champ "description" de l'hôte
  • La source Source 2 importe l'hôte "BDX - MySQL - 1" et fournis le champ "address" de l'hôte

Grâce aux champs "_SE_UUID" et "host_name" qui sont les clés de synchronisation, le Synchroniser sait que les deux sources ont importé le même élément vu que les clés de synchronisation sont identiques. Il va donc fusionner les deux éléments et envoyer le résultat de cette fusion dans l'étape suivante.

Pour des explications plus complètes sur le mélange des sources, voir la page Le mélange des sources & les clés de synchronisation (sync-key).


Application des Taggers ( 3 )

Les éléments issus du Mélange des Sources passent par les Taggers qui vont automatiquement modifier les éléments ( hôtes, clusters, modèles d'hôtes, modèles de clusters ) selon un ensemble de règles définies dans leurs configurations ( voir la page Les Taggers ). L'usage le plus courant des Taggers étant de rajouter un modèle aux hôtes en fonction de leur adresse IP ou d'un mot clé dans leur nom.

Comparaison avec la Zone de Travail et Staging ( 4 )

Après leur passage dans les Taggers, les éléments sont comparés à ceux présents en Staging et dans la Zone de Travail.

  • Le Synchronizer commence par regarder si l'élément sortant des étapes précédentes existe déjà en Staging ou en Zone de Travail.
    • Si c'est le cas, le Synchronizer calculera les différences avec celui sortant des Taggers.
    • Dans le cas contraire, l'élement sera considéré comme nouveau.

Les éléments avec le type "Nouveau" seront prêts à être importés dans Staging ( ou dans la Zone de Travail pour les hôtes ). 

À ce stade, les différences et nouveaux éléments ne sont pas encore indiqués dans l'interface. Cela sera le cas une fois qu'ils seront sauvegardés en base de données.

Sauvegarde ( 5 )

Les nouveaux éléments et les différences sont sauvegardés dans la base de données.

Une fois cette étape terminée :

  • Les éléments en Staging ou en Zone de Travail ayant des différences à l'issue de la comparaison, seront affichés avec le type "Différence" dans l'interface, qui indiquera les différences en question et proposera de les appliquer
  • Les nouveaux éléments seront affichés en Staging ou en Zone de Travail avec le type "Nouveau".

Affichage des résultats de l'import

Les propositions affichées dans Staging

Nouveau : éléments de supervision qui n'existait pas en staging et qui sont apparus après l'import d'une ou plusieurs sources.  

Différence : éléments de supervision existant en staging et dont une ou plusieurs propriétés ont été modifiés ou rajoutés par une ou plusieurs sources


Les éléments avec le statut "Nouveau" sont affichés tels qu'ils vont être importés dans Staging, dans la liste des éléments et dans la page d'édition d'un élément.


Les éléments avec le statut "Différence" sont affichés tels qu'ils sont dans Staging, mais avec la liste des valeurs qui seront modifiées par application des différences. 

  • Ces modifications apparaissent au survol du label vert de Différence dans la liste des éléments, ou dans l'onglet de différence des objets dans la page d'édition d'un élément.



IMPORTANT : la modification d'un hôte ne peut se faire que dans la "Zone de travail", ce qui veut dire qu'il en est de même pour l'import et l'application des différences.

Importer les nouveaux éléments

Il y a deux manières différentes pour import un nouvel élément:

  • Par action de masse :
    1. Aller dans la liste du type de l'élément ou bien dans la liste de "Tous les éléments" ;
    2. Puis sélectionner les éléments avec le statut  "Nouveau " ;
    3. Enfin sélectionner l'action adéquate, c'est-à-dire " Importer d'une source"
      ( voir la page Actions de masse ( Shinken admin ) ).



  • Par la page d'édition de l'élément :
    1. Aller dans la page d'édition de l'élément
    2. Vérifier toutes les propriétés
    3. Import l'élément en cliquant sur le bouton


Appliquer les différences

Comme pour l'import, Il y a deux manières différentes pour import un nouvel élément:


  • Par action de masse :
    1. Aller dans la liste du type de l'élément ou bien dans la liste de "Tous les éléments"
    2. Puis sélectionner les éléments avec le statut  "Différence "
    3. Enfin sélectionner l'action adéquate, c'est-à-dire "Appliquer les différences des sources"
      ( voir la page Actions de masse ( Shinken admin )
       )



  • Par la page d'édition de l'élément :
    1. Aller dans la page d'édition de l'élément
    2. Vérifier les propriétés modifiées dans l'onglet "Différences
    3. Appliquer les différences en cliquant sur le bouton

Regarder en détail le résultat d'un import pour une source

Résumé de l'import ( Résultat )

Lorsque l'import est terminé, il y a différent message pour le retour de l'import.

Ce message est affiché dans la colonne "Résultat" de la source sur la page principale:

  • Si tout s'est bien passé :

  • Si des erreurs sont présentes lors de l'import:

État de la source et résumé du dernier import 


États des sources

Chaque source activée possède un état qui peut être vu à trois endroits :

  • Sur la page principale, dans la colonne "État" de chaque source
  • Sur la page de la source à droite du nom
  • Sur la page de la source, dans l'onglet des résumés des dernières exécutions


Cet état correspond à celui du dernier import. Il est mis à jour :

  • pendant l'import ( Import en cours, Calcul des différences ),
  • après l'import ( Ok, Avertissement, Erreur ) ou dynamiquement ( Non configuré, Prêt à être importé ).  

Voici la liste complète des statuts d'une source et leur signification :

StatutDescription

La source ne possède pas de configuration ( non disponible pour les analyseurs )

La source vient d'être créée, elle n'a jamais importé d'éléments

Import des éléments en cours

Calculs en cours pour la fusion des sources juste après l'import

Les éléments ont été importés, la source fonctionne correctement

Les éléments ont été partiellement importés à cause d'une erreur, mais la source fonctionne

Les éléments n'ont pas été importés, la source ne fonctionne pas 

Des paramètres de la source ont été changés, un import peut être utile pour recevoir de nouveaux éléments
Résumé des dernières exécutions

À chaque fois qu'un import est effectué, un message contenant le résultat de cet import est disponible. Il permet d'obtenir plus d'informations sur le statut de la source.
Un résumé court est disponible :

  • Dans la page principale dans la colonne "Résumé" de chaque source ;
  • Dans la page de la source à côté du nom ;
  • Dans l'onglet "Résumé des dernières exécutions" ;

Lorsque l'import d'un collecteur est effectué ou bien qu’une exécution d'un écouteur ou d'un analyseur est lancée, son rapport est stocké dans l'onglet "résumé des dernières exécutions" permettant d’avoir un récapitulatif détaillé.

Cet onglet est accessible de deux manières différentes:

  • Depuis la page de la source en cliquant sur l’onglet concerné ;
  • Depuis la page principale en cliquant sur le lien à côté du résultat ;

Une fois arrivé sur l’onglet, le résumé de la dernière exécution est affiché. Pour voir le résumé d’une autre exécution, il suffit de cliquer sur la ligne correspondant à sa date (1)
Le résumé sera composé d’un maximum de 6 sections, les erreurs et avertissements sont présents qu'en cas de problème :

  • Le résultat ( 2 ) 
  • Les erreurs liées à la source ( 3 ) 
  • Les erreurs liées au mélange des sources ( 3 )
  • Les avertissements liés à la source ( 3 )
  • Les avertissements liés aux mélanges des sources ( 3 )
  • Les éléments ajoutés/modifiés suite à l’import/exécution ( 4 )


Éléments du dernier import 

Après un import, les éléments importés peuvent être dans trois l'état différents.

  • Le statut OK signifie que l'élément a été correctement.
  • Le statut "Attention " signifie que l'élément a bien été importé, mais qu'il est incomplet (champs manquants ou dans un mauvais format par exemple).
    Un élément avec ce statut risque de ne pas pouvoir être importé en production.
  • Les éléments en "Erreur " ne se sont tout simplement pas importé, car ils contiennent une erreur rendant impossible leur import.

Ces statuts sont affichés dans la page principale, dans la colonne "Éléments" de chaque source. Chaque statut est associé à une couleur ( Vert pour OK, orange pour Attention et rouge pour Erreur) et au nombre d'éléments dans ce statut.

Par exemple: une source avec 7 /1/ 2 signifie que 7 éléments ont bien importé en état "OK", un élément a été importé avec des propriétés incomplètes et deux éléments en état "erreur" n'ont pas pu être importés.


Cliquer sur une des trois couleurs permet de se rendre directement dans l'onglet "Détails du dernier lancement" sur la page de la source avec la liste des éléments filtrés avec statut choisi. 

Une fois redirigé sur la page on peut voir le filtre sur page statut en ( 1 ).

  • Pour avoir plus d'informations sur un élément importé, cliquer sur l'œil ( 2 ) à droite de l'élément pour déplier ses informations supplémentaires.
  • Sous la liste des propriétés importées sur l'élément, il est possible de voir ( 3 ) une explication de l'avertissement ou de l'erreur si l'élément n'est pas en statut "OK".  

Utilisation des sources

Exemple d'utilisation avec la discovery

Exemple d'utilisation de la source discovery pour importer des éléments grâce à une plage d'adresses IP.


Pour commencer, il faut activer la source discovery pour qu'elle puisse importer des éléments une fois configurés.

À l'activation d'une source ou au redémarrage du Synchronizer se passe un mélange des sources. On utilise le résultat du dernier import pour calculer les nouveaux éléments et les différences sur les éléments existants.

Pour configurer la source, il faut se rendre sur la page de la "discovery". Pour ça, il suffit de cliquer sur son nom.q

Pour pouvoir trouver des éléments grâce à cette source, il faut ajouter des plages IP qui vont être scannées par la suite. Il faut donc se rendre dans l'onglet "Listes de plages réseau définies". 

Une fois rendu dans cet onglet, il faut ajouter notre plage IP en cliquant sur le bouton "Ajouter" en haut à droite de la page.

Il faut maintenant rentrer les informations nécessaires enfin de trouver les éléments voulus. On va chercher dans cet exemple les machines de trouvant sur notre réseau local. Pour ce faire, on peut soit renseigner la plage ainsi que son masque de sous-réseau ( ex: 192.168.1.0/24 ) soit indiquer une plage d'IPs dans laquelle chercher des hôtes ( ex: 192.168.1.1-254 ). Il est également possible d'indiquer une adresse IP unique ( ex: 172.16.0.7 )

On a maintenant le choix d'attendre le prochain import planifié ( s'il a été défini dans le fichier de configuration de la source discovery ) ou bien de forcer l'import directement en appuyant sur la flèche en haut de l'écran.

Le résumé du résultat de cet import est disponible dans l'onglet "Résumé des dernières exécutions".

  • Le dernier import effectué est directement visible en arrivant dans la page.
  • On peut voir qu'il c'est bien effectué et qu'un hôte a bien été importé.

L'onglet "Détails du dernier lancement" permet d'avoir plus de détails sur les éléments importés.

  • On peut aussi accéder à cet onglet en cliquant sur celui-ci.

Le clic sur l’œil à droite de chaque élément importé permet d'afficher plus de détails sur l'élément.