Description

Le module livedata-module-sla-provider est un module qui permet au module broker-module-livedata du Broker de fournir une API de consultation des données SLA archivées.

  • /api/v1/sla
  • Il récupère les données SLA présentes dans la base de données Shinken.

Pour plus de détails sur cette API, vous pouvez consulter sa documentation d'utilisation.

Activation

Pour que l'API soit disponible, le module doit être activé. L'activation du module s'effectue en l'ajoutant dans le fichier de configuration du broker-module-livedata concerné.

Pour ce faire, dans le fichier de configuration de votre broker-module-livedata à l'emplacement /etc/shinken/modules/nom_de_votre_module.cfg à la ligne suivante, ajouter "livedata-module-sla-provider"

Vous pouvez voir le paramétrage complet du broker-module-livedata dans Configuration du module broker-module-livedata

define module {
    [...]
    modules                   livedata-module-sla-provider
    [...]
}


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

service shinken-arbiter restart


Si vous avez plusieurs modules broker-module-livedata présents dans votre architecture, n'oubliez pas d'activer le module livedata-module-sla-provider dans la configuration de chacune d'elles.


Paramétrage

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

Exemple de fichier de configuration


# =========================================================================================================== #
# -------------------------------        livedata_module_sla_provider        -------------------------------- #
# =========================================================================================================== #
# --- Daemons that can load this module:                                                                    ---
# ---   => broker-module-livedata                                                                           ---
# --- This module is an API providing information on SLA of moditored elements                              ---
#============================================================================================================ #

define module {

    # ==========================================   Module identity   ======================================== #
    # --- Module name [ Must be unique ]                                                                    ---
    module_name                                       livedata-module-sla-provider

    # --- Module type [ Do not edit ]                                                                       ---
    module_type                                       livedata_module_sla_provider


    # ======================================================================================================= #
    # ------------------------------------    SLA Database connexion   -------------------------------------- #
    # ------------------------------------------------------------------------------------------------------- #

    # =================  Mongo parameters  ===================                                                #
	#                                                                                                         #
    # --- Mongodb uri definition 																			---
    # >>> DEFAULT : mongodb://localhost/?w=1&fsync=false                                                    ---
    livedata_module_sla_provider__uri                  		                              mongodb://localhost/?w=1&fsync=false
	
	# --- Which database contains sla data           												        ---
    # >>> DEFAULT : shinken                                                                                 ---
    livedata_module_sla_provider__database             			                          shinken

	# --- Defines the maximum time, in seconds, for the connection to be established, as well as for read   ---
    # --- or write requests.                                                                                ---
    # >>> DEFAULT : 3                                                                                       ---
    livedata_module_sla_provider__database__timout_after_X_seconds                          3

    # --- if the module encounter an issue to connect on the database, it will retry X times before         ---
    # --- considering it as a connexion error                                                               ---
    # >>> DEFAULT : 2                                                                                       ---
    # livedata_module_sla_provider__database__retry_connection_X_times_before_considering_an_error	  2

	# --- If the module face a connection error to the database, it restart the connection process          ---
    # --- after X seconds                                                                                   ---
    # >>> DEFAULT : 10                                  												     ---
    # livedata_module_sla_provider__database__wait_X_seconds_before_reconnect                  10

	
    # ========  SSH Tunnel for Database connection  ==========                                                #
	#                                                                                                         #
    # --- SSH tunnel activation to securize your mongodb connection  										---
	# --- That will allow all mongodb to be encrypted & authentificated with SSH 							---
    # >>> Disabled  : 0 ( DEFAULT )                         												 ---
    # --- Enabled   : 1                                     												---
    # livedata_module_sla_provider__use_ssh_tunnel          	                             0
  
    # --- SSH user to connect to the mongodb server.       													---
    # >>> DEFAULT : shinken                                 												 ---
    # livedata_module_sla_provider__ssh_user                	                             shinken
     
    # --- SSH keyfile to connect to the mongodb server.     												---
    # >>> DEFAULT : ~shinken/.ssh/id_rsa                    												 ---
    # livedata_module_sla_provider__ssh_keyfile             	                             ~shinken/.ssh/id_rsa
  
    # --- SSH Timeout used to test if the SSH tunnel is viable or not, in seconds                           ---
    # >>> DEFAULT : 10                                                                                      ---
    # livedata_module_sla_provider__ssh_tunnel_timeout  		                             10
  

    # ======================================================================================================= #
    # ----------------------------------------    SLA calculation   ----------------------------------------- #
    # ------------------------------------------------------------------------------------------------------- #
	#                                                                                                         #
    # --- Some status can impact                                                                            ---
    # ---     Positively ( counted as OK / UP ) 										                    ---
	# ---     Negatively ( counted as CRITICAL / DOWN )                                                     ---
    # ---     or not impact the SLA ( is not counted, meaning the period of study is reduced by the period  ---
    # ---     that is not counted )                                                                         ---
    # ---                                                                                                   ---
    # --- This configuration aims at giving Shinken administrators a way to configure 						---
	# --- how the SLA are calculated. 																		---
  
    # ========  No_data periods ( "Missing data" and "Shinken inactive" status )  ==========                  #
	#                                                                                                         #
    # >>>    include: ( DEFAULT ) Only status is considered. 												 ---
	# --- 	    note: "Missing data" and "Shinken inactive" status are counted negatively in the SLA. 		---
    # ---    exclude:  No_data are not counted from SLA considered period									--- 
    # ---    ok:       No_data are considered as UP periods 												---
    # livedata_module_sla_provider__no_data_period        		                             include
  
}


