Configuration

Exemple de fichier de configuration

#**********************************************************************************
#  This file contains values for:
#    - the global parameters
#    - the arbiter parameters
#
#  IMPORTANT : DO NOT EDIT THIS FILE. This file will be overwritten at every update
#              with the default values
#
#**********************************************************************************



#==================================================================================
#======== logging =========

                                                       # Log file for the arbiter daemon
local_log=/var/log/shinken/arbiterd.log


                                                       # You can enable the logging of elements states into the schedulers logs
                                                       # disabled by default
log_initial_states=0


# If you disable, the timestamp will be an epoch integer instead of a human date
human_timestamp_log=1

                                                       # Set logging level to info by default for the Arbiter daemon (info, warning and error logs will be shown)
log_level=INFO

#==================================================================================



#==================================================================================
#======== Modules and architecture =========

cfg_dir=modules
cfg_dir=arbiters
cfg_dir=schedulers
cfg_dir=pollers
cfg_dir=reactionners
cfg_dir=brokers
cfg_dir=receivers
cfg_dir=realms
cfg_dir=synchronizers

#==================================================================================




#==================================================================================
#======== Default elements (host, checks, ...) properties =========

                                                       # Load default properties for types (like hosts).
                                                       # Do not edit these files, they are overwritten at every update, you can overload them
                                                       # in a directory listed at the end of this file.
cfg_dir=_default/default_element_properties

#END ==================================================================================





#==================================================================================
#======== Global DATA =========
                                                       # You will find global DATA into this directory
cfg_dir=resource.d

#END ==================================================================================




#==================================================================================
#======== Monitoring and scheduling =========


                                                       # Number of minutes to randomly spread the scheduling of an element the first time
                                                       # a scheduler schedule this element. During the first start of the element presence in your
                                                       # daemons and this spread limit, the element will be in UNKNOWN state (not checked yet)
                                                       # - max_service_check_spread => for checks, 5 minutes by default
                                                       # - max_host_check_spread => for hosts and clusters, 5 minutes by default
max_service_check_spread=5
max_host_check_spread=5


                                                       # How many seconds a command check (for hosts, clusters and checks) is allowed to run.
                                                       # after this limit, the process will be killed and the element will be set in CRITICAL state
                                                       # by default: 60
check_running_timeout=60


                                                       # How many seconds a host check (for hosts only) is allowed to run. after this limit,
                                                       # the process will be killed and the element will be set in CRITICAL state
                                                       # by default: 60
# /!\ USELESS host_check_timeout PARAMETER
# The parameter "host_check_timeout" is no more used in Shinken. Use check_running_timeout instead.
#host_check_timeout=60


                                                       # How many seconds a command check (for hosts, clusters and checks) is allowed to consume cpu
                                                       # before raising a warning in check scheduler performance.
                                                       # by default: 5
warning_threshold_cpu_usage=5


                                                       # flap_history is the length of history states changes we keep looking for
                                                       # flapping.
                                                       # by default: 20
flap_history=20


                                                       # Max plugin output size allowed for the plugins execution by the pollers
                                                       # by default: 65536 (64K)
max_plugins_output_length=65536


                                                       # If enabled, an element that goes wrong will change the state of dependent elements (like checks on a host) in UNKNOWN state
                                                       # until they are checks again and then they will take their final state returned by the plugin
enable_problem_impacts_states_change=1



                                                       # If enabled, won't print warning messages about specific nagios parameters
disable_old_nagios_parameters_whining=1


                                                       # If enabled, set a timezone for the daemons
#use_timezone=FR/Paris

                                                       # If you need to set a specific language for deamons output (supported: fr; anything else is english), uncomment it
#language=fr


                                                       # If your plugins need NAGIOS_ environnement variables enable them for all your commands.
                                                       # If only some commands need them, you can enable it on these specific commands instead.
                                                       # Note: enable this will have a huge impact on your schedulers CPU consumption.
enable_environment_macros=0


                                                       # By default don't launch even handlers during downtime.
                                                       # Note: the default Nagios behaviour is to allow them. If you want to keep this
                                                       # Nagios behavior, then set this parameter to 0
no_event_handlers_during_downtimes=1


                                                       # Number of minutes between forced scheduler retention save
                                                       # retention: scheduler backup of elements state so a daemon restart
                                                       # can start with previous states and not UNKNOWN
                                                       # by default 60 (minutes)
retention_update_interval=60


                                                       # Minimal delay before state of elements start to expire and elements state change to no data (unknown).
                                                       # You can change this parameter if some of your element state expires when you push a new configuration in production.
