Les fichiers de log de l'Arbiter sont situés dans le dossier /var/log/shinken/. Pour plus d'informations, consultez la page Fichiers Logs.
Lors du démarrage du démon, une ligne est disponible:
[YYYY-MM-DD HH:MM:SS] INFO : [daemon ] [START-DAEMON] The daemon (version=02.08.01-release.fr) is now started as a daemon (detached from any shell) with pid=15412 [YYYY-MM-DD HH:MM:SS] INFO : [daemon] [ SYSTEM ] System resource number of open files is set to (soft:1024 / hard:1024 ) (from parameter max_file_descriptor_limit) [YYYY-MM-DD HH:MM:SS] INFO : [daemon] [ SYSTEM ] System resource number of process/threads is set to (soft:unlimited / hard:unlimited ) (set at system max values) |
Avec comme informations principales:
Ce log d'erreur indique qu'un fichier des modules de Shinken situé dans /etc/shinken n'est pas encodé en utf-8. Ce log d'erreur est suivi d'un log de warning indiquant le fichier en question dans l'exemple suivant c'est le fichier /etc/shinken/modules/webui.cfg qui ne respecte pas le bon encodage.
[YYYY-MM-DD HH:MM:SS] ERROR : [arbiter] [config] Some characters could not be read in utf-8 in these files : [YYYY-MM-DD HH:MM:SS] WARNING: [arbiter] [config] - /etc/shinken/modules/webui.cfg |
Pour résoudre ce problème, il vous suffit de réencoder le fichier au format UTF-8
Le log ci-dessous apparaît au démarrage du démon Arbiter dans le fichier /tmp/bad_start_for_arbiter_instance_0 et indique qu'une propriété obligatoire est manquante dans le fichier de configuration d'un module.
[YYYY-MM-DD HH:MM:SS] ERROR : [None ] ******************************************************************************** [YYYY-MM-DD HH:MM:SS] ERROR : [None ] [YYYY-MM-DD HH:MM:SS] ERROR : [None ] The "master_key" parameter for the synchronizer-import module (in file /etc/shinken/modules/synchronizer-import.cfg:11) is mandatory. It must be the same than the synchronizer one (in the synchronizer.cfg file) so only allowed arbiter can get the configuration. [YYYY-MM-DD HH:MM:SS] ERROR : [None ] [YYYY-MM-DD HH:MM:SS] ERROR : [None ] ******************************************************************************** |
Dans cet exemple, la propriété "master_key" est absente du fichier /etc/shinken/modules/synchronizer-import.cfg et empêche l'Arbiter de démarrer.
Pour résoudre ce problème, il vous suffit de rajouter le paramètre manquant dans le fichier indiqué par le message d'erreur.
Si un démon master pointe vers un démon spare inconnu, on a l'erreur suivante:
ERROR : [arbiter ] [item::broker-master-bad-3] Cannot find a broker with the name "broker-spare-unknown" for the property "spare_daemon" |
Un démon master et son spare doivent avoir les mêmes types de modules (et dans le même nombre). En cas de non-respect de cette règle, on a l'erreur de configuration suivante:
ERROR : [arbiter ] [ SPARE MODULE NOT MATCHING ] The Broker master "broker-master-bad-4" and its spare "broker-spare-bad-4" do not have the same types of modules (cf "module_type" property in the .cfg): ERROR : [arbiter ] [ SPARE MODULE NOT MATCHING ] +-------------+--------------------------------+------------------------------+ ERROR : [arbiter ] [ SPARE MODULE NOT MATCHING ] | Module type | Master [ broker-master-bad-4 ] | Spare [ broker-spare-bad-4 ] | ERROR : [arbiter ] [ SPARE MODULE NOT MATCHING ] +-------------+--------------------------------+------------------------------+ ERROR : [arbiter ] [ SPARE MODULE NOT MATCHING ] | sla | 1 | 0 | ERROR : [arbiter ] [ SPARE MODULE NOT MATCHING ] +-------------+--------------------------------+------------------------------+ |
On a alors l'erreur suivante:
ERROR : [arbiter ] [ TWO MASTERS FOR ONE SLAVE ] 2 daemons (broker-master-bad-1, broker-master-bad-2) have "broker-spare-bad-1" as spare_daemon. A daemon can be the spare of only one other. |
Si le serveur héberge le démon est surchargé en termes d'IO disques sur le volume qui héberge le fichier de log, alors ce dernier va mettre du temps à s'écrire et va ralentir tout le démon. Il faut alors si c'est faisable isoler le volume des disques sur un disque moins chargé pour ne pas ralentir le démon.
En cas de soucis vous aurez dans les logs l'entrée suivante:
2020-05-04 00:00:51 WARNING : [ LOGGER ] 2020-05-04 00:00:51 WARNING : [ LOGGER ] ---------------------------------------------------------------------------------------------------- 2020-05-04 00:00:51 WARNING : [ LOGGER ] [ WRITING ] The log write time is very high (1.87s). Please look at your log disk performance. 2020-05-04 00:00:51 WARNING : [ LOGGER ] ---------------------------------------------------------------------------------------------------- 2020-05-04 00:00:51 WARNING : [ LOGGER ] |
Une fois que l'arbiter a compilé et vérifié la configuration de supervision, et l'architecture des démon, il passe dans la phase d'envoi. Pour cela, il va faire une première vérification de quels démons sont vivants/morts avant de commencer. Ces logs commencent par le bloc INITIAL DAEMONS CHECK.
Si un démon est vivant, il donnera une ligne suivante:
[YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ scheduler-secondary ] [ INITIAL DAEMONS CHECK ] The daemon is ALIVE after initial daemon check, connection was OK |
Si un démon est mort (n'a pas répondu pendant la période définie) alors on aura:
[YYYY-MM-DD HH:MM:SS] ERROR : [ arbiter-master ] [ scheduler-spare-bis ] [ INITIAL DAEMONS CHECK ] The daemon is set to DEAD after initial daemon check, port is closed: "Connexion error to http://localhost:10768/ : Failed connect to localhost:10768; Connection refused" |
Cette phase se termine par la ligne de log suivante:
[YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ INITIAL DAEMONS CHECK ] The initial daemons check did finish in: 0.233s |
Avant de procéder à la phase d'envoi, l'arbiter va lister les différents démons présents dans l'architecture avec comme information:
Ceci donne par exemple:
[YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] ==== Daemons listing of Realm All ==== [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] +-------------+----------------------+-------+--------------------------+-------------------+----------------+---------------------------+ [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] | Type | Name | Ping | Spare | Manage sub realms | Used in realms | Link to schedulers/shards | [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] +-------------+----------------------+-------+--------------------------+-------------------+----------------+---------------------------+ [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] | Broker | broker-master | ALIVE | spare=>broker-spare | True | All | No schedulers | [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] +-------------+----------------------+-------+--------------------------+-------------------+----------------+---------------------------+ [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] | Broker | broker-spare-useless | ALIVE | UNUSED SPARE | True | All | No schedulers | [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] +-------------+----------------------+-------+--------------------------+-------------------+----------------+---------------------------+ [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] | Broker | broker-spare | ALIVE | spare for=>broker-master | True | All | No schedulers | [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] +-------------+----------------------+-------+--------------------------+-------------------+----------------+---------------------------+ [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] | Broker | broker-secondary | ALIVE | | True | All | No schedulers | [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] +-------------+----------------------+-------+--------------------------+-------------------+----------------+---------------------------+ [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] | Poller | poller-master | ALIVE | | False | All | No schedulers | [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] +-------------+----------------------+-------+--------------------------+-------------------+----------------+---------------------------+ [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] | Reactionner | reactionner-master | ALIVE | | False | All | No schedulers | [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] +-------------+----------------------+-------+--------------------------+-------------------+----------------+---------------------------+ [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] | Receiver | receiver-master | ALIVE | | True | All | No schedulers | [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] +-------------+----------------------+-------+--------------------------+-------------------+----------------+---------------------------+ [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] +---------------+---------------------+-------+-------+---------------+ [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] | State | Name | Ping | Spare | Managed shard | [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] +---------------+---------------------+-------+-------+---------------+ [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] | WAITING SPARE | scheduler-spare | ALIVE | SPARE | no shard | [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] +---------------+---------------------+-------+-------+---------------+ [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] | WAITING SPARE | scheduler-spare-bis | ALIVE | SPARE | no shard | [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] +---------------+---------------------+-------+-------+---------------+ |
Les logs suivants permet de suivre le chargement de la configuration de supervision entre l'Arbiter les schedulers jusqu'aux interfaces : webui / livestatus / livedata
Il existe 2 types de configuration_incarnation (représentation de la configuration) :
[YYYY-MM-DD HH:MM:SS] INFO : [arbiter] Begin to dispatch configurations [configuration: uuid=configuration_uuid date=creation_date author=arbiter_name ] to satellites |
[YYYY-MM-DD HH:MM:SS] INFO : [arbiter] Begin to dispatch configurations [configuration: uuid=a3a87842977a4255983db11cb46c2d87 date=15-05-2020 10:00:07 author=arbiter-master1] to satellites |
Quand l'Arbiter commence à envoyer les configurations vers les Schedulers il va donner:
[YYYY-MM-DD HH:MM:SS] INFO : [arbiter-master ] [DISPATCH][All] Dispatching 1 shards (total in realm=1) to schedulers [YYYY-MM-DD HH:MM:SS] INFO : [arbiter-master ] [DISPATCH][All] 1 Shards will be dispatched to 1 schedulers in this order: scheduler-master (realm=All, spare=False) [YYYY-MM-DD HH:MM:SS] INFO : [arbiter-master ] [DISPATCH][All] 1 schedulers are alive but will be used only when non spare schedulers will be DEAD: scheduler-sapre (realm=All, spare=True) |
Avant et après l'envoi, l'arbiter va afficher un état des schedulers dans le royaume, afin de voir quels schedulers gèrent quel shard.
[YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] AFTER DISPATCH => +---------------+---------------------+-------+-------+---------------+ [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] AFTER DISPATCH => | State | Name | Ping | Spare | Managed shard | [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] AFTER DISPATCH => +---------------+---------------------+-------+-------+---------------+ [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] AFTER DISPATCH => | WORKING | scheduler-master | ALIVE | | 256 | [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] AFTER DISPATCH => +---------------+---------------------+-------+-------+---------------+ [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] AFTER DISPATCH => | WORKING | scheduler-secondary | ALIVE | | 257 | [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] AFTER DISPATCH => +---------------+---------------------+-------+-------+---------------+ [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] AFTER DISPATCH => | DEAD | scheduler-spare-bis | DEAD | SPARE | no shard | [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] AFTER DISPATCH => +---------------+---------------------+-------+-------+---------------+ [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] AFTER DISPATCH => | WAITING SPARE | scheduler-spare | ALIVE | SPARE | no shard | [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] AFTER DISPATCH => +---------------+---------------------+-------+-------+---------------+ |
Les différents états sont:
La configuration d'un Scheduler se décompose en plusieurs informations:
Quand l'Arbiter lui envoie ces informations, on a ceci dans les logs:
[YYYY-MM-DD HH:MM:SS] INFO : [arbiter-master ] [DISPATCH][All] [scheduler-master] SENT TIME Shard [256] sent time is 0.52s (size=0.224MB speed=0.434MB/s) [YYYY-MM-DD HH:MM:SS] INFO : [arbiter-master ] [DISPATCH][All] [scheduler-master] SHARD SENT TO SCHEDULER Dispatch OK of shard [256/[configuration_uuid=add3f68515f34b9e87ccbf5b0cc09cd7, arbiter=arbiter-master, date=16-09-2020 11:17:43]] |
Ici l'Arbiter a mis 0.52s pour envoyer un shard numéro 256 qui fait 224Ko au scheduler scheduler-master.
Une fois qu'un Scheduler s'est vu assigner un shard, l'Arbiter va prévenir les autres démons (broker, Poller, Reactionner et Receiver) qu'il faut aller s'y connecter. De même si un Scheduler tombe et qu'il faut alors que ces mêmes démons passent sur le Scheduler spare.
L'Arbiter va afficher ces lignes de logs:
La première fois qu'il va contacter un démon, il va le mettre à jour en terme de configuration d'architecture (numéro de configuration, spare/non spare, liste de modules, etc);
[YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ reactionner-master ] [ DISPATCH TO REACTIONNER ] SATELLITE SENT OK The daemon is now update to the new configuration incarnation ([configuration_uuid=060e70dfeb204a61be70f75c0622e118, arbiter=arbiter-master, date=20-10-2020 15:37:27]) |
Et ensuite pour chaque shard assignée, on aura:
[YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ reactionner-master ] [ DISPATCH TO REACTIONNER ] SATELLITE SENT OK Dispatch OK of shard assignation [256 => scheduler-master ] to the reactionner |
Ici le Reactionner reactionner-master s'est vu assigné le lien "shard 256"→ scheduler-master.
De même que pour le scheduler, l'arbiter va afficher un tableau avant et après mise à jour de l'architecture sur les démons, montrant vers qui pointent les différents démon du royaume:
[YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] AFTER DISPATCH => +-------------+----------------------+-------+--------------------------+-------------------+----------------+-----------------------------------------------+ [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] AFTER DISPATCH => | Type | Name | Ping | Spare | Manage sub realms | Used in realms | Link to schedulers/shards | [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] AFTER DISPATCH => +-------------+----------------------+-------+--------------------------+-------------------+----------------+-----------------------------------------------+ [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] AFTER DISPATCH => | Broker | broker-master | ALIVE | spare=>broker-spare | True | All | scheduler-master/256, scheduler-secondary/257 | [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] AFTER DISPATCH => +-------------+----------------------+-------+--------------------------+-------------------+----------------+-----------------------------------------------+ [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] AFTER DISPATCH => | Broker | broker-spare-useless | ALIVE | UNUSED SPARE | True | All | No schedulers | [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] AFTER DISPATCH => +-------------+----------------------+-------+--------------------------+-------------------+----------------+-----------------------------------------------+ [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] AFTER DISPATCH => | Broker | broker-spare | ALIVE | spare for=>broker-master | True | All | No schedulers | [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] AFTER DISPATCH => +-------------+----------------------+-------+--------------------------+-------------------+----------------+-----------------------------------------------+ [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] AFTER DISPATCH => | Broker | broker-secondary | ALIVE | | True | All | scheduler-master/256, scheduler-secondary/257 | [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] AFTER DISPATCH => +-------------+----------------------+-------+--------------------------+-------------------+----------------+-----------------------------------------------+ [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] AFTER DISPATCH => | Poller | poller-master | ALIVE | | False | All | scheduler-master/256, scheduler-secondary/257 | [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] AFTER DISPATCH => +-------------+----------------------+-------+--------------------------+-------------------+----------------+-----------------------------------------------+ [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] AFTER DISPATCH => | Reactionner | reactionner-master | ALIVE | | False | All | scheduler-master/256, scheduler-secondary/257 | [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] AFTER DISPATCH => +-------------+----------------------+-------+--------------------------+-------------------+----------------+-----------------------------------------------+ [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] AFTER DISPATCH => | Receiver | receiver-master | ALIVE | | True | All | scheduler-master/256, scheduler-secondary/257 | [YYYY-MM-DD HH:MM:SS] INFO : [ arbiter-master ] [ REALM: All ] [ DISPATCH ] AFTER DISPATCH => +-------------+----------------------+-------+--------------------------+-------------------+----------------+-----------------------------------------------+ |
Quand l'Arbiter envoie l'inventaire à un Broker ou un Receiver, on a la ligne suivante:
[YYYY-MM-DD HH:MM:SS] INFO : [arbiter-master ] [INVENTORY ] [PUSH ] [realm=All] Inventory OK [ broker broker-spare ] [hash=c036910d4f546611e9af4b5303e4ab88b9364492] [1 hosts/clusters] |
Avec le royaume de l'inventaire et combien d'hôtes/clusters sont compris dedans.
Les démons ont une phase de chargement des modules qui est décrite dans la page HIDDEN - Logs de chargement des modules