Skip to main content
Solved

CMA - Espace disque en valeur et en volume

  • September 28, 2026
  • 3 replies
  • 43 views

Forum|alt.badge.img+5

Bonjour,

Pour un hôte Windows supervisé avec l’agent CMA 24.10.17, la sonde STORAGE ressort la valeur  OK: C:\ Total: 235G Used: 86.26% Free: 13.74%.

Je souhaiterai avoir OK: C:\ Total: 235G Used: 202.7G (86.26%) Free: 32.3G (13.74%)

Comment faire ?

Merci !

Best answer by jcr

Bonjour,

Le check storage utilise actuellement la même unité pour les seuils et la sortie.

Une évolution sur le sujet est dans les tuyaux.

On pourra par exemple spécifier des seuils critical en % et avoir une sortie en Go.

3 replies

mmunck
Forum|alt.badge.img+4
  • Steward *
  • September 28, 2026

Bonjour Maxime,

Avant il y avait l’option --unit mais la documentation en ligne n’est pas à jour et elle n’est plus disponible me semble-t-il.

Si vous trouvez une solution je suis preneuse, bonne journée,

Morgan


Forum|alt.badge.img+1
  • Steward *
  • September 29, 2026

Salut Maxime,

J'ai eu exactement le même besoin que toi ! Malheureusement, le check natif CMA est codé en dur pour ne renvoyer que des pourcentages.

La seule solution est de créer un Custom Check qui lance un script PowerShell. Petite astuce : l'agent CMA sous Windows plante souvent si on appelle PowerShell directement. Pour éviter ça, il faut utiliser un petit fichier .bat intermédiaire.

Voici ma configuration qui fonctionne parfaitement, avec les valeurs en Go et les graphiques :

1. Le script (check_storage.ps1) : (À placer par exemple dans C:\Program Files\Centreon\)

param([string]$warn_in = "80", [string]$crit_in = "90")

 

[int]$warn = 80; [int]$crit = 90

if ($warn_in -match "^\d+$") { $warn = [int]$warn_in }

if ($crit_in -match "^\d+$") { $crit = [int]$crit_in }

 

$disks = Get-CimInstance Win32_LogicalDisk -Filter "DriveType=3"

$out = ""; $perfdata = " |"; $status = 0

 

foreach ($d in $disks) {

    $tot = [math]::Round($d.Size / 1GB, 2)

    $free = [math]::Round($d.FreeSpace / 1GB, 2)

    $used = $tot - $free

    $pct = [math]::Round(($used / $tot) * 100, 2)

   

    $out += "$($d.DeviceID) Total: $tot GB Used: $used GB ($pct%) Free: $free GB - "

    $perfdata += " '$($d.DeviceID)'=$($pct)%;$warn;$crit;0;100"

   

    if ($pct -ge $crit) { $status = 2 } elseif ($pct -ge $warn -and $status -lt 2) { $status = 1 }

}

 

$out = $out.TrimEnd(" - ")

$final_output = "$out [Seuils W:$warn C:$crit]$perfdata"

 

if ($status -eq 2) { Write-Host "CRITICAL: $final_output"; exit 2 }

if ($status -eq 1) { Write-Host "WARNING: $final_output"; exit 1 }

Write-Host "OK: $final_output"; exit 0

 

2. Le lanceur (run_storage.bat) : (Dans le même dossier)

@echo off

powershell.exe -NoProfile -ExecutionPolicy Bypass -File "%~dp0check_storage.ps1" -warn_in %1 -crit_in %2

 

3. Le fichier pour l'agent (custom_checks.ini) : (crée ce fichier avec Notepad++ et choisis l'encodage UTF-8 sans BOM, sinon l'agent plantera).

[custom_checks]

check_storage_gb = C:\Windows\System32\cmd.exe /c "C:\Program Files\Centreon\run_storage.bat" $ARG1$ $ARG2$

Lorsque tu vas redémarrer ton agent CMA sous windows, n’oublie pas de déclarer custom_checks.ini dans la ligne custom check file.

 

4. Côté Centreon : Tu crées un service basé sur le modèle Custom Script avec ces macros :

  • La Commande (Configuration > Commandes > Contrôles) :

    • Type de commande : Vérifier

    • Ligne de commande : { "check": "custom", "args": { "name": "$_SERVICECUSTOMCHECK$", "ARG1": "$_SERVICEARG1$", "ARG2": "$_SERVICEARG2$" } }

    • Connecteur : Centreon Monitoring Agent

    • Modèle de graphique : Storage

  • Le Modèle de service (Configuration > Services > Modèles) :

    • Lie-le à ta nouvelle commande.

    • Ajoute ces 3 macros personnalisées :

      • CUSTOMCHECK = check_storage_gb

      • ARG1 = 80 (ton seuil Warning)

      • ARG2 = 90 (ton seuil Critical)

Un redémarrage du service centagent côté Windows et tu auras tes volumes en Go !

 


Forum|alt.badge.img+3
  • Centreonian
  • Answer
  • September 29, 2026

Bonjour,

Le check storage utilise actuellement la même unité pour les seuils et la sortie.

Une évolution sur le sujet est dans les tuyaux.

On pourra par exemple spécifier des seuils critical en % et avoir une sortie en Go.