Introduction

Le module architecture-export permet de recevoir et envoyer la description de l'architecture d'installations Shinken, et d'en générer des cartes NagVis et hôtes Shinken associés pour la supervision.


Une description détaillée de ce module, son utilité et son utilisation sont présentes dans les pages de documentations associées: Visualiser l'architecture de son installation Shinken


Ci-dessous sont présentées de manière synthétique les différentes options de configuration de ce module, leur rôle ainsi que leurs valeurs par défaut.

Activation du module

Le module broker-module-livedata est un module qui peut être activé seulement sur le démon sur Broker.

  • L'activation du module s'effectue en ajoutant le nom de ce module dans le fichier de configuration du Broker.
  • Pour ce faire, ouvrer le fichier de configuration du Broker à l'emplacement /etc/shinken/Brokers/, et ajouter le nom de votre module de type "broker-module-livedata".


Exemple: par défaut, nous livrons un module dont le nom est "architecture-export":

define broker {
    [...]
    modules                   Simple-log, WebUI, Graphite-Perfdata, sla, architecture-export
    [...]
}


Pour prendre en compte le changement de configuration, redémarrer l'Arbiter:

service shinken-arbiter restart


Configuration

La configuration du module se trouve par défaut dans le fichier  /etc/shinken/modules/architecture-export.cfg

  • Vous trouverez aussi systématiquement un exemple dans /etc/shinken-user-example/configuration/daemons/arbiters/modules/architecture-export/architecture-export.cfg

Exemple de fichier de configuration


#===============================================================================
# Architecture-Export
#===============================================================================
# Daemons that can load this module:
# - arbiter
# This module exports Shinken architecture to others architecture-export modules
# It also creates NagVis Maps for received architecture
#===============================================================================

