16 Surveillance et alertes #
Dans SUSE Enterprise Storage 7.1, cephadm déploie une pile de surveillance et d'alerte. Les utilisateurs doivent soit définir les services (p. ex., Prometheus, Alertmanager et Grafana) qu'ils souhaitent déployer à l'aide de cephadm dans un fichier de configuration YAML, soit utiliser l'interface de ligne de commande pour les déployer. En cas de déploiement de plusieurs services du même type, une configuration hautement disponible est déployée. Le service Node exporter fait figure d'exception à cette règle.
Les services de surveillance suivants peuvent être déployés à l'aide de cephadm :
Prometheus est le toolkit de surveillance et d'alerte. Il collecte les données fournies par les exportateurs Prometheus et déclenche les alertes préconfigurées lorsque les seuils prédéfinis sont atteints.
Alertmanager traite les alertes envoyées par le serveur Prometheus. Il déduplique les alertes, les regroupe et les achemine vers le récepteur approprié. Par défaut, Ceph Dashboard est automatiquement configuré en tant que récepteur.
Grafana est le logiciel de visualisation et d'alerte. La fonctionnalité d'alerte de Grafana n'est pas utilisée par cette pile de surveillance. Pour les alertes, le service Alertmanager est utilisé.
Node exporter est un exportateur pour Prometheus qui fournit des données à propos du noeud sur lequel il est installé. Il est recommandé d'installer Node exporter sur tous les noeuds.
Le module Prometheus Manager fournit un exportateur Prometheus pour transmettre les compteurs de performance Ceph à partir du point de collecte dans ceph-mgr
.
La configuration de Prometheus, y compris les cibles de récupération (mesures fournissant des daemons), est définie automatiquement par cephadm. cephadm déploie également une liste d'alertes par défaut, par exemple health error
(erreur de santé), 10% OSDs down
(10 % OSD arrêtés) ou pgs inactive
(GP inactifs).
Par défaut, le trafic vers Grafana est chiffré par TLS. Vous pouvez fournir votre propre certificat TLS ou utiliser un certificat auto-signé. Si aucun certificat personnalisé n'a été configuré avant le déploiement de Grafana, un certificat auto-signé est automatiquement créé et configuré pour Grafana.
Vous pouvez configurer des certificats personnalisés pour Grafana en procédant comme suit :
Configurez les fichiers de certificat :
cephuser@adm >
ceph config-key set mgr/cephadm/grafana_key -i $PWD/key.pemcephuser@adm >
ceph config-key set mgr/cephadm/grafana_crt -i $PWD/certificate.pemRedémarrez le service Ceph Manager :
cephuser@adm >
ceph orch restart mgrReconfigurez le service Grafana pour refléter les nouveaux chemins de certificat et définissez l'URL correcte pour Ceph Dashboard :
cephuser@adm >
ceph orch reconfig grafana
Alertmanager gère les alertes envoyées par le serveur Prometheus. Il s'occupe de les dédupliquer, de les regrouper et de les acheminer vers le bon récepteur. Les alertes peuvent être désactivées à l'aide d'Alertmanager, mais les silences peuvent également être gérés au moyen de Ceph Dashboard.
Il est recommandé de déployer Node exporter
sur tous les noeuds. Pour ce faire, vous pouvez utiliser le fichier monitoring.yaml
avec le type de service node-exporter
. Pour plus d'informations sur le déploiement des services, reportez-vous au Section 8.3.8, « Déploiement de la pile de surveillance ».
16.1 Configuration d'images personnalisées ou locales #
Cette section explique comment modifier la configuration des images de conteneur utilisées lors du déploiement ou de la mise à jour de services. Elle n'inclut pas les commandes nécessaires au déploiement ou au redéploiement des services.
La méthode recommandée pour déployer la pile de surveillance consiste à appliquer sa spécification comme décrit dans le Section 8.3.8, « Déploiement de la pile de surveillance ».
Pour déployer des images de conteneur personnalisées ou locales, celles-ci doivent être définies dans cephadm. Pour ce faire, vous devez exécuter la commande suivante :
cephuser@adm >
ceph config set mgr mgr/cephadm/OPTION_NAME VALUE
Dans laquelle OPTION_NAME correspond à l'un des noms suivants :
container_image_prometheus
container_image_node_exporter
container_image_alertmanager
container_image_grafana
Si aucune option n'est définie ou si le paramètre a été supprimé, les images suivantes sont utilisées comme VALUE :
registry.suse.com/ses/7.1/ceph/prometheus-server:2.32.1
registry.suse.com/ses/7.1/ceph/prometheus-node-exporter:1.1.2
registry.suse.com/ses/7.1/ceph/prometheus-alertmanager:0.21.0
registry.suse.com/ses/7.1/ceph/grafana:7.5.12
Par exemple :
cephuser@adm >
ceph config set mgr mgr/cephadm/container_image_prometheus prom/prometheus:v1.4.1
Si vous définissez une image personnalisée, la valeur par défaut sera remplacée (mais pas écrasée). La valeur par défaut change lorsque des mises à jour sont disponibles. Si vous définissez une image personnalisée, vous ne pourrez pas mettre à jour automatiquement le composant pour lequel vous avez configuré l'image personnalisée. Vous devez mettre à jour manuellement la configuration (nom de l'image et balise) pour pouvoir installer des mises à jour.
Si vous choisissez plutôt de suivre les recommandations, vous pouvez réinitialiser l'image personnalisée que vous avez définie auparavant, après quoi la valeur par défaut sera de nouveau utilisée. Utilisez ceph config rm
pour réinitialiser l'option de configuration :
cephuser@adm >
ceph config rm mgr mgr/cephadm/OPTION_NAME
Par exemple :
cephuser@adm >
ceph config rm mgr mgr/cephadm/container_image_prometheus
16.2 Mise à jour des services de surveillance #
Comme indiqué dans la Section 16.1, « Configuration d'images personnalisées ou locales », cephadm est fourni avec les URL des images de conteneur recommandées et testées, lesquelles sont utilisées par défaut.
Si vous mettez à jour les paquetages Ceph, de nouvelles versions de ces URL peuvent être fournies. Cette opération met simplement à jour l'emplacement à partir duquel les images de conteneur sont extraites, mais ne met à jour aucun service.
Une fois les URL des nouvelles images de conteneur mises à jour, que ce soit manuellement comme décrit dans la Section 16.1, « Configuration d'images personnalisées ou locales » ou automatiquement via une mise à jour du paquetage Ceph, les services de surveillance peuvent être mis à jour.
Pour ce faire, utilisez ceph orch reconfig
comme suit :
cephuser@adm >
ceph orch reconfig node-exportercephuser@adm >
ceph orch reconfig prometheuscephuser@adm >
ceph orch reconfig alertmanagercephuser@adm >
ceph orch reconfig grafana
Il n'existe actuellement aucune commande unique permettant de mettre à jour tous les services de surveillance. L'ordre dans lequel ces services sont mis à jour n'a pas d'importance.
Si vous utilisez des images de conteneur personnalisées, les URL spécifiées pour les services de surveillance ne seront pas modifiées automatiquement en cas de mise à jour des paquetages Ceph. Si vous avez spécifié des images de conteneur personnalisées, vous devrez indiquer manuellement les URL des nouvelles images de conteneur, notamment si vous utilisez un registre local de conteneurs.
Les URL des images de conteneur recommandées à utiliser sont indiquées dans la Section 16.1, « Configuration d'images personnalisées ou locales ».
16.3 Désactivation de la surveillance #
Pour désactiver la pile de surveillance, exécutez les commandes suivantes :
cephuser@adm >
ceph orch rm grafanacephuser@adm >
ceph orch rm prometheus --force # this will delete metrics data collected so farcephuser@adm >
ceph orch rm node-exportercephuser@adm >
ceph orch rm alertmanagercephuser@adm >
ceph mgr module disable prometheus
16.4 Configuration de Grafana #
Le back-end Ceph Dashboard a besoin de l'URL de Grafana pour pouvoir vérifier l'existence des tableaux de bord Grafana avant même que le front-end ne les charge. En raison de la nature de l'implémentation de Grafana dans Ceph Dashboard, cela signifie que deux connexions fonctionnelles sont nécessaires pour pouvoir afficher les graphiques Grafana dans Ceph Dashboard :
Le back-end (module Ceph MGR) doit vérifier l'existence du graphique demandé. Si cette requête aboutit, il informe le front-end qu'il peut accéder à Grafana en toute sécurité.
Le front-end demande alors les graphiques Grafana directement à partir du navigateur de l'utilisateur à l'aide d'une
iframe
. L'instance Grafana est accessible directement, sans détour, via Ceph Dashboard.
Cela dit, il se peut qu'en raison de votre environnement, le navigateur de l'utilisateur puisse difficilement accéder directement à l'URL configurée dans Ceph Dashboard. Pour résoudre ce problème, vous pouvez configurer une URL distincte qui sera uniquement utilisée pour indiquer au front-end (le navigateur de l'utilisateur) l'URL à utiliser pour accéder à Grafana.
Pour modifier l'URL renvoyée au front-end, exécutez la commande suivante :
cephuser@adm >
ceph dashboard set-grafana-frontend-api-url GRAFANA-SERVER-URL
Si aucune valeur n'est définie pour cette option, elle sera simplement redéfinie sur la valeur de l'option Grafana_API_URL, laquelle est définie automatiquement et mise à jour périodiquement par cephadm. Si elle est définie, elle indiquera au navigateur d'utiliser cette URL pour accéder à Grafana.
16.5 Configuration du module Prometheus Manager #
Le module Prometheus Manager est un module intégré à Ceph qui étend les fonctionnalités de Ceph. Le module lit les (méta)données de Ceph concernant son état et sa santé, et fournit à Prometheus les données (récupérées) dans un format exploitable.
Le module Prometheus Manager doit être redémarré pour que les modifications apportées à la configuration soient appliquées.
16.5.1 Configuration de l'interface réseau #
Par défaut, le module Prometheus Manager accepte les requêtes HTTP sur le port 9283 sur toutes les adresses IPv4 et IPv6 de l'hôte. Le port et l'adresse d'écoute peuvent être configurés avec ceph config-key set
, avec les clés mgr/prometheus/server_addr
et mgr/prometheus/server_port
. Ce port est inscrit dans le registre de Prometheus.
Pour mettre à jour le paramètre server_addr
, exécutez la commande suivante :
cephuser@adm >
ceph config set mgr mgr/prometheus/server_addr 0.0.0.0
Pour mettre à jour le paramètre server_port
, exécutez la commande suivante :
cephuser@adm >
ceph config set mgr mgr/prometheus/server_port 9283
16.5.2 Configuration du paramètre scrape_interval
#
Par défaut, le module Prometheus Manager est configuré avec un intervalle de récupération de 15 secondes. Nous vous déconseillons d'utiliser un intervalle de récupération inférieur à 10 secondes. Pour configurer un intervalle de récupération différent dans le module Prometheus, définissez le paramètre scrape_interval
sur la valeur souhaitée :
Pour fonctionner correctement et ne causer aucun problème, le paramètre scrape_interval
de ce module doit toujours être défini de manière à correspondre à l'intervalle de récupération de Prometheus.
cephuser@adm >
ceph config set mgr mgr/prometheus/scrape_interval 15
16.5.3 Configuration du cache #
Sur les grandes grappes (plus de 1 000 OSD), le temps nécessaire à la récupération des mesures peut devenir considérable. Sans le cache, le module Prometheus Manager peut surcharger le gestionnaire et causer l'arrêt ou l'absence de réponse des instances de Ceph Manager. Le cache est donc activé par défaut et ne peut pas être désactivé, mais cela signifie qu'il peut devenir obsolète. Le cache est considéré comme obsolète lorsque le temps nécessaire à la récupération des mesures à partir de Ceph dépasse l'intervalle de récupération (scrape_interval
) configuré.
Dans ce cas-là, un avertissement est consigné et le module :
Répond avec un code d'état HTTP 503 (service non disponible).
Renvoie le contenu du cache, même s'il est obsolète.
Ce comportement peut être configuré à l'aide des commandes ceph config set
.
Pour indiquer au module de répondre avec des données potentiellement obsolètes, configurez-le pour qu'il renvoie
:
cephuser@adm >
ceph config set mgr mgr/prometheus/stale_cache_strategy return
Pour indiquer au module de répondre avec un message de service non disponible
, configurez-le pour échouer
:
cephuser@adm >
ceph config set mgr mgr/prometheus/stale_cache_strategy fail
16.5.4 Activation de la surveillance des images RBD #
Le module Prometheus Manager peut éventuellement collecter des statistiques d'E/S par image RBD en activant des compteurs de performances d'OSD dynamiques. Les statistiques sont recueillies pour toutes les images figurant dans les réserves spécifiées dans le paramètre de configuration mgr/prometheus/rbd_stats_pools
.
Le paramètre est une liste d'entrées pool[/namespace]
séparées par des virgules ou des espaces. Si l'espace de noms n'est pas spécifié, les statistiques sont collectées pour tous les espaces de noms de la réserve.
Par exemple :
cephuser@adm >
ceph config set mgr mgr/prometheus/rbd_stats_pools "pool1,pool2,poolN"
Le module analyse les réserves et espaces de noms spécifiés, établit une liste de toutes les images disponibles et la rafraîchit périodiquement. L'intervalle peut être configuré à l'aide du paramètre mgr/prometheus/rbd_stats_pools_refresh_interval
(en secondes) et est de 300 secondes (cinq minutes) par défaut.
Par exemple, si vous avez modifié et défini l'intervalle de synchronisation sur 10 minutes :
cephuser@adm >
ceph config set mgr mgr/prometheus/rbd_stats_pools_refresh_interval 600
16.6 Modèle de sécurité de Prometheus #
Le modèle de sécurité de Prometheus part du principe que les utilisateurs non approuvés ont accès au noeud d'extrémité HTTP et aux journaux de Prometheus. Les utilisateurs non approuvés ont accès à l'ensemble des (méta)données collectées par Prometheus et contenues dans la base de données, ainsi qu'à diverses informations opérationnelles et de débogage.
Cependant, l'API HTTP de Prometheus est limitée aux opérations en lecture seule. Les configurations ne peuvent pas être modifiées à l'aide de l'API et les secrets ne sont pas exposés. Prometheus dispose par ailleurs de mesures intégrées pour limiter l'impact des attaques par déni de service.
16.7 Passerelle SNMP de Prometheus Alertmanager #
Si vous voulez être informé des alertes Prometheus via des trappes SNMP, vous pouvez installer la passerelle SNMP de Prometheus Alertmanager via cephadm ou Ceph Dashboard. Pour effectuer cette opération pour SNMPv2c, par exemple, vous devez créer un fichier de spécification de service et de placement incluant le contenu suivant :
Pour plus d'informations sur les fichiers de service et de placement, reportez-vous au Section 8.2, « Spécification de service et de placement ».
service_type: snmp-gateway service_name: snmp-gateway placement: ADD_PLACEMENT_HERE spec: credentials: snmp_community: ADD_COMMUNITY_STRING_HERE snmp_destination: ADD_FQDN_HERE:ADD_PORT_HERE snmp_version: V2c
Vous pouvez également utiliser Ceph Dashboard pour déployer le service de passerelle SNMP pour SNMPv2c et SNMPv3. Pour plus d'informations, reportez-vous à la Section 4.4, « Affichage des services ».