#minimal_time_before_an_element_become_missing_data=0


                                                       # Maximum duration (in seconds) of the initial daemons check (schedulers, brokers, ...) by the arbiter when start
                                                       # do check which is ALIVE or DEAD. If a daemon didn't respond at least once during this duration, it will
                                                       # be declared as DEAD and a spare will take its configuration at startup
configuration_dispatch__initial_daemons_check__max_duration=30

#==================================================================================




#==================================================================================
#======== System arbiter daemon parameters (user, group, pid, ...) =========

                                                       # Which user/group to run the daemon as.
shinken_user=shinken
shinken_group=shinken

                                                       # Lock file (with pid) for arbiter daemon
lock_file=/var/run/shinken/arbiterd.pid


                                                       # Enable or not the arbiter to run.
                                                       # default: 1 (enabled)
daemon_enabled=1



                                                       # Path to the modules code directory.
modules_dir=/var/lib/shinken/modules


#==================================================================================
#======== Arbiter daemon HTTP(S) listening  =========

                                                       # If enabled, the arbiter daemon will listen in HTTPS instead of HTTP protocol.
                                                       # Note: default pem/cert and key files are for sample only. You need to generate
                                                       # your own with your PKI.
                                                       # by default: 0 (disabled)
use_ssl=0
ca_cert=/etc/shinken/certs/ca.pem
server_cert=/etc/shinken/certs/server.cert
server_key=/etc/shinken/certs/server.key

                                                       # Should the arbiter connections will force the HTTPS certificates name checks.
                                                       # If enabled and a distant certificate is not the same as the daemon address, then
                                                       # the connection will be refused.
hard_ssl_name_check=0

                                                       # Which HTTP backend to start the listening daemon with.
                                                       # Currently only auto is managed.
http_backend=auto


                                                       # Which addr to bind for the arbiter daemon
                                                       # by default: 0.0.0.0 (means all interfaces)
bind_addr=0.0.0.0

#==================================================================================

#==================================================================================
#======== Daemon data export =========
                                                       # Set a private password to allow dump with sensible data ( like host name, realm name, ... )
                                                       #      (if void or missing, only anonymous dump is allowed)
#daemon__export_data__password=

#==================================================================================

#==================================================================================
#======== User parameters customizations =========

                                                       # If you need to customise a value in this file, set it in this file.
cfg_file=/etc/shinken-user/configuration/daemons/arbiters/arbiter_cfg_overload.cfg


                                                       # If you need to customise element (host, check, ...) default properties value, set it in this directory.
cfg_dir=/etc/shinken-user/configuration/default_element_properties

                                                       # For your custom global DATA.
cfg_dir=/etc/shinken-user/configuration/global-data

#==================================================================================

Options de configuration 

En créant ou éditant votre fichier de configuration, gardez à l'esprit que :

  • les lignes commençant par le caractère '"#"' sont considérées comme des commentaires 
  • les noms de variable sont sensibles aux majuscules/minuscules max_plugins_output_length

Le fichier principal de configuration est "shinken.cfg".

  • Il est situé dans le répertoire "/etc/shinken/" . 
  • (warning) L'édition de ce fichier doit être faite avec l'encodage utf-8


Ci dessous, la liste des paramètres utilisés. Pour les autres paramètres (non réglés par défaut) voir Configuration avancée.

Options utilisées par défaut

Cfg dir et Cfg files

Format :

cfg_dir=<directory_name>
cfg_file=<file_name>

Ceux-ci sont des assertions, et non des paramètres . L'Arbiter les considère comme des ordres pour ouvrir d'autre(s) fichier(s) de configuration. 
Pour le cfg_dir, l'Arbiter lit uniquement les fichiers se terminant par ".cfg".
L'Arbiter lit les directives de manière récursive pour les fichiers, mais ne considère plus les lignes à l'intérieur comme assertions. 

Cela signifie que les fichiers cfg_dir ou cfg_file sont considérés comme paramètres en dehors de Shinken.cfg 
L'Arbiter gère le fichier principal de configuration différemment des autres fichiers.

Ces deux options ne permettent plus d'importer des éléments de configuration (hôtes, Checks, clusters, etc...)

Intervalle de sauvegarde automatique de la rétention

Format:

retention_update_interval=<minutes>

Défaut:

retention_update_interval=60

Ce paramètre détermine l'intervalle (en minutes) entre chaque sauvegarde de rétention automatique de données par le Scheduler en opération normale.
Si vous mettez cette valeur à 0, il ne sauvegardera pas les données de rétention à intervalle régulier, mais seulement à l'arrêt et au redémarrage.

Propagation maximum pour les hôtes et services

Format:

max_service_check_spread=<minutes>
max_host_check_spread=<minutes>

Défaut:

max_service_check_spread=30
max_host_check_spread=30

