Versions Compared

Key

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

Rôle

Le reactionner Reactionner délivre les notifications et lance les gestionnaires d'événements. Cela permet de centraliser les canaux d'échange avec les systèmes externes afin de simplifier les autorisations SMTP ou l'alimentation des sources RSS (seulement un pour tous les hôtes/services). Il peut y avoir plusieurs reactionners Reactionners pour du load-balancing (répartition de charge) ou un rôle de spare spare. 

Connexions avec les autres démons

Le reactionner Reactionner écoute sur son port 7769, et récupère sa configuration de que lui envoie l'arbiter , sur son port 7769 Arbiter.

Sa configuration vient de la liste du royaume du scheduler auquel le reactionner se connectera.lui permet de savoir suivant l'architecture, à quel Scheduler ce Reactionner doit se connecter pour récupérer les demandes d'exécution de notification ou de réaction (event hanlder).

Image AddedImage Removed

Visibilité du serveur mail 

Le reactionner Reactionner lance les plugins commandes de notification afin de notifier les contacts sur les alertes. Les plugins de notification sont principalement basés sur le système mail, donc le reactionner Reactionner a besoin d'une configuration MTA locale (Mail Transfer Agent). Cette configuration est à la discrétion de l'administrateur système. Par exemple, vous pouvez installer et paramétrer Postfix pour relayer les emails vers un serveur Exchange.

Données

Le reactionner reçoit les commandes des schedulersQue ce soit en mode actif ou passif, le Reactionner reçoit les checks (et donc les différentes lignes de commandes à exécuter) des Schedulers.

Il ne connait rien aux objets, il reçoit juste des commandes à exécuter (créées par les schedulerSchedulers) .

Résumé des connexions du

...

Reactionner 

SourceDestinationPortProtocoleNote
ReactionnerSchedulers7768HTTP/HTTPS  

 

...

Descriptions des variables

 

reactionner géré en tant que spare (ne chargera la configuration que si le maître tombe)
PropertyDefaultDescription
reactionner_nameN/ACette variable est utilisée pour identifier le nom raccourci du reactionner auquel les données sont attachées.
addressN/A

Cette directive est utilisée pour définir l'adresse d'où l'arbiter principal peut joindre le reactionner. Cela peut être un nom DNS ou une adresse IP.

port77727769Cette directive est utilisée pour définir le port TCP utilisé par ce démon .spare
use_ssl0Cette variable est utilisée pour définir si le Reactionner doit être contacté en HTTPS (*1*) ou HTTP (*0*). La valeur par défaut est *0* (HTTP).
min_workers0Cette variable est utilisée pour définir le nombre de processus Worker utilisé par le Reactionner. Par défaut 0, correspond à 1 Worker par CPU.
processes_by_worker256Cette variable est utilisée pour définir le nombre maximal de commandes qu'un Worker est autorisé à exécuter en simultané.
polling_interval1Cette variable est utilisée pour définir le nombre de secondes à attendre avant que le Reactionner ne récupère les checks des Schedulers
timeout3Cette variable est utilisée pour définir le temps en secondes avant que l'Arbiter ne considére ce démon comme à l'arrêt. Si ce démon est joignable en HTTPS (use_ssl à 1) avec une latence élevée, nous vous conseillons alors d'augmenter cette valeur de timout (l'Arbiter aura besoin de plus d'allers/retours pour le contacter).

data_timeout

120Cette variable est utilisée pour définir le temps en secondes avant de considérer un transfert de configuration ou de données comme échoué.
max_check_attempts3Si le ping permettant de détecter la disponibilité réseau du nœud est en échec N fois ou plus, alors le nœud est considéré comme mort. (par défaut, 3 tentatives)
check_interval60Intervalle de Ping toutes les N secondes.
modulesN/ACette variable est utilisée pour définir tous les modules chargés par le reactionner.
realmN/ACette variable définie dans quel royaume sera le reactionner. Si aucun n'est sélectionné, il sera assigné à celui par défaut.
manage_sub_realms1Cette variable est utilisée pour définir si le poller acceptera les tâches du scheduler venant des sous-royaumes. modulesN/ACette variable est utilisée pour définir tous les modules chargés par le reactionner.
reactionner_tagsNone

