Ceph

Supported OS Linux Mac OS

Dashboard Ceph

Présentation

Activez l’intégration Datadog/Ceph pour :

  • Surveiller l’utilisation du disque pour l’ensemble des pools de stockage
  • Recevoir des checks de service en cas de problème
  • Surveiller les métriques de performance des E/S

Configuration

Installation

Le check Ceph est inclus avec le package de l’Agent Datadog : vous n’avez donc rien d’autre à installer sur vos serveurs Ceph.

Configuration

Modifiez le fichier ceph.d/conf.yaml dans le dossier conf.d/ à la racine du répertoire de configuration de votre Agent. Consultez le fichier d’exemple ceph.d/conf.yaml pour découvrir toutes les options de configuration disponibles :

init_config:

instances:
  - ceph_cmd: /chemin/vers/votre/ceph # valeur par défaut : /usr/bin/ceph
    use_sudo: true # uniquement si le binaire ceph doit utiliser sudo sur vos nœuds

Si vous avez activé use_sudo, ajoutez une ligne semblable à ce qui suit dans votre fichier sudoers :

dd-agent ALL=(ALL) NOPASSWD:/chemin/vers/votre/ceph

Collecte de logs

Disponible à partir des versions > 6.0 de l’Agent

  1. La collecte de logs est désactivée par défaut dans l’Agent Datadog. Vous devez l’activer dans datadog.yaml :

    logs_enabled: true
    
  2. Modifiez ensuite ceph.d/conf.yaml en supprimant la mise en commentaire des lignes logs en bas du fichier. Mettez à jour la ligne path en indiquant le bon chemin vers vos fichiers de log Ceph.

    logs:
      - type: file
        path: /var/log/ceph/*.log
        source: ceph
        service: "<APPLICATION_NAME>"
    
  3. Redémarrez l’Agent.

Validation

Lancez la sous-commande status de l’Agent et cherchez ceph dans la section Checks.

Données collectées

Métriques

ceph.aggregate_pct_used
(gauge)
Overall capacity usage metric
Shown as percent
ceph.apply_latency_ms
(gauge)
Time taken to flush an update to disks
Shown as millisecond
ceph.commit_latency_ms
(gauge)
Time taken to commit an operation to the journal
Shown as millisecond
ceph.misplaced_objects
(gauge)
Number of objects misplaced
Shown as item
ceph.misplaced_total
(gauge)
Total number of objects if there are misplaced objects
Shown as item
ceph.num_full_osds
(gauge)
Number of full osds
Shown as item
ceph.num_in_osds
(gauge)
Number of participating storage daemons
Shown as item
ceph.num_mons
(gauge)
Number of monitor daemons
Shown as item
ceph.num_near_full_osds
(gauge)
Number of nearly full osds
Shown as item
ceph.num_objects
(gauge)
Object count for a given pool
Shown as item
ceph.num_osds
(gauge)
Number of known storage daemons
Shown as item
ceph.num_pgs
(gauge)
Number of placement groups available
Shown as item
ceph.num_pools
(gauge)
Number of pools
Shown as item
ceph.num_up_osds
(gauge)
Number of online storage daemons
Shown as item
ceph.op_per_sec
(gauge)
IO operations per second for given pool
Shown as operation
ceph.osd.pct_used
(gauge)
Percentage used of full/near full osds
Shown as percent
ceph.pgstate.active_clean
(gauge)
Number of active+clean placement groups
Shown as item
ceph.read_bytes
(gauge)
Per-pool read bytes
Shown as byte
ceph.read_bytes_sec
(gauge)
Bytes/second being read
Shown as byte
ceph.read_op_per_sec
(gauge)
Per-pool read operations/second
Shown as operation
ceph.recovery_bytes_per_sec
(gauge)
Rate of recovered bytes
Shown as byte
ceph.recovery_keys_per_sec
(gauge)
Rate of recovered keys
Shown as item
ceph.recovery_objects_per_sec
(gauge)
Rate of recovered objects
Shown as item
ceph.total_objects
(gauge)
Object count from the underlying object store. [v<=3 only]
Shown as item
ceph.write_bytes
(gauge)
Per-pool write bytes
Shown as byte
ceph.write_bytes_sec
(gauge)
Bytes/second being written
Shown as byte
ceph.write_op_per_sec
(gauge)
Per-pool write operations/second
Shown as operation

Remarque : si vous exécutez Ceph Luminous ou une version ultérieure, la métrique ceph.osd.pct_used ne s’affichera pas.

Événements

Le check Cepth n’inclut aucun événement.

Checks de service

ceph.overall_status :
L’Agent Datadog envoie un check de service pour chaque check de santé de host de Ceph.

En plus de ce check de service, le check Ceph recueille également une liste configurable de checks de santé pour Ceph Luminous et les versions ultérieures. Par défaut, ces checks correspondent à :

ceph.osd_down :
Renvoie OK si vos OSD sont tous pleins, renvoie WARNING si la gravité est HEALTH_WARN ou renvoie CRITICAL pour les autres cas.

ceph.osd_orphan :
Renvoie OK s’il n’y a aucun OSD orphelin, renvoie WARNING si la gravité est HEALTH_WARN ou renvoie CRITICAL pour les autres cas.

ceph.osd_full :
Renvoie OK si vos OSD ne sont pas pleins, renvoie WARNING si la gravité est HEALTH_WARN ou renvoie CRITICAL pour les autres cas.

ceph.osd_nearfull :
Renvoie OK si vos OSD sont loin d’être pleins, renvoie WARNING si la gravité est HEALTH_WARN ou renvoie CRITICAL pour les autres cas.

ceph.pool_full :
Renvoie OK si vos pools n’ont pas atteint leur quota, renvoie WARNING si la gravité est HEALTH_WARN ou renvoie CRITICAL pour les autres cas.

ceph.pool_near_full :
Renvoie OK si vos pools n’ont pas atteint leur quota, renvoie WARNING si la gravité est HEALTH_WARN ou renvoie CRITICAL pour les autres cas.

ceph.pg_availability :
Renvoie OK si l’ensemble des données sont disponibles, renvoie WARNING si la gravité est HEALTH_WARN ou renvoie CRITICAL pour les autres cas.

ceph.pg_degraded :
Renvoie OK en cas de redondance complète des données, renvoie WARNING si la gravité est HEALTH_WARN ou renvoie CRITICAL pour les autres cas.

ceph.pg_degraded_full :
Renvoie OK s’il y a suffisamment d’espace dans le cluster pour la redondance des données, renvoie WARNING si la gravité est HEALTH_WARN ou renvoie CRITICAL pour les autres cas.

ceph.pg_damaged :
Renvoie OK s’il n’y a pas d’incohérence après le nettoyage des données, renvoie WARNING si la gravité est HEALTH_WARN ou renvoie CRITICAL pour les autres cas.

ceph.pg_not_scrubbed :
Renvoie OK si les PG ont été nettoyés récemment, renvoie WARNING si la gravité est HEALTH_WARN ou renvoie CRITICAL pour les autres cas.

ceph.pg_not_deep_scrubbed :
Renvoie OK si les PG ont été nettoyés en profondeur récemment, renvoie WARNING si la gravité est HEALTH_WARN ou renvoie CRITICAL pour les autres cas.

ceph.cache_pool_near_full :
Renvoie OK si les pools de cache sont loin d’être pleins, renvoie WARNING si la gravité est HEALTH_WARN ou renvoie CRITICAL pour les autres cas.

ceph.too_few_pgs :
Renvoie OK si le nombre de PG est supérieur au seuil minimum, renvoie WARNING si la gravité est HEALTH_WARN ou renvoie CRITICAL pour les autres cas.

ceph.too_many_pgs :
Renvoie OK si le nombre de PG est inférieur au seuil maximal, renvoie WARNING si la gravité est HEALTH_WARN ou renvoie CRITICAL pour les autres cas.

ceph.object_unfound :
Renvoie OK si tous les objets peuvent être trouvés, renvoieWARNING si la gravité est HEALTH_WARN ou renvoie CRITICAL pour les autres cas.

ceph.request_slow :
Renvoie OK si les requêtes possèdent un délai normal de traitement, renvoie WARNING si la gravité est HEALTH_WARN ou renvoie CRITICAL pour les autres cas.

ceph.request_stuck :
Renvoie OK si les requêtes possèdent un délai normal de traitement, renvoie WARNING si la gravité est HEALTH_WARN ou renvoie CRITICAL pour les autres cas.

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.

Pour aller plus loin