Supervision des services Medulla
Dans le cadre de la supervision d'une infrastructure Medulla On-Premise, il est recommandé de surveiller non seulement l'état des principaux services nécessairesMedulla, aumais fonctionnementégalement deles laressources plateforme.système, les ports réseau, les composants XMPP, les bases MariaDB et, selon l'architecture, MaxScale et les serveurs relais.
Cette supervision peut être intégrée à votre outil de monitoring habituel afin de détecter rapidement l'arrêtarrêt, la dégradation ou le dysfonctionnement d'un composant Medulla.
Information :
Les éléments à superviser dépendent du rôle de chaque serveur. Un serveur principal, un relais, un serveur MariaDB ou un serveur MaxScale ne disposent pas nécessairement des mêmes services.
1. Principes généraux de supervision
Pour une infrastructure Medulla, nous recommandons de superviser au minimum les éléments suivants :
Fréquence de contrôle recommandée
Pour les services critiques, un contrôle toutes les 5 minutes constitue une base raisonnable.
Afin d'éviter de déclencher des alertes sur une indisponibilité très ponctuelle, il est possible de déclencher l'alerte après plusieurs échecs consécutifs.
Par exemple :
Contrôle : toutes les 5 minutes
Alerte : après 3 contrôles consécutifs en erreur
Recommandation :
Les fréquences et seuils doivent être adaptés aux contraintes de disponibilité et à l'architecture de votre organisation.
2. Supervision système
Quel que soit le rôle du serveur Medulla, les ressources système doivent être supervisées.
Important :
Une attention particulière doit être portée aux partitions contenant les bases de données, les packages de télédistribution, les sauvegardes et les journaux. Un espace disque saturé peut provoquer plusieurs dysfonctionnements simultanés de Medulla.
3. Services Medulla à superviser
NousSur un serveur Medulla principal, nous recommandons de surveiller les services suivants lorsqu'ils sont installés :
ejabberd
mmc-agent
pulse-xmpp-agent-relay
pulse2-register-pxe
pulse2-package-server
pulse-xmpp-master-substitute-master
pulse-xmpp-master-substitute-logger
pulse-xmpp-master-substitute-updates
pulse-xmpp-master-substitute-assessor
pulse-xmpp-master-substitute-inventory
pulse-xmpp-master-substitute-deployment
pulse-xmpp-master-substitute-monitoring
pulse-xmpp-master-substitute-registration
pulse-xmpp-master-substitute-subscription
Selon votre version et les fonctionnalités installées, d'autres services peuvent également être présents, notamment :
pulse-xmpp-master-substitute-reconfigurator
Information :SelonTous les fonctionnalités installées et activées sur votre infrastructure Medulla, certainsces services peuventne nesont pas êtrenécessairement présents sur touschaque lesinstallation. serveurs.La liste de supervision doit être construite à partir des services réellement installés et activés sur chaque serveur.
2.4. Vérifier l'état d'un service
La commande systemctl permet de vérifier manuellement l'état d'un service.
Par exemple, pour vérifier le service mmc-agent :
systemctl status mmc-agent
Pour vérifierobtenir simplementuniquement sison le service est actifétat :
systemctl is-active mmc-agent
Lorsque le service fonctionne normalement, la commande retourne :
active
Les états suivants doivent notamment être considérés comme anormaux pour un service attendu :
inactive
failed
3.5. Vérifier l'ensemble des services Medulla
Pour effectuer rapidement un contrôle rapide des principaux services, vous pouvez utiliser le script suivant :
#!/bin/bash
SERVICES="
ejabberd
mmc-agent
pulse-xmpp-agent-relay
pulse2-register-pxe
pulse2-package-server
pulse-xmpp-master-substitute-master
pulse-xmpp-master-substitute-logger
pulse-xmpp-master-substitute-updates
pulse-xmpp-master-substitute-assessor
pulse-xmpp-master-substitute-inventory
pulse-xmpp-master-substitute-deployment
pulse-xmpp-master-substitute-monitoring
pulse-xmpp-master-substitute-registration
pulse-xmpp-master-substitute-subscription
"
for SERVICE in $SERVICES
do
if systemctl is-active --quiet "$SERVICE"; then
echo "[OK] $SERVICE"
else
echo "[ERROR] $SERVICE"
fi
done
LeExemple de résultat permet d'identifier rapidement les services actifs et ceux nécessitant une vérification.
Exemple :
[OK] ejabberd
[OK] mmc-agent
[OK] pulse-xmpp-agent-relay
[ERROR] pulse2-package-server
[OK] pulse-xmpp-master-substitute-master
Attention :
Ce script utilise une liste générique. Retirez les services qui ne sont pas installés sur le serveur supervisé afin d'éviter de générer de faux incidents.
4.6. Supervision d'ejabberd
ejabberd est un composant important de l'architecture de communication Medulla. Il est recommandé de surveiller à la fois son service système et plusieurs indicateurs XMPP.
État du service
systemctl status ejabberd
Ou :
systemctl is-active ejabberd
Nombre d'utilisateurs connectés
/usr/bin/ejabberdctl stats onlineusers
Cette valeur peut être utilisée comme indicateur de fonctionnement et suivie dans le temps.
Nombre d'utilisateurs enregistrés
/usr/bin/ejabberdctl stats registeredusers
Une variation importante ou inattendue de cette valeur peut être utilisée comme signal de supervision.
Messages hors ligne
Le nombre de messages en attente peut également être supervisé pour les différents comptes techniques Medulla.
Exemple :
/usr/bin/ejabberdctl get_offline_count NOM_DU_COMPTE pulse
Une augmentation importante et persistante du nombre de messages hors ligne peut indiquer qu'un composant Medulla ne consomme plus correctement ses messages.
Recommandation :
Les valeurs onlineusers, registeredusers et les files de messages hors ligne sont particulièrement intéressantes à historiser afin de détecter des évolutions anormales, même lorsqu'aucun service n'est arrêté.
7. Supervision des ports du serveur Medulla
En complément de la supervision des services, il est recommandé de contrôler que les ports nécessaires sont bien en écoute et accessibles depuis les équipements concernés.
Selon l'architecture et les fonctionnalités utilisées, les ports suivants peuvent notamment être supervisés :
5222
Communication XMPP
7080
Service MMC
8443
Service HTTPS Medulla selon configuration
2222
Service SSH selon architecture
22000
Synchronisation / dépendance Medulla selon configuration
23000
Synchronisation / dépendance Medulla selon configuration
57040
Agent master selon architecture
Important :
Cette liste est générique. Les ports réellement utilisés dépendent de votre architecture Medulla, des fonctionnalités activées et du rôle du serveur. Ne déclenchez pas d'alerte sur un port qui n'est pas attendu sur le serveur concerné.
8. Supervision du serveur Web et de Guacamole
La disponibilité de l'interface Web doit être supervisée avec un contrôle HTTP ou HTTPS.
Il est recommandé de vérifier :
Selon l'installation, l'état du service Web peut par exemple être contrôlé avec :
systemctl status httpd
ou avec le nom du service Web utilisé par votre installation.
Guacamole
La disponibilité du composant Guacamole peut également être contrôlée à travers son URL locale.
Exemple de point de contrôle :
http://localhost:8081/guacamole/
Dans une configuration où l'accès direct à cette URL n'est pas autorisé, une réponse HTTP 403 peut constituer le comportement attendu et confirmer que le service répond.
9. Supervision de Syncthing
Lorsque Syncthing est utilisé dans l'architecture Medulla, surveillez son service :
systemctl status syncthing@syncthing
Les ports associés peuvent également être supervisés selon la configuration :
22000
23000
8384
Information :
Les ports à surveiller doivent correspondre à la configuration Syncthing réellement utilisée par votre infrastructure.
10. Supervision d'un serveur relais Medulla
Un serveur relais Medulla nécessite généralement une supervision plus limitée que le serveur principal.
Selon les fonctions activées, nous recommandons notamment de surveiller :
pulse-xmpp-agent-relay ;
ejabberd lorsque celui-ci est présent sur le relais ;
Syncthing lorsque celui-ci est utilisé ;
le serveur Web lorsque le relais distribue des packages ;
la connectivité XMPP ;
l'espace disque utilisé par le repository de télédistribution.
Service Relay
systemctl status pulse-xmpp-agent-relay
Port XMPP
5222
Syncthing
systemctl status syncthing@syncthing
Espace disque
Le système de fichiers contenant les packages de télédistribution doit être surveillé afin de garantir qu'un espace suffisant reste disponible.
Selon l'installation, il peut notamment s'agir de :
/telediffusion
Important :
Une saturation du repository d'un relais peut empêcher la synchronisation ou la distribution de nouveaux packages sans nécessairement provoquer l'arrêt d'un service.
11. Supervision de MariaDB
Lorsque MariaDB est hébergé sur une infrastructure dédiée ou sur le serveur Medulla, il est recommandé de superviser son service, ses connexions, ses erreurs et les ressources utilisées.
État du service
systemctl status mariadb
Ou :
systemctl is-active mariadb
Éléments recommandés
Nombre de connexions
Il est notamment recommandé de surveiller le nombre de connexions actives par rapport au nombre maximal de connexions autorisées.
Une alerte peut être déclenchée lorsque l'utilisation approche une proportion importante de la capacité maximale.
Exemple :
Un seuil d'alerte peut être positionné avant d'atteindre 100 % de max_connections, afin de disposer d'une marge permettant d'intervenir avant saturation.
Requêtes lentes
Le nombre de requêtes lentes peut être historisé afin de détecter une dégradation progressive des performances de la base.
Erreurs MariaDB
Il est recommandé de surveiller le journal d'erreurs MariaDB et de déclencher une alerte lorsqu'une nouvelle erreur significative apparaît.
12. Supervision de MaxScale
Lorsque l'architecture Medulla utilise MariaDB MaxScale, son état doit également être supervisé.
État du service
systemctl status maxscale
Ou :
systemctl is-active maxscale
Ports
Selon la configuration MaxScale utilisée, les ports suivants peuvent notamment être supervisés :
4006
Connexion Read / Write selon configuration
4008
Connexion Read Only selon configuration
Information :
Les ports MaxScale doivent être adaptés à la configuration réelle définie dans votre infrastructure.
13. Supervision des espaces de stockage
La disponibilité des services ne suffit pas à garantir le bon fonctionnement de Medulla. Les systèmes de fichiers doivent également être supervisés.
Une attention particulière doit être portée :
/ ;
au répertoire temporaire /tmp ;
au datadir MariaDB ;
au stockage des sauvegardes ;
au repository de télédistribution ;
aux volumes contenant les logs et données Medulla.
Important :
Définissez des seuils d'alerte suffisamment tôt pour permettre une intervention avant saturation complète du système de fichiers.
14. Intégration dans un outil de supervision
Les servicesdifférents Medullacontrôles décrits dans cette documentation peuvent être supervisésintégrés avecdans votrela solutionplupart habituelledes solutions de monitoring.supervision.
LeLes principecontrôles consistepeuvent àêtre vérifierregroupés régulièrementen queplusieurs chaquecatégories service:
Pour les services critiques, une politique de type suivante peut être utilisée :
activeUne alerte peut être générée lorsqu'un service passe dans un état différent, notammentIntervalle :
inactive5 failedminutes
Alerte : après 3 échecs consécutifs
Important :LaCes présencevaleurs d'unconstituent une recommandation générique et doivent être adaptées à votre niveau de service dépend du rôle du serveur et des fonctionnalités Medulla installées. La liste des services à superviservotre doit donc être adaptée à chaque serveurpolitique de votre infrastructure.supervision.
5.15. Consulter les journaux d'un service
Lorsqu'un service est arrêté ou en erreur, commencez par vérifier son état :
systemctl status NOM_DU_SERVICE
Vous pouvezConsultez ensuite consulter ses journaux avec :
journalctl -u NOM_DU_SERVICE
Pour afficher les 100 événements les plus récents :
journalctl -u NOM_DU_SERVICE -n 100
Par exemple :
journalctl -u mmc-agent -n 100
Pour suivre les événements en temps réel :
journalctl -u NOM_DU_SERVICE -f
6.16. Redémarrer un service
Après analyse du problème, un service peut si nécessaire être redémarré avec :
systemctl restart NOM_DU_SERVICE
Par exemple :
systemctl restart mmc-agent
Vérifiez ensuite son état :
systemctl status mmc-agent
Attention :
Avant de redémarrer un service en erreur, il est recommandé de consulterconsultez son état et ses journaux afin d'identifier l'origine du problème. Un redémarrage systématique peut masquer un problème récurrent sans en traiter la cause.
7.17. ServicesRésumé recommandéspar pourrôle lade supervisionserveur
Serveur Medulla principal |
HTTP/HTTPS, mmc-agentagent, pulse-xmpp-agent-relaypackages, pulse2-register-pxepulse2-package-serverServeur relais
pulse-xmpp-master-substitute-masterServeur MariaDB
pulse-xmpp-master-substitute-loggerServeur MaxScale
pulse-xmpp-master-substitute-updatesservice pulse-xmpp-master-substitute-assessorpulse-xmpp-master-substitute-inventorypulse-xmpp-master-substitute-deploymentpulse-xmpp-master-substitute-monitoringpulse-xmpp-master-substitute-registrationpulse-xmpp-master-substitute-subscriptionRésumé18. Bonnes pratiques
Pour superviser une infrastructure Medulla On-Premise :
surveillezadapterl'étatlesdes services Medulla nécessairescontrôles au rôle réel de chaque serveur ;déclenchezsuperviser les services mais également les ressources système et les ports ;
activeponctuel ;
systemctlparticulièrement statusl'espace journalctlRecommandation :IntégrezUne supervision Medulla efficace ne doit pas se limiter à vérifier que les processus sont démarrés. Il est recommandé de combiner la surveillance des servicesservices, Medullaressources àsystème, votreports outilréseau, métriques XMPP, performances MariaDB et espaces de supervision afin d'être alerté automatiquement en cas d'arrêt d'un composant de la plateforme.stockage. Adaptez laensuite listeles des services surveilléscontrôles au rôle et aux fonctionnalités réellement installées sur chaque serveur Medulla.de votre infrastructure.