Vous êtes ici:

Menu


Stacks Image 34274
Le gestionnaire de tâches Centreon-Gorgone assure plusieurs rôles important :
  • Il assure la liaison entre le Central est les différents collecteurs avec des connexions de type ZeroMQ.
  • Il pousse les configurations dans les collecteurs avec le même type de connexion.
  • Il permet l'utilisation des API V2 avec le protocole HTTP.
  • Il permet de réaliser des tâches de type cron.
  • il gère les actions de l'IHM.
Cette liste n'est pas exhaustive, elle s'enrichira au fur et à mesure de mes avancées.

Les bases

Nous découvrirons les fonctions de bases et son fonctionnement. Nous verrons aussi des astuces de débogage et de vérifications de logs.

Fonctionnement de Centreon-Gorgone sur un Central.

Le gestionnaire de tâches Centreon-Gorgone utilise un démon appelé gorgoned. Il a aussi un utilisateur dédié centreon-gorgone. Le démon utilise des fichiers de configuration au format yaml. Ci-dessous, le schéma de la configuration de Centreon-Gorgone.
Stacks Image 701346
Synoptique de la configuration
Au démarrage, le démon va lire le premier fichier config.yaml qui indique le dossier ou se trouve les fichiers de configuration de Gorgone. Ce fichier ne devra pas être modifié. Dans le dossier config.d, vous devriez avoir au moins deux fichiers 30-centreon.yaml et 40-gorgoned.yaml. Les fichiers 31-centreon-api.yaml et 41-service-discovery.yaml seront nécessaire pour le module autodiscovery. Et enfin le dossier /etc/centreon-gorgone/cron.d contiendra les configurations cron exécutées par Centreon-Gorgone.

Vérification du fonctionnement

