Aller au contenu

Observabilité

Services de metering, métriques et alertes sur OpenStack.


Ceilometer

Ceilometer est le service de metering et collecte de données d'OpenStack. Il collecte des mesures sur l'utilisation des ressources (CPU, RAM, réseau, stockage) à travers tous les services OpenStack.

Cas d'usage : facturation à l'usage (billing/chargeback), audit de consommation, alimentation de systèmes de métriques.

Fonctionnement

Ceilometer collecte les données de deux manières :

Méthode Description
Polling Interrogation périodique des APIs des services
Notifications Écoute des messages emis par les services sur le bus AMQP

Les données collectees sont envoyees vers un backend de stockage (Gnocchi) ou un pipeline de traitement.

# Lister les metres disponibles
openstack metric resource-type list

# Consulter les ressources mesurees
openstack metric resource list

Gnocchi

Gnocchi est le service de base de données de métriques time-series d'OpenStack. Il stocke et agrégé les mesures collectees par Ceilometer de manière performante et scalable.

Cas d'usage : stockage long-terme des métriques, agrégation de données, requêtes analytiques sur la consommation.

Concepts clés

Concept Description
Resource Entité mesuree (instance, volume, réseau)
Metric Serie temporelle associee a une ressource
Archive policy Politique de rétention et granularité des données
Measure Point de donnée individuel (timestamp + valeur)

Consulter les métriques

# Lister les archive policies
openstack metric archive-policy list

# Lister les metriques d'une ressource
openstack metric resource show <resource-id>

# Consulter les mesures d'une metrique
openstack metric measures show <metric-id> \
    --start 2026-04-01T00:00:00 \
    --stop 2026-04-13T00:00:00

# Agreger des metriques
openstack metric measures aggregation \
    --resource-type instance \
    --metric cpu_util \
    --aggregation mean

Politiques d'archivage

Definissez des archive policies adaptées a vos besoins : granularité fine (1 min) sur 7 jours, moyenne (5 min) sur 30 jours, agrégée (1 h) sur 1 an. Cela optimise l'espace de stockage.

Aodh

Aodh est le service d'alarmes d'OpenStack. Il définit des seuils sur les métriques Gnocchi et déclenche des actions (notifications, webhooks, autoscaling Heat) lorsqu'un seuil est dépassé.

Cas d'usage : alertes sur la consommation CPU, déclenchement d'autoscaling, notifications d'anomalies.

Créer une alarme

# Alarme sur CPU > 80% pendant 5 minutes
openstack alarm create \
    --name cpu-haute \
    --type gnocchi_aggregation_by_resources_threshold \
    --metric cpu_util \
    --aggregation-method mean \
    --threshold 80 \
    --comparison-operator gt \
    --granularity 300 \
    --resource-type instance \
    --alarm-action "http://mon-webhook.example.com/alerte"
# Lister les alarmes
openstack alarm list

# Verifier l'etat d'une alarme
openstack alarm show cpu-haute

Intégration avec des outils externes

De nombreux déploiements OpenStack completent Ceilometer/Gnocchi/Aodh avec des outils de monitoring externes pour une observabilité plus riche :

Outil Rôle Intégration OpenStack
Prometheus Collecte et stockage de métriques Exporters pour les APIs OpenStack
Grafana Visualisation et dashboards Datasource Gnocchi ou Prometheus
Elasticsearch Agrégation et recherche de logs Pipeline Ceilometer vers Elasticsearch
Nagios/Zabbix Monitoring classique et alertes Checks sur les APIs et services OpenStack

Approche hybride

L'approche la plus courante en production est d'utiliser Ceilometer pour le metering/billing (facturation interne) et Prometheus + Grafana pour le monitoring opérationnel et les dashboards temps réel.