Cette option détermine l'écart de temps maximum (en minutes) pour vérifier tous les hôtes/checks  (qui sont planifiés pour être vérifié régulièrement). Cette option garantira que les vérifications initiales se feront dans la période de temps définie. Par défaut, la valeur est 30 (minutes).

Timeout pour les Checks sur les Services/Hôtes

Format:

check_running_timeout=<seconds>

Défaut:

check_running_timeout=60

Il s'agit du nombre maximum de secondes qu'autorise Shinken Enterprise pour lancer les hôtes/checks. Si les vérifications dépassent cette limite, elles sont supprimées et un statut CRITICAL est retourné. Une erreur timeout sera également loggué. 

Il y a souvent une confusion répandue, sur ce que cette option fait vraiment. Elle est destinée à être utilisée comme un mécanisme de dernier rempart, pour tuer les plugins qui se comportent mal. Elle doit être réglée sur une valeur haute (quelque chose comme 60 secondes ou plus), de sorte que chaque vérification soit dans ce délai. Si une vérification dure plus longtemps, Shinken Enterprise va la tuer, estimant que le process est bloqué.

Status de sortie du Timeout

Format:

timeout_exit_status=[0,1,2,3]


Défaut:

timeout_exit_status=2

Valeur de retour définie par Shinken Enterprise en cas de timeout. 0 pour "OK", 1 pour "UNKNOW", 2 pour "WARNING", 3 pour "CRITICAL"

Historique de changement d'état

Format:

flap_history=<int>


Défaut:

flap_history=20

Cette option est utilisée pour définir la taille de l'historique des changements d'états ou non gardés par le Scheduler pour réaliser le calcul de l'état flapping. Par défaut, la valeur est de 20 changements d'états ou non gardés. 

  • La taille mémoire est pour le démon Scheduler est de : (nombres d'hôtes + nombres cluster + nombres checks) * ( ( flap_history * 24o ) + 296o).
  • Par exemple pour 1000 hôtes + 10000 checks: (1000 + 10000) * ( (20 * 24) + 296) = 8.14Mo

Longueur maximum de la sortie des plugins

Format:

max_plugins_output_length=<int>


Défaut:

max_plugins_output_length=8192

Cette option est utilisée pour définir la taille max en bytes pour les retours de plugins de checks .Si vous voyez des valeurs tronquées, comme par exemple pour de gros checks de disque, augmentez la valeur. 

Activation du changement d'état pour les problèmes/impacts

Format:

enable_problem_impacts_states_change=<0/1>


Défaut:

enable_problem_impacts_states_change=1

Cette option est utilisée si on applique le changement d'état lorsqu'un hôte ou un check est impacté par un problème causé. L'état sera changé à UNKNOWN pour un check et UNREACHABLE pour un hôte jusqu'au lancement du prochain check. Le changement d'état ne compte pas comme une tentative, c'est juste pour la console afin que l'utilisateur sache que ces objets ont des problèmes et que leurs états précédents n'étaient pas sûrs.

Désactivation de la notification des anciens paramètres nagios

Format:

disable_old_nagios_parameters_whining=<0/1>


Défaut:

disable_old_nagios_parameters_whining=0

Si 1, désactive toutes les notifications et messages à la vérification de la configuration.

Options de fuseau horaire


Format:

use_timezone=<tz from tz database>


Défaut:

use_timezone=''

Cette option permet d'outrepasser le fuseau horaire défini par défaut sous lequel l'instance Shinken Enterprise tourne. C'est très utile si vous avez plusieurs instances qui doivent tourner sur le même serveur, mais avec des fuseaux horaires différents. Si rien n'est spécifié, Shinken Enterprise utilisera le fuseau horaire du système.

Macros d'environnement

Format:

enable_environment_macros=<0/1>


Default:

enable_environment_macros=0

Cette option détermine si le démon Shinken Enterprise va rendre disponibles LES VARIABLES comme variables d'environnement pour les checks, notifications, gestionnaires d'événements, etc. Dans des installations importantes, cela peut être problématique car il nécessite de la CPU supplémentaire pour calculer les valeurs des macros et les rendre disponibles . Cela augmente également la communication réseau entre les Schedulers et les Pollers.

  • 0 = ne rend pas les macros disponibles en tant que variables d'environnement
  • 1 = rendent les macros disponibles comme variables d'environnement 

Log des états initiaux

Format:

log_initial_states=<0/1>


Défaut:

log_initial_states=1

Cette variable détermine si Shinken Enterprise loggue tous les états initiaux des hôtes et des checks si le résultat est un état OK. Les états initiaux ne sont normalement loggués que lorsqu'il y a un problème sur le premier check. Activer cette option est utile si vous avez une application qui scanne le fichier log pour définir des statistiques à long terme.  

  • 0 = ne loggue pas les états initiaux
  • 1 = loggue les états initiaux

Gestionnaire d'événements pendant les périodes de maintenance

Format:

no_event_handlers_during_downtimes=<0/1>


Default:

no_event_handlers_during_downtimes=1

Cette option détermine si Shinken Enterprise va lancer : Gestionnaire d'événements lorsque l'hôte ou le check est en maintenance planifiée.

  • 0 = Lancement de gestionnaire d'événements (comportement Nagios)
  • 1 = Ne lance pas le gestionnaire d'événements 

Affichage des logs au format date

Format:

human_timestamp_log=<0/1>

Défaut :

human_timestamp_log=1

Cette option permet d'afficher les logs avec un format de date différent:

  • 1 = lisible par un humain
  • 0 = format timestamp

Partie démon Arbiter

Les paramètres suivants sont communs à tous les démons.

Répertoire de travail

Format:

workdir=<directory>


Défaut :

workdir=/var/run/shinken/

Cette variable spécifie le répertoire de travail du démon.
Dans le cas de l'Arbiter, si la valeur est vide ou absente, c'est le répertoire du paramètre lock_file qui sera pris.

Fichier de verrouillage

Format:

lock_file=<file_name>


Exemple:

lock_file=/var/lib/shinken/arbiterd.pid

Cette option spécifie l'emplacement du fichier lock que l'Arbiter doit créer lorsqu'il tourne en tant que démon (démarré avec l'argument de la ligne de commande  "-d" ). Ce fichier contient le PID de l'Arbiter qui tourne.