Pour vérifier le bon fonctionnement, lancez la commande suivante :
systemctl status gorgoned
Stacks Image 34361
Processus gorgoned
La commande liste tous les modules chargés en fonction des fichiers de configuration. Voici les premières informations du fichier de log /var/log/centreon-gorgone/gorgoned.log.
Initialisation clé privé/publique
2021-01-14 14:03:39 - INFO - [core] Initialize server keys
2021-01-14 14:03:39 - INFO - [core] Private key file '/var/lib/centreon-gorgone/.keys/rsakey.priv.pem' loaded
2021-01-14 14:03:39 - INFO - [core] Public key file '/var/lib/centreon-gorgone/.keys/rsakey.pub.pem' loaded
Chargement des modules
2021-01-14 14:03:39 - INFO - [core] Module 'httpserver' is loading
2021-01-14 14:03:39 - INFO - [core] Module 'httpserver' is loaded
2021-01-14 14:03:39 - INFO - [core] Module 'action' is loading
2021-01-14 14:03:39 - INFO - [core] Module 'action' is loaded
2021-01-14 14:03:39 - INFO - [core] Module 'cron' is loading
2021-01-14 14:03:39 - INFO - [core] Module 'cron' is loaded
2021-01-14 14:03:39 - INFO - [core] Module 'nodes' is loading
2021-01-14 14:03:39 - INFO - [core] Module 'nodes' is loaded
2021-01-14 14:03:39 - INFO - [core] Module 'proxy' is loading
2021-01-14 14:03:39 - INFO - [core] Module 'proxy' is loaded
2021-01-14 14:03:39 - INFO - [core] Module 'legacycmd' is loading
2021-01-14 14:03:39 - INFO - [core] Module 'legacycmd' is loaded
2021-01-14 14:03:39 - INFO - [core] Module 'engine' is loading
2021-01-14 14:03:39 - INFO - [core] Module 'engine' is loaded
2021-01-14 14:03:39 - INFO - [core] Module 'statistics' is loading
2021-01-14 14:03:39 - INFO - [core] Module 'statistics' is loaded
2021-01-14 14:03:39 - INFO - [core] Module 'autodiscovery' is loading
2021-01-14 14:03:39 - INFO - [core] Module 'autodiscovery' is loaded
2021-01-14 14:03:39 - INFO - [core] Module 'dbcleaner' is loading
2021-01-14 14:03:39 - INFO - [core] Module 'dbcleaner' is loaded
Le démon est opérationnel
2021-01-14 14:03:39 - INFO - [core] Gorgoned started
2021-01-14 14:03:39 - INFO - [core] PID 1836
2021-01-14 14:03:39 - INFO - [nodes] Create module 'nodes' process
2021-01-14 14:03:39 - INFO - [dbcleaner] Create module 'dbcleaner' process
fonctionnement normal, l'id n'est pas encore connu par le module
2021-01-14 14:03:39 - ERROR - [proxy] Cannot create child, need a core id
2021-01-14 14:03:39 - ERROR - [proxy] Cannot create child, need a core id
2021-01-14 14:03:39 - ERROR - [proxy] Cannot create child, need a core id
2021-01-14 14:03:39 - ERROR - [proxy] Cannot create child, need a core id
2021-01-14 14:03:39 - ERROR - [proxy] Cannot create child, need a core id
les process des modules sont actifs
2021-01-14 14:03:39 - INFO - [autodiscovery] Create module 'autodiscovery' process
2021-01-14 14:03:39 - INFO - [cron] Create module 'cron' process
2021-01-14 14:03:39 - INFO - [engine] Create module 'engine' process
2021-01-14 14:03:39 - INFO - [statistics] Create module 'statistics' process
2021-01-14 14:03:39 - INFO - [action] Create module 'action' process
2021-01-14 14:03:40 - INFO - [httpserver] Create module 'httpserver' process
2021-01-14 14:03:40 - INFO - [legacycmd] Create module 'legacycmd' process
2021-01-14 14:03:40 - INFO - [core] Server accepting clients
Erreur car le module payant discovery n'est pas présent
2021-01-14 14:03:40 - ERROR - [autodiscovery] -class- host discovery - cannot get platform versions - Login error [code: '401'] [message: 'Unauthorized']
2021-01-14 14:03:40 - INFO - [proxy] Create module 'proxy' child process for pool id '1'
2021-01-14 14:03:40 - INFO - [proxy] Create module 'proxy' child process for pool id '2'
2021-01-14 14:03:40 - INFO - [proxy] Create module 'proxy' child process for pool id '3'
2021-01-14 14:03:40 - INFO - [proxy] Create module 'proxy' child process for pool id '4'
2021-01-14 14:03:40 - INFO - [proxy] Create module 'proxy' child process for pool id '5'
2021-01-14 14:03:40 - INFO - [core] Setcoreid changed 1
Les "cron" sont créés
2021-01-14 14:03:40 - INFO - [cron] Adding cron definition 'broker_stats'
2021-01-14 14:03:40 - INFO - [cron] Adding cron definition 'engine_stats'
Ce message (première ligne) n'aura de sens que pour les architectures distribuées
2021-01-14 14:04:00 - INFO - [proxy] Send pings
2021-01-14 14:04:40 - ERROR - [autodiscovery] -class- host discovery - cannot get platform versions - Login error [code: '401'] [message: 'Unauthorized']
Lancement des job de statistiques
2021-01-14 14:05:00 - INFO - [cron] Launching job 'broker_stats'
2021-01-14 14:05:00 - INFO - [cron] Launching job 'engine_stats'
2021-01-14 14:05:00 - INFO - [statistics] Collecting Engine statistics from target '1'
2021-01-14 14:05:20 - INFO - [proxy] Send pings
2021-01-14 14:05:40 - ERROR - [autodiscovery] -class- host discovery - cannot get platform versions - Login error [code: '401'] [message: 'Unauthorized']
2021-01-14 14:06:40 - ERROR - [autodiscovery] -class- host discovery - cannot get platform versions - Login error [code: '401'] [message: 'Unauthorized']
2021-01-14 14:06:40 - INFO - [proxy] Send pings
Stacks Image 701398
Problème de configuration
Si la commande systemctl status gorgoned retourne ceci, il faudra vérifier la configuration.
systemctl status gorgoned
● gorgoned.service - Centreon Gorgone
Loaded: loaded (/etc/systemd/system/gorgoned.service; enabled; vendor preset: disabled)
Active: active (running) since jeu. 2021-01-14 13:58:46 CET; 4s ago
Main PID: 1741 (perl)
CGroup: /system.slice/gorgoned.service
└─1741 /usr/bin/perl /usr/bin/gorgoned --config=/etc/centreon-gorgone/config.yaml --logfile=/var/log/centreon-gorgone/gorgoned.log --severity=info
De plus, il existe une base de données SQLite dédié au démon gorgoned. Cette base se trouve dans le dossier /var/lib/centreon-gorgone et se nomme history.sdb. Elle conserve les log dans la table gorgone_history.
[root@centreon2010 ~]# sqlite3 /var/lib/centreon-gorgone/history.sdb
SQLite version 3.7.17 2013-05-20 00:56:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>select * from gorgone_history;
…
.exit
Stacks Image 701431
Astuce pour une solution open-source
Si vous n'utilisez pas le module payant discovery, je vous conseille de désactiver cette fonctionnalité en renommant les deux fichiers de configuration
mv 31-centreon-api.yaml 31-centreon-api.old
mv 41-autodiscovery.yaml 41-autodiscovery.old

Redémarrez le service
systemctl restart gorgoned

Mode debug