Cette variable est utilisée pour définir les checks que peut lancer le reactionner. Si il n'y a aucun reactionner_tags spécifié, il prendra tous les checks non qualifiés.
Par défaut, il n'y a aucun reactionner_tag, donc il prend tous les checks non qualifiés..

 

passive0Cette variable est utilisée pour définir le mode de connexion. Par défaut 0, le Reactionner se connecte au Scheduler pour récupérer ou retourner les informations. Si 1, le Scheduler se connecte au Reactionner pour pousser ou récupérer les informations.
spare0Cette variable est utilisée pour définir si le Reactionner doit être géré en tant que spare (ne chargera la configuration que si le maître tombe). La valeur par défaut est *0*.
enabled1Cette variable est utilisée pour définir si le Reactionner est activé ou non.
   

Exemple de définition 

Dans le répertoire /etc/shinken/reactionners/, voici un exemple de définition qui permet la définition du Reactionner (à placer dans un fichier CFG)  :

Code Block
#===============================================================================
# REACTIONNER
#===============================================================================
# Description: The reactionner is responsible for:
# - Executing notification actions
# - Executing event handler actions
#===============================================================================

define reactionner {

    #======== Daemon name and address =========
    # Daemon name. Must be unique
    reactionner_name          Main-reactionner

    # IP/fqdn of this daemon (note: you MUST change it by the real ip/fqdn of this server)
    address                   node1.mydomain

    # Port (HTTP/HTTPS) exposed by this daemon
    port                      7769

    # 0 =  spareuse HTTP, 1 = use HTTPS
    use_ssl                       0


    realm  #======== Daemon performance sizing =========
    # Number of worker process to launch. 0 = 1 per AllCPU
    manage_sub_realmsmin_workers             0 ; Does1

 it take jobs from# schedulersNumber of sub-Realms?
  min_workers    maximum commands a worker is allowed to launch in the same time
    processes_by_worker       256

    # How many seconds 1to ;wait Startsbetween withthe Npoller processesto (0get =jobs 1from perthe CPU)scheduler
    polling_interval          1 ; Get jobs from schedulers each 1 second
  timeout


    #======== Daemon connection timeout and down state limit =========
    # timeout: how many seconds to consider a node don't answer
    timeout                   3

   ; Ping# data_timeout: how many second to consider a configuration transfert to be failed
    # because the network brandwith is too small.
    data_timeout              120 ; Data send timeout


    # max_check_attempts: how many fail check to consider this daemon as DEAD
    max_check_attempts        3

 ; If ping fails# NCheck orthis more,daemon thenevery theX nodeseconds
 is dead
  check_interval            60 ; Ping node every minutes
  reactionner_tags      tag1
  modules               module1,module2
}



    #======== Modules to enable for this daemon =========
    # Available:  None for this daemon
    modules


    #======== Realm and architecture settings =========
    # Realm to set this daemon into
    realm                    All

    # manage_sub_realms 1 = take data from the daemon realm and its sub realms
    #                   0 = take data only from the daemon realm
    manage_sub_realms        1

    # Reactionner tags are managed tags. The hosts, checks and commands can have specific tags, and
    # this reactionner will only take them if the element tag is list in the reactionner
    # Reserved tag name:  None  =  untaggued element (default value)
    #reactionner_tags       None

    # passive:  0 = reactionner will connect to the scheduler to take/returs jobs
    #           1 = scheduler will connect to this reactionner to push/take back jobs
    passive                  0

    # spare: 0 = this reactionner is always active
    #        1 = this reactionner will be activated by the arbiter is another reactionner is dead
    spare                    0



    #======== Enable or not this daemon =========
    # 1 = is enabled, o = is disabled
    enabled                  1

}