Fichier de log local

Format:

local_log=<filename>


Défaut:

local_log=/var/log/shinken/arbiterd.log'


Cette variable spécifie l'emplacement du fichier log file pour le démon.

Niveau de log

Format:

log_level=[DEBUG,INFO,WARNING,ERROR,CRITICAL]


Défaut:

log_level=WARNING


Cette variable spécifie le niveau de logs remonté par l'Arbiter. Pour les autres démons, cela peut être défini dans leur fichier /etc/shinken/daemons/*.ini local

Utilisateur du daemon

Défini dans brokerd.ini, brokerd-windows.ini, pollerd.ini, pollerd-windows.ini, reactionnerd.ini, schedulerd.ini and schedulerd-windows.ini.

Format:

shinken_user=username


Défaut:

shinken_user=<current user>

User sous lequel le process de l'Arbiter  (process principal) va tourner. 
Après le démarrage initial du programme, Shinken Enterprise va réduire ses privilèges et tournera en tant que cet user. 

Groupe d'utilisateur du daemon

Format:

shinken_group=groupname


Défaut:

shinken_group=<current group>

Groupe sous lequel le process de l'Arbiter (process principal) va tourner.

Répertoire des modules

Format:

modules_dir=<direname>


Défaut:

modules_dir=/var/lib/shinken/modules


Chemin vers le répertoire stockant les modules 

Daemon activé

Format:

daemon_enabled=[0/1]


Défaut:

daemon_enabled=1

Si  0, le démon (arbiter) NE FONCTIONNE PAS 

Utilisation du SSL

Format:

use_ssl=[0/1]


Défaut:

use_ssl=0

Utiliser SSL ou pas. Vous devez l'activer dans les autres démons également.

Fichier de l'autorité de certification

Format:

ca_cert=<filename>


Défaut:

ca_cert=/etc/certs/ca.pem

Certificat de la Certification Authority (CA) avec le chemin complet.

Certificat serveur

Format:

server_cert=<filename>


Défaut:

server_cert=/etc/certs/server.cert

Certificat serveur pour SSL avec le chemin complet.

Clé du certificat

Format:

server_key=<filename>


Défaut:

server_key=/etc/certs/server.key

Clé serveur pour SSL avec le chemin complet 

Vérification stricte de la correspondance de nom

Format:

hard_ssl_name_check=[0/1]


Défaut:

hard_ssl_name_check=0

Si à 1, active la vérification stricte de la correspondance entre le nom du serveur et le nom défini dans le certificat.

Moteur HTTP

Format:

http_backend=[auto, cherrypy, swsgiref]


Défaut:

http_backend=cherrypy

Spécifie quel moteur HTTP utiliser.

Options d'export des données

Mot de passe

Format:

daemon__export_data__password=<chaine de caractère>


Défaut:

daemon__export_data__password=

Permet de définir un mot de passe pour les appels d'extraction des données des démons.
Par défaut il n'y a pas de mot de passe, ce qui interdit l'export de donnée avec des données sensibles ( comme les noms d'élément, le nom des royaumes, ... )

Attention : le caractère ; est interpréter comme le début d'un commentaire donc votre mot de passe sera mal interprété s'il contient un ;