Pour activer le mode Debug afin de rechercher l'explication d'un dysfonctionnement, le plus simple est d'utiliser la ligne de commande. Modifiez la configuration du démon.
version CentOS
sed -i -e "s/info/debug/g" /etc/sysconfig/gorgoned
version Debian
sed -i -e "s/info/debug/g" /etc/default/gorgoned
Relancez le processus
systemctl restart gorgoned
Pour visualiser en temps réel les logs du démon gorgoned, ouvrez un second terminal et lancez la commande suivante (tail -f pour Debian) :
tailf /var/log/centreon-gorgone/gorgoned.log
Vous obtiendrez plus d'informations :
2021-01-14 17:00:01 - DEBUG - [statistics] Writing in file '/var/lib/centreon/nagios-perf//perfmon-1/nagios_cmd_buffer.rrd'
2021-01-14 17:00:01 - DEBUG - [listener] trigger event '0b9849c7861db1aacad624e00e7fea960bd1942cebe9906262af5a4db9ad1d76b3f6e177abf1b1a5398304c9963abac5b00bff4103a0b5d8cf536c6f13f1a1a1-1'
2021-01-14 17:00:01 - DEBUG - [core] Message received - [STATISTICSLISTENER] [0b9849c7861db1aacad624e00e7fea960bd1942cebe9906262af5a4db9ad1d76b3f6e177abf1b1a5398304c9963abac5b00bff4103a0b5d8cf536c6f13f1a1a1-1] [] { "code": 2, "data": {"message":"commands processing has finished successfully"} }
2021-01-14 17:00:01 - DEBUG - [statistics] Writing in file '/var/lib/centreon/nagios-perf//perfmon-1/nagios_active_service_latency.rrd'
2021-01-14 17:00:01 - DEBUG - [statistics] Writing in file '/var/lib/centreon/nagios-perf//perfmon-1/nagios_active_service_execution.rrd'
2021-01-14 17:00:01 - DEBUG - [statistics] Writing in file '/var/lib/centreon/nagios-perf//perfmon-1/nagios_active_service_last.rrd'
2021-01-14 17:00:01 - DEBUG - [statistics] Writing in file '/var/lib/centreon/nagios-perf//perfmon-1/nagios_services_states.rrd'
2021-01-14 17:00:01 - DEBUG - [statistics] Writing in file '/var/lib/centreon/nagios-perf//perfmon-1/nagios_active_host_latency.rrd'
2021-01-14 17:00:01 - DEBUG - [statistics] Writing in file '/var/lib/centreon/nagios-perf//perfmon-1/nagios_active_host_execution.rrd'
2021-01-14 17:00:01 - DEBUG - [statistics] Writing in file '/var/lib/centreon/nagios-perf//perfmon-1/nagios_active_host_last.rrd'
2021-01-14 17:00:01 - DEBUG - [statistics] Writing in file '/var/lib/centreon/nagios-perf//perfmon-1/nagios_hosts_states.rrd'
2021-01-14 17:00:01 - DEBUG - [statistics] Event: [STATISTICSLISTENER] [0b9849c7861db1aacad624e00e7fea960bd1942cebe9906262af5a4db9ad1d76b3f6e177abf1b1a5398304c9963abac5b00bff4103a0b5d8cf536c6f13f1a1a1-1] [] { "code": 2, "data": {"message":"commands processing has finished successfully"} }
Dans cet exemple, on visualise le mécanisme des statistiques du moteur (notez les reliquats historiques de Nagios 😀)
2021-01-14 17:18:11 - DEBUG - [legacycmd] Processing file '/var/lib/centreon/centcore//external-cmd-1610641090.8547.cmd_read'
2021-01-14 17:18:11 - INFO - [legacycmd] Handling command 'EXTERNALCMD', Target: '1', Parameters: '[1610641090] SCHEDULE_FORCED_SVC_CHECK;central;Ping;1610641090'
2021-01-14 17:18:11 - DEBUG - [core] Message received - [ENGINECOMMAND] [15edaba7f7bb5bf19aeee16bbd7ead19633b1029e0f36f0679a273affddb7cea7811055ea5b50cf87809d7f4e056bab3efbb50ae5419de5894fb56666b8c0512] [1] {"content":{"command_file":"/var/lib/centreon-engine/rw/centengine.cmd","commands":["[1610641090] SCHEDULE_FORCED_SVC_CHECK;central;Ping;1610641090"]}}
2021-01-14 17:18:11 - DEBUG - [engine] Event: [ENGINECOMMAND] [15edaba7f7bb5bf19aeee16bbd7ead19633b1029e0f36f0679a273affddb7cea7811055ea5b50cf87809d7f4e056bab3efbb50ae5419de5894fb56666b8c0512] [] {"content":{"command_file":"/var/lib/centreon-engine/rw/centengine.cmd","commands":["[1610641090] SCHEDULE_FORCED_SVC_CHECK;central;Ping;1610641090"]}}
2021-01-14 17:18:11 - DEBUG - [engine] Create sub-process
2021-01-14 17:18:11 - DEBUG - [legacycmd] Event: [ACK] [15edaba7f7bb5bf19aeee16bbd7ead19633b1029e0f36f0679a273affddb7cea7811055ea5b50cf87809d7f4e056bab3efbb50ae5419de5894fb56666b8c0512] {"data":null,"code":0}
2021-01-14 17:18:11 - INFO - [engine] Processing external command '[1610641090] SCHEDULE_FORCED_SVC_CHECK;central;Ping;1610641090'
2021-01-14 17:18:11 - DEBUG - [core] Message received - [PUTLOG] [15edaba7f7bb5bf19aeee16bbd7ead19633b1029e0f36f0679a273affddb7cea7811055ea5b50cf87809d7f4e056bab3efbb50ae5419de5894fb56666b8c0512] [] {"etime":1610641091,"data":{"request_content":{"command_file":"/var/lib/centreon-engine/rw/centengine.cmd","commands":["[1610641090] SCHEDULE_FORCED_SVC_CHECK;central;Ping;1610641090"]},"message":"commands processing has started"},"instant":null,"token":"15edaba7f7bb5bf19aeee16bbd7ead19633b1029e0f36f0679a273affddb7cea7811055ea5b50cf87809d7f4e056bab3efbb50ae5419de5894fb56666b8c0512","code":0}
2021-01-14 17:18:11 - DEBUG - [core] Received SIGCLD signal (pid: 14848)
2021-01-14 17:18:11 - DEBUG - [core] Message received - [PUTLOG] [15edaba7f7bb5bf19aeee16bbd7ead19633b1029e0f36f0679a273affddb7cea7811055ea5b50cf87809d7f4e056bab3efbb50ae5419de5894fb56666b8c0512] [] {"etime":1610641091,"data":{"command":"[1610641090] SCHEDULE_FORCED_SVC_CHECK;central;Ping;1610641090","message":"command has been submitted"},"instant":null,"token":"15edaba7f7bb5bf19aeee16bbd7ead19633b1029e0f36f0679a273affddb7cea7811055ea5b50cf87809d7f4e056bab3efbb50ae5419de5894fb56666b8c0512","code":2}
2021-01-14 17:18:11 - DEBUG - [core] Message received - [PUTLOG] [15edaba7f7bb5bf19aeee16bbd7ead19633b1029e0f36f0679a273affddb7cea7811055ea5b50cf87809d7f4e056bab3efbb50ae5419de5894fb56666b8c0512] [] {"etime":1610641091,"data":{"message":"commands processing has finished"},"instant":null,"token":"15edaba7f7bb5bf19aeee16bbd7ead19633b1029e0f36f0679a273affddb7cea7811055ea5b50cf87809d7f4e056bab3efbb50ae5419de5894fb56666b8c0512","code":2}
Autre exemple, le fonctionnement d'une action de vérification (check) sur un service. Le serveur apache écrit la commande dans le fichier /var/lib/centreon/centcore//external-cmd. Celui-ci est lu par le module legacycmd et va l'envoyer dans le fichier /var/lib/centreon-engine/rw/centengine.cmd. Le moteur du Central interprétera cette commande et lancera un contrôle manuel du service. Voici le fichier de log du moteur correspondant :
[1610641092] [1328] EXTERNAL COMMAND: SCHEDULE_FORCED_SVC_CHECK;central;Ping;1610641090
Pour revenir au mode normal, effectuez ces commandes :
version CentOS
sed -i -e "s/debug/info/g" /etc/sysconfig/gorgoned
version Debian
sed -i -e "s/debug/info/g" /etc/default/gorgoned
Relancez le processus
systemctl restart gorgoned

Exemples de fonctionnement pour un Central

Centreon-Gorgone doit fonctionner pour pouvoir exporter la configuration (mécanisme sudo pour le rechargement et le redémarrage du moteur), mais aussi pour la commande des actions de la page Resource Status et aussi pour les statistiques. Ci-dessous deux graphiques décrivant les principales actions des processus.
Stacks Image 701438
Deux exemples de fonctionnement de Centreon-Gorgone
Nous verrons bientôt le fonctionnement avec une architecture distribuée.
comments powered by Disqus
 Vous êtes ici:

Nous utilisons des cookies pour nous permettre de mieux comprendre comment le site est utilisé. En continuant à utiliser ce site, vous acceptez cette politique.