Les fichiers de log du broker sont situés dans le dossier /var/log/shinken/. Pour plus d'informations, consultez la page Fichiers Logs.
[YYYY-MM-DD HH:MM:SS] INFO : [broker] [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 : [broker] Using the local log file '/var/log/shinken/brokerd.log' [YYYY-MM-DD HH:MM:SS] INFO : [broker] Printing stored debug messages prior to our daemonization [YYYY-MM-DD HH:MM:SS] INFO: [broker] [ SYSTEM ] System resource number of open files is set to (soft:131070 / hard:131070 ) (set at system max values) [YYYY-MM-DD HH:MM:SS] INFO: [broker] [ SYSTEM ] System resource number of process/threads is set to (soft:unlimited / hard:unlimited ) (set at system max values) [YYYY-MM-DD HH:MM:SS] INFO : [broker] Starting HTTP daemon [YYYY-MM-DD HH:MM:SS] INFO: [broker] |--------------------------------------------------------------------------------------------------| [YYYY-MM-DD HH:MM:SS] INFO: [broker] broker is starting [YYYY-MM-DD HH:MM:SS] INFO: [broker] |--------------------------------------------------------------------------------------------------| |
Avec affichage:
Quand on reçoit le premier envoi de configuration d'architecture (avec nos modules, spare/non spare, les premiers schedulers auquels se connecter, etc) on va avoir la ligne suivante:
[YYYY-MM-DD HH:MM:SS] INFO : [ broker-master ] [ CONFIGURATION ] ----- Loading the new configuration from the arbiter |
Lorsque l'on va reçevoir de nouveaux envois (nouvel arbiter, ou bien simplement le reste des schedulers par exemple) on va avoir:
[YYYY-MM-DD HH:MM:SS] INFO : [ broker-master ] [ CONFIGURATION ] ----- Loading a configuration update from the arbiter |
Dans le cas où un arbiter a redémarré, on aura la ligne suivante:
[YYYY-MM-DD HH:MM:SS] INFO : [ broker-master ] [ CONFIGURATION ] The arbiter send us a new configuration: [configuration_uuid=060e70dfeb204a61be70f75c0622e118, arbiter=arbiter-master, date=20-10-2020 15:37:27] |
Dans le cas où un master reçoit le nom de son démon spare, on aura:
[YYYY-MM-DD HH:MM:SS] INFO : [ broker-master ] [ CONFIGURATION ] [ MASTER ] My spare daemon is now "broker-spare" |
Dans le cas où un spare reçoit le nom de son démon master, on aura:
[YYYY-MM-DD HH:MM:SS] INFO : [ broker-spare ] [ CONFIGURATION ] [ SPARE ] I am now the spare of the master daemon "broker-master" |
Quand un démon reçoit une liste de démons (pour se connecter par exemple), on aura un affichage du genre:
[YYYY-MM-DD HH:MM:SS] INFO : [ broker-master ] [ CONFIGURATION ] The arbiter asked us to remove daemons: [YYYY-MM-DD HH:MM:SS] INFO : [ broker-master ] [ CONFIGURATION ] - REMOVED scheduler : [name=scheduler-master ] [shard_id= 256] [uri=http://localhost:7768/] [YYYY-MM-DD HH:MM:SS] INFO : [ broker-master ] [ CONFIGURATION ] The arbiter send us new daemons: [YYYY-MM-DD HH:MM:SS] INFO : [ broker-master ] [ CONFIGURATION ] + ADDED scheduler : [name=scheduler-spare ] [shard_id= 256] [uri=http://localhost:8768/] |
Ici par exemple:
Quand un démon a un paramètre satellitemap il va changer l’adresse d'un autre démon par une autre (pour par exemple gérer le cas où il tourne dans un VLan avec un plan d’adressage particulier). Cette application se voit via le log suivant:
[YYYY-MM-DD HH:MM:SS] INFO : [ broker-master ] [ CONFIGURATION ] [ SATELLITEMAP ] Replacing the daemon scheduler-secondary to address:port from localhost:8768 => 192.168.1.124:8768 as defined in our daemon .cfg file (satellitemap property) |
Ici le scheduler scheduler-secondary est passé de l'addresse localhost:8768 à 192.168.1.124:8768.
[YYYY-MM-DD HH:MM:SS] INFO: [broker-master ] [BROKER TIME ] [ === Loop start === ] ===-===-===-===-===-===-===-===-===-===-===-===-=== |
L'arbiter envoie ses broks vers le broker:
[YYYY-MM-DD HH:MM:SS] INFO : [broker-master ] [RECEIVE BROKS] [ arbiter ] [PERF] [ 0.000 ]s - Add 1 broks into INTERNAL queue (new size=18) and the EXTERNAL queue (new size=18) [YYYY-MM-DD HH:MM:SS] INFO : [broker-master ] [RECEIVE BROKS] [ arbiter ] ----- 1 composed of: architecture_export_map=1 |
Le broker récupère les broks depuis un scheduler:
[YYYY-MM-DD HH:MM:SS] INFO : [broker-master ] [GET BROKS ] [ scheduler-master ] [PERF] [ 0.007 ]s - Add 16 broks into INTERNAL queue (new size=16) and the EXTERNAL queue (new size=16) [YYYY-MM-DD HH:MM:SS] INFO : [broker-master ] [GET BROKS ] [ scheduler-master ] ----- 16 composed of: host_check_result=10, host_next_schedule=6 |
Avec pour les deux cas:
[YYYY-MM-DD HH:MM:SS] INFO: [broker-master ] [MANAGE BROKS ] [ EXTERNAL MODULE ] => Number of "Broks Sets" not eaten in MODULE queues (WebUI5-ha): 11 (WebUI3-ha): 11 (WebUI7-ha): 11 (WebUI4-ha): 11 (WebUI8-ha): 11 (WebUI1-ha): 11 (WebUI2-ha): 11 (WebUI6-ha): 11 |
À chaque tour de boucle, le broker envoie 1 ensemble de broks à chaque WebUI. 1 ensemble est composé d'autant de broks qu'il a reçus dans le tour.
Si le nombre est plus gros que 1, c'est que les WebUIs mettent du temps à digérer les ensembles.
[YYYY-MM-DD HH:MM:SS] INFO: [broker-master ] [MANAGE BROKS ] [ PREPARING BROKS ] [PERF] [ 0.001 ]s, preparing broks lists for INTERNAL and EXTERNAL modules |
Chaque tour de boucle le broker préparer les listes d'envoi avec les nouveaux broks reçus.
[YYYY-MM-DD HH:MM:SS] INFO: [broker-master ] [MANAGE BROKS ] [ EXTERNAL MODULE ] - PUSHED [ 0.331s, limit=5.000s ]s, EXTERNAL queue evolution: [ 424 broks => 0 broks remaining ] [ 424 broks managed ] [ Push average speed = 1928 broks/s] |
Le broker a envoyé 424 broks en 0.331s, et avait laissé une limite de temps de 5s pour cet envoi (calcul basé sur la vitesse moyenne des derniers envois, ici 1928broks/s, et une marge de sécurité).
À noter: si le nombre de broks remaining est différent de zéro, ceci signifie que le broker a reçu des broks pendant la phase d'envoi, et qu'il les enverra le prochain tour.
Ces logs ne seront affichés que si le broker a des modules internes.
[YYYY-MM-DD HH:MM:SS] INFO: [broker-master ] [MANAGE BROKS ] [ INTERNAL MODULE ] - EXECUTED [ 0.239 ]s, INTERNAL queue evolution: [ 424 broks => 238 broks remaining ] [ 424 broks managed ] [YYYY-MM-DD HH:MM:SS] INFO: [broker-master ] ----- Details of INTERNAL modules execution time: (Graphite-Perfdata=0.071s), (Simple-log=0.010s), (sla=0.086s) |
Le broker a fourni 424 broks aux modules internes (ceux qui n'ont pas leur propre processus), en 0.239s au total. Ici le nombre de broks remaining est différent de zéro, ceci signifie que le broker a reçu des broks pendant la phase d'envoi, et qu'il les enverra le prochain tour.
Il fournit ensuite le détail de temps de chaque module interne.
[YYYY-MM-DD HH:MM:SS] INFO: [broker-master ] [MODULES ] [ EXTERNAL COMMANDS ] [PERF] [ 0.001 ]s Did read 0 external commands (like recheck, set acknowledge, etc) from modules |
Le broker récupère les commandes (comme une création de downtime, etc.) et le temps que ceci lui a demandé.
Chaque fin de tour, un appel est lancé vers les modules internes afin qu'ils puissent faire des actions spécifiques (par exemple vérifier un cache, vider leurs éléments pas encore envoyés, etc.)
[YYYY-MM-DD HH:MM:SS] INFO: [broker-master ] [MODULES ] [ TIME IN BROKER ] [PERF] [ 0.025 ]s All modules "ticks" are done. Execution times by modules: (Graphite-Perfdata=0.001s), (sla=0.024s) |
Avec:
[YYYY-MM-DD HH:MM:SS] INFO: [broker-master ] [BROKER TIME ] [ === Loop stop === ] [PERF] [ 0.397 ]s |
Le broker donne le temps qu'il a passé sur ce tour de boucle. Ce dernier doit rester sous la seconde sauf pendant la phase de réception d'une nouvelle configuration où il peut dépasser ce temps.
Si le serveur qui héberge le daemon 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 daemon. Il faut dans la mesure du possible isoler le volume des disques sur un disque moins chargé pour ne pas ralentir le daemon.
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 ] |
Les logs suivants permettent de suivre le chargement de la configuration de supervision entre l'arbiter les schedulers jusqu'aux interfaces : webui / livestatus / livedata
Il existe 2 types d'identifiants de configuration (représentation de la configuration)
[2020-05-15 16:29:49] INFO : [WebUI3] [ CONFIGURATION ] [ NEW ] [ REGENERATOR ] configuration part retrieved: [ configuration_part_id=configuration_part_id, scheduler=scheduler_name configuration_uuid=configuration_uuid, arbiter=arbiter_name date=creation_date ]
[YYYY-MM-DD HH:MM:SS] INFO : [WebUI3] [ CONFIGURATION ] [ NEW ] [ REGENERATOR ] configuration part retrieved : [ configuration_part_id=8, scheduler=scheduler-master configuration_uuid=fe5982b29bfb48cdadb35523799f7cec, arbiter=arbiter-master1 date=15-05-2020 16:13:40 ] |
Dans le cas où la configuration d'un Scheduler est déjà gérée par un regenerator (cas qui arrive si par exemple un module crash) on redemande les broks initiaux. Tous les modules vont recevoir la nouvelle configuration, mais ceux qui la gère déjà ne vont pas la recharger et vont loguer :
[YYYY-MM-DD HH:MM:SS] INFO : [WebUI3] [ CONFIGURATION ] [ NEW ] [ REGENERATOR ] No need to reload the configuration part because I already handle it [ configuration_part_id=configuration_part_id, scheduler=scheduler_name configuration_uuid=configuration_uuid, arbiter=arbiter_name date=creation_date ] |
[YYYY-MM-DD HH:MM:SS] WARNING: [WebUI3] [ CONFIGURATION ] [ NEW ] [ REGENERATOR ] No need to reload the configuration part because I already handle it [ configuration_part_id=8, scheduler=scheduler-master configuration_uuid=fe5982b29bfb48cdadb35523799f7cec, arbiter=arbiter-master1 date=15-05-2020 16:13:40 ] |
Les démons ont une phase de chargement des modules qui est décrite dans la page HIDDEN - Logs de chargement des modules