Détails des sections composant le fichier de configuration

Identification du module

Il est possible de définir plusieurs modules du module livedata-module-sla-provider, le paramètre module_name permet d'identifier chaque module.

Nom

Type

Valeur par défaut

Commentaire


module_name


Textelivedata-module-sla-providerChaîne de caractères composée de lettres, de chiffres et des caractères _  et -, commençant par une lettre


module_type 


TexteslaValeur non modifiable ( permet au Broker de charger le code logiciel correspondant ).


Paramètre de connexion à la base de données

Connexion et définition de la base de données


define module {
    [...]
    livedata_module_sla_provider__database__uri                                                       mongodb://localhost/?w=1&fsync=false
    livedata_module_sla_provider__database__name                                                      shinken
    livedata_module_sla_provider__database__timout_after_X_seconds                                    3
    livedata_module_sla_provider__database__retry_connection_X_times_before_considering_an_error	  2
    livedata_module_sla_provider__database__wait_X_seconds_before_reconnect                           10
    [...]
}


L'url de connexion et le nom de la base de données SLA du module livedata-module-sla-provider sont paramétrables via les options suivantes :

Nom de la propriétéTypeValeur par défautCommentaire


livedata_module_sla_provider__database_uri


Textemongodb://localhost/?w=1&fsync=falseURL mongo de connexion à la base de données cf. https://docs.mongodb.com/manual/reference/connection-string/


livedata_module_sla_provider__database__name


TexteshinkenBase de données à utiliser pour lire les données SLA.


livedata_module_sla_provider__database__timout_after_X_seconds


Entier3Défini le temps maximum, en seconde, pour que l'établissement de la connexion, ainsi que pour les requêtes de lectures ou d'écritures.


livedata_module_sla_provider__retry_connection_X_time_before_considering_an_error 


Entier2Si le module rencontre un problème de connexion, cette valeur indique le nombre de fois il essaye de se reconnecter avant de considérer qu'il y a une erreur de connexion.


livedata_module_sla_provider__reconnect_to_database_after_X_seconds


Entier10Une fois que le module a considéré qu'il y avait une erreur de connexion, il va essayer de refaire le processus de connexion après ces X secondes.



Utilisation et définition du tunnel SSH

La connexion à la base de données peut se faire via un tunnel SSH, les options suivantes le définiront :

Nom de la propriétéTypeValeur par défautCommentaire


livedata_module_sla_provider__use_ssh_tunnel


Booléen

( 0 / 1 )

0Utiliser un tunnel SSH pour accéder au serveur de base de données


livedata_module_sla_provider__ssh_user


TexteshinkenUtilisateur distant à utiliser pour la connexion SSH


livedata_module_sla_provider__ssh_keyfile


Texte~shinken/.ssh/id_rsaClé SSH locale à utiliser pour se connecter au serveur distant


livedata_module_sla_provider__ssh_tunnel_timeout


Entier10Temps maximal en seconde pour établir le tunnel de connexion vers la base de donnée MongoDB


Calcul du taux de SLA

Certains statuts peuvent avoir un impact

  • positif UP ),
  • négatif ( DOWN )
  • ne pas avoir d'impact sur les SLAs ( IGNORED ) n'est pas compté, ce qui signifie que la période n'est pas comptée.

Cette configuration vise à donner aux administrateurs de Shinken un moyen de configurer le mode de calcul des SLAs.

Voici les paramètres permettant de configurer les statuts SLAs

Nom de la propriétéTypeValeur par défautCommentaire


livedata_module_sla_provider__no_data_period


Texteinclude

Concerne les statuts "Données manquantes" et "Shinken Inactif". Valeurs possibles :

  • include : Les périodes "Données manquantes" / "Shinken Inactif" sont comptées comme DOWN.
  • exclude : Les périodes "Données manquantes" / "Shinken Inactif" ne sont pas pris en compte dans le calcul de la période => IGNORED.
  • ok : Les périodes "Données manquantes" / "Shinken Inactif" sont comptées comme UP.