define module {

    # ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ──────────────────────────────────────    MODULE IDENTITY    ────────────────────────────────────── │ #
    # └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── Module name [ Must be unique ]                                                      [ MANDATORY ] ───
    module_name                                       architecture-export

    # ─── Module type [ Do not edit ]                                                         [ MANDATORY ] ───
    module_type                                       architecture-export

    # ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ─────────────────────────────────────    NAGVIS FILE PATH    ────────────────────────────────────── │ #
    # └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── Path of NagVis installation                                                                       ───
    # ─── Used to store configuration maps files and to update NagVis settings                              ───
    # >>> Default : /etc/shinken/external/nagvis                                                            ───
    path                                              /etc/shinken/external/nagvis

    # ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ──────────────────────────────────────    MODULE OPTIONS    ─────────────────────────────────────── │ #
    # └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── Base of URL used to display links in the Visualization UI                                         ───
    # >>> Default : Use Arbiter URL                                                                         ───
    # map_base_url                                      http://example.com/

    # ─── Architecture description recipients                                                               ───
    # ─── When the architecture of this Shinken installation changes (realms and daemons configuration),    ───
    # ─── and the arbiter is restarted the architecture description will be sent to the following hosts.    ───
    # >>> Default : http://127.0.0.1:7780 (locally)                                                         ───
    send_my_architecture_to_recipients                http://127.0.0.1:7780

    # ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ───────────────────────────────────    MODULE COMMUNICATION    ──────────────────────────────────── │ #
    # └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ───────────  Listening socket configuration  ──────────────────────────────────────────────────────────── 

    # ─── This module opens a listening socket on which other Shinken installations                         ───
    # ─── will send their architecture description.                                                         ───

    # ─── Network interface used for the listening socket (0.0.0.0 = all interfaces)                        ───
    # >>> Default : 0.0.0.0                                                                                 ───
    host                                              0.0.0.0

    # ─── Port to use for the listening socket                                                              ───
    # >>> Default : 7780                                                                                    ───
    port                                              7780

    # ─── Protocol to use for the listening socket                                                          ───
    # ─── Enable  : 1 ( Use HTTPS )                                                                         ───
    # >>> Disable : 0 ( Use HTTP ) ( Default )                                                              ───
    use_ssl                                           0

    # ───  SSL Certificate to use for the listening socket (if HTTPS)                                       ───
    # >>> Default : /etc/shinken/certs/server.cert                                                          ───
    ssl_cert                                          /etc/shinken/certs/server.cert

    # ───  SSL Key to use for the listening socket (if HTTPS)                                               ───
    # >>> Default : /etc/shinken/certs/server.key                                                           ───
    ssl_key                                           /etc/shinken/certs/server.key

    # ─────────  Connection to the listener-shinken  ────────────────────────────────────────────────────────── 

    # ─── Connection parameters for the module to communicate with the listener-shinken                     ───
    # ─── (used to create hosts for maps)                                                                   ───
    # ─── Protocol used by listener-shinken                                                                 ───
    # ─── Enable  : 1 ( Use HTTPS )                                                                         ───
    # >>> Disable : 0 ( Use HTTP ) ( Default )                                                              ───
    # listener_use_ssl                                  0

    # ─── Listener-shinken configured login                                                                 ───
    # >>> Default : Shinken                                                                                 ───
    # listener_login                                    login

    # ─── Listener-shinken configured password                                                              ───
    # >>> Default : Default password generated for listener-shinken                                         ───
    # listener_password                                 pass

    # ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ─────────────────────────────────     MAPS CREATION PARAMETERS    ───────────────────────────────── │ #
    # └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── When an architecture description is received by the module,                                       ───
    # ─── it creates corresponding hosts and NagVis maps.                                                   ───

    # ─── Name with which this Shinken installation will be identified in the NagVis maps                   ───
    # ─── The following characters are forbidden in the architecture name: ~!$%^&*"'|<>?,()=/+              ───
    # >>> Default : Shinken                                                                                 ───
    architecture_name                                 Shinken

    # ─── Sort order for realms in the NagVis maps                                                          ───
    # ─── sort_by_name : Sort realms by alphabetic order                                                    ───
    # >>> sort_by_size : Sort realms by size (on the map) ( Default )                                       ───
    # map_realm_layout                                  sort_by_size

    # ┌─────────────────────────────────────────────────────────────────────────────────────────────────────┐ #
    # │ ───────────────────────────────    BROKER CONNECTION PARAMETERS    ──────────────────────────────── │ #
    # └─────────────────────────────────────────────────────────────────────────────────────────────────────┘ #

    # ─── These parameters are used to allow nagvis to communicate with the Broker and modules you want     ───

    # ─── Name of the Broker holding the modules you want nagvis to communicate with                        ───
    # >>> Default : broker-master                                                                           ───
    # architecture_export__broker_connection__broker_name broker-master

    # ─── Name of the Livestatus module you want nagvis to communicate with to retrieve objects information ───
    # >>> Default : Livestatus                                                                              ───
    # architecture_export__broker_connection__broker_livestatus Livestatus

    # ─── Type of the target WebUI you want to communicate with                                             ───
    # ─── This allow redirection when clicking on object on the maps                                        ───
    # >>> module : Use a WebUI module configuration for the communication ( Default )                       ───
    # ─── url    : Use an url for the communication                                                         ───
    # architecture_export_broker_connection_broker_webui_communication_type module

    # ─── Targetted WebUI to communicate with                                                               ───
    # ─── If previous parameter is set to "module", this must be a WebUI name                               ───
    # ─── If previous parameter is set to "url", this must be an url                                        ───
    # >>> Default : WebUI                                                                                   ───
    # architecture_export_broker_connection_broker_webui_target WebUI
}


Détails des sections composant le fichier de configuration

Identification du module

est possible de définir plusieurs instances de module de type MODULE_NAME, le paramètre module_name permet d'identifier une instance donnée.

nomtypedéfautcommentaire


module_name 


TexteMODULE_NAMEChaîne de caractères composée de lettres, de chiffres et des caractères _  et -, commençant par une lettre.


module_type 


TexteMODULE_TYPEValeur non modifiable ( permet au DEMON-TYPE de charger le code logiciel correspondant ).


TITRE 


Le rôle de chaque paramètre et les valeurs possibles sont décrites dans le tableau suivant:

Nom du paramètre

Description

Valeur par défaut

host 
Adresse de l'interface utilisée pour l'écoute sur le port 7780. Pour écouter sur toutes les interfaces, utiliser l'adresse 0.0.0.00.0.0.0
port
Port utilisé pour communiquer avec le module architecture-export7780
use_ssl
Booléen (0 ou 1) qui indique si le module architecture-export doit communiquer via SSL (utiliser la valeur 1 pour forcer la communication via SSL)0
ssl_cert
Chemin vers le fichier de certificat SSL/etc/shinken/certs/server.cert
ssl_key
Chemin vers le fichier de clé SSL/etc/shinken/certs/server.key
architecture_name
Nom de l'architecture affichée dans l'interface de VisualisationShinken
map_base_url

Domaine à utiliser pour la construction des liens vers les cartes dans l'interface de Visualisation. Par défaut, l'adresse de l'Arbiter est utilisée.

Pour que les liens vers NagVis dans le menu Architecture de l'interface de Visualisation pointent vers https://mon-domaine.fr/adresse-de-nagvis..., il faut utiliser la valeur "https://mon-domaine.fr/" pour ce paramètre.

adresse de l'Arbiter
send_my_architecture_to_recipients
Liste des modules architecture-export distants auxquels il faut envoyer les informations d'architecture. Ces modules distants vont générer les hôtes et cartes NagVis dans leurs installations Shinken respectives.http://127.0.0.1:7780
listener_use_ssl
Lors de la réception d'une description d'architecture, indique si la communication avec le listener Shinken pour la création des hôtes Shinken associés à cette architecture doit se faire via SSL. Pour que cela fonctionne, il faut également que la communication via SSL soit activée dans les réglages du listener-shinken (faisable depuis l'interface de Configuration)0
listener_login
Lors de la réception d'une description d'architecture, indique le nom d'utilisateur à utiliser pour la connexion avec le listener-shinken pour la création des hôtes Shinken associés à cette architectureShinken
listener_password
Lors de la réception d'une description d'architecture, indique le mot de passe à utiliser pour la connexion avec le listener-shinken pour la création des hôtes Shinken associés à cette architecturemot de passe par défaut du listener
ssh_port
Lors de la réception d'une description d'architecture, indique le port SSH à utiliser lors de la connexion aux hôtes Graphite pour la découverte de l'architecture Graphite22
ssh_user
Lors de la réception d'une description d'architecture, indique l'utilisateur à utiliser lors de la connexion aux hôtes Graphite pour la découverte de l'architecture Graphiteshinken
ssh_key_file
Lors de la réception d'une description d'architecture, indique le chemin de la clé SSH à utiliser lors de la connexion aux hôtes Graphite pour la découverte de l'architecture Graphite/var/lib/shinken/.ssh/id_rsa.pub
ssh_timeout
Lors de la réception d'une description d'architecture, indique le timeout à utiliser lors de la connexion aux hôtes Graphite pour la découverte de l'architecture Graphite(secondes)
map_realm_layout
Lors de la création d'une carte NagVis, indique dans quel ordre seront affichés les royaumes. Les valeurs possibles sont sort_by_size (les royaumes qui comportent le plus de démons Shinken seront affichés en premier) et sort_by_name (les royaumes sont affichés par ordre alphabétique).sort_by_size
architecture_export__broker_connection__broker_nameNom du Broker sur lequel sont les modules WebUI et Livestatus avec lesquels NagVis communiquerabroker-master
architecture_export__broker_connection__broker_livestatusNom du module de type Livestatus sur lequel NagVis récupérera les informations des éléments Shinken afin d'afficher leurs statuts sur les cartes.Livestatus
architecture_export__broker_connection__broker_webuiNom du module de type WebUI vers lequel NagVis redirigera l'utilisateur lorsqu'il clique sur un élément Shinken d'une carteWebUI
architecture_export__broker_connection__broker_webui_redirect

Permet de définir une adresse personnalisée pour la redirection vers la WebUI.

Il ne peut pas être utilisé en même temps que le paramètre architecture_export__broker_connection__broker_webui


Aucun


Plus de détails sur le fonctionnement du module architecture-export et sur ces paramètres sont disponibles dans la page de documentation dédiée: Activation et configuration de la fonctionnalité

Envoi de la description de l'architecture

L'envoi de la description de l'architecture aux destinataires choisis (paramètre send_my_architecture_to_recipients) est déclenché au démarrage du module architecture-export, c'est-à-dire au démarrage du démon Arbiter.

Il est également possible de déclencher cet envoi manuellement, sans avoir à redémarrer le démon Arbiter, en envoyant une requête HTTP POST à l'URL suivante: 

adresse_arbiter:7780/v1/architecture/send


Par exemple, avec curl:

curl -v -X POST adresse_arbiter:7780/v1/architecture/send