SecuAAS Docs
SecuMon

Vérifications

Les 7 types de sondes (ping, HTTP, TCP, DNS, SNMP, certificat TLS, contenu), leur configuration, leur exécution et la lecture des résultats.

À quoi ça sert

Une vérification (check) est une sonde rattachée à un hôte. Elle mesure périodiquement un aspect de votre infrastructure et produit un résultat : un statut, une latence et une sortie textuelle. SecuMon planifie automatiquement chaque vérification selon son intervalle et conserve l'historique de ses résultats.

Le modèle d'une vérification

ChampTypeRequisDescription
iduuid(généré)Identifiant unique.
host_iduuidHôte auquel la vérification est rattachée.
namestringNom lisible (ping web-prod-01).
check_typestringType de sonde : ping, http, tcp, dns, snmp, cert, content.
configobjetParamètres propres au type (voir ci-dessous).
interval_secentierFréquence d'exécution. Défaut : 60.
timeout_secentierDélai d'expiration. Défaut : 30.
retriesentierNombre de réessais avant échec. Défaut : 0.
enabledbooléentrue par défaut. Une vérification désactivée n'est plus planifiée.
tagsobjetÉtiquettes clé/valeur.

Statut d'un résultat

statusSens
0OK
1Dégradé
2Critique
3Inconnu

Les 7 types de vérifications

ping — disponibilité ICMP

Vérifie qu'un hôte répond et mesure la latence.

Champ configTypeRequisDescription
hoststringHôte ou IP à pinguer.
{ "host": "10.0.0.12" }

Sortie type : pong 1.5ms (statut OK) ou timeout (statut critique).

http — santé d'un site ou d'une API

Effectue une requête HTTP(S) et évalue le code de réponse (et, optionnellement, le contenu).

Champ configTypeRequisDescription
urlstringURL à interroger.
methodstringMéthode HTTP. Défaut : GET.
expected_statusentierCode attendu exact (mode strict). 0 = mode permissif (2xx/3xx = OK).
expected_bodystringSous-chaîne devant être présente dans le corps.
headersobjetEn-têtes à envoyer.
follow_redirectsbooléenSuivre les redirections. Défaut : true.
{ "url": "https://web-prod-01.example.com/health", "expected_status": 200, "expected_body": "ok" }

En mode permissif, un code 5xx est critique, un 4xx est dégradé. En mode strict, seul le code exact attendu est OK.

tcp — port ouvert

Ouvre une connexion TCP et, en option, échange des données.

Champ configTypeRequisDescription
hoststringHôte ou IP.
portentierPort TCP.
send_datastringDonnées à envoyer après connexion.
expect_datastringSous-chaîne attendue dans la réponse.
{ "host": "10.0.0.12", "port": 5432 }

dns — résolution et propagation

Résout un enregistrement DNS et vérifie sa valeur, sa propagation et la présence de DNSSEC.

Champ configTypeRequisDescription
hoststringNom à résoudre.
record_typestringA, AAAA, MX, TXT, CNAME, NS, PTR. Défaut : A.
expected_valuestringValeur attendue dans la réponse.
nameserverstringServeur DNS à interroger.
check_propagationbooléenComparer les réponses des NS faisant autorité. Défaut : false.
check_dnssecbooléenVérifier la présence de DNSSEC. Défaut : false.
{ "host": "web-prod-01.example.com", "record_type": "A", "expected_value": "10.0.0.12" }

Une incohérence de propagation ou un DNSSEC absent (quand demandé) produit un statut dégradé ; une valeur attendue absente produit un statut critique.

snmp — métriques d'équipement

Interroge un équipement via SNMP. Voir la page dédiée SNMP pour les modèles de métriques.

Champ configTypeRequisDescription
hoststringHôte ou IP de l'équipement.
portentierPort SNMP. Défaut : 161.
versionstring2c (défaut) ou 3.
communitystringCommunauté SNMP (v2c). Défaut : public.
templatestringModèle d'équipement (linux, cisco, mikrotik, ubiquiti, fortinet, generic).
oidstableauListe d'OID explicites (prioritaire sur le modèle).
security_level, username, auth_protocol, auth_passphrase, priv_protocol, priv_passphrasestringParamètres SNMPv3.
{ "host": "10.0.0.12", "version": "2c", "community": "public", "template": "linux" }

cert — certificat TLS

Inspecte le certificat TLS d'un service : jours avant expiration, émetteur, protocole, chaîne, chiffrements faibles.

Champ configTypeRequisDescription
hoststringHôte à inspecter.
portentierPort TLS. Défaut : 443.
warn_daysentierSeuil d'avertissement (jours avant expiration). Défaut : 30.
critical_daysentierSeuil critique. Défaut : 7.
{ "host": "web-prod-01.example.com", "port": 443, "warn_days": 30, "critical_days": 7 }

La sortie inclut expiry_days, issuer, protocol, cipher, l'état de la chaîne et les éventuels chiffrements faibles détectés.

content — contenu d'une page

Vérifie le contenu d'une page web selon plusieurs stratégies.

Champ configTypeRequisDescription
urlstringURL à récupérer.
modestringkeyword, selector, regex, diff. Déduit des autres champs si absent.
containsstringrequis en mode keywordSous-chaîne devant être présente.
not_containsstringSous-chaîne devant être absente.
selectorstringSélecteur CSS (mode selector).
regexstringrequis en mode regexMotif à extraire/valider.
diff_threshold_pctentierSeuil de variation en mode diff. Défaut : 10.
case_sensitivebooléenSensible à la casse. Défaut : false.
{ "url": "https://web-prod-01.example.com/", "mode": "keyword", "contains": "Bienvenue" }

Utilisation via le portail

La section Checks liste vos vérifications avec leur dernier état. Vous pouvez Ajouter une vérification (choix de l'hôte, du type et des paramètres), éditer, désactiver/supprimer, lancer à la demande et consulter le dernier résultat ainsi que les graphes d'historique.

Lister et consulter : tous les rôles. Créer, éditer, supprimer : owner et admin. Lancer à la demande : owner, admin, operator.

Utilisation via l'API

Lister et filtrer

GET /api/v2/checks?host_id=<uuid> — le filtre host_id est optionnel.

curl -s "https://api.secumon.secuaas.ovh/api/v2/checks?host_id=8f3b1c2a-2d44-4e1a-9b77-0a1b2c3d4e5f" \
  -H "Authorization: Bearer $SECUMON_TOKEN"
{
  "count": 1,
  "checks": [
    {
      "id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
      "host_id": "8f3b1c2a-2d44-4e1a-9b77-0a1b2c3d4e5f",
      "name": "ping web-prod-01",
      "check_type": "ping",
      "config": { "host": "10.0.0.12" },
      "interval_sec": 60,
      "timeout_sec": 10,
      "retries": 0,
      "enabled": true
    }
  ]
}

Créer une vérification

POST /api/v2/checkshost_id, name et check_type sont requis. L'hôte doit appartenir à votre organisation.

curl -s -X POST https://api.secumon.secuaas.ovh/api/v2/checks \
  -H "Authorization: Bearer $SECUMON_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "host_id": "8f3b1c2a-2d44-4e1a-9b77-0a1b2c3d4e5f",
    "name": "https web-prod-01",
    "check_type": "http",
    "config": { "url": "https://web-prod-01.example.com/health", "expected_status": 200 },
    "interval_sec": 30,
    "timeout_sec": 10
  }'

Réponse : 201 Created avec la vérification complète.

Modifier et supprimer

# Modification partielle (ex : élargir l'intervalle, désactiver)
curl -s -X PUT https://api.secumon.secuaas.ovh/api/v2/checks/1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d \
  -H "Authorization: Bearer $SECUMON_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "interval_sec": 120, "enabled": false }'

# Suppression
curl -s -X DELETE https://api.secumon.secuaas.ovh/api/v2/checks/1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d \
  -H "Authorization: Bearer $SECUMON_TOKEN"

Lancer à la demande

POST /api/v2/checks/:id/run force une exécution immédiate sans attendre le prochain cycle.

curl -s -X POST https://api.secumon.secuaas.ovh/api/v2/checks/1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d/run \
  -H "Authorization: Bearer $SECUMON_TOKEN"
{ "queued": true, "check_id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d", "run_id": "c0ffee00-1234-4abc-9def-0123456789ab" }

Lire le dernier résultat

GET /api/v2/checks/:id/last-result — voir la Prise en main.

Historique agrégé

GET /api/v2/metrics/checks?check_id=<uuid>&from=&to=&granularity= renvoie les résultats agrégés d'une vérification sur une période.

curl -s "https://api.secumon.secuaas.ovh/api/v2/metrics/checks?check_id=1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d&from=2026-06-23T00:00:00Z&to=2026-06-23T12:00:00Z&granularity=5min" \
  -H "Authorization: Bearer $SECUMON_TOKEN"
{
  "check_id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
  "from": "2026-06-23T00:00:00Z",
  "to": "2026-06-23T12:00:00Z",
  "granularity": "5min",
  "count": 144,
  "results": [ /* points agrégés (latence moyenne, taux d'échec...) */ ]
}

granularity accepte raw, 1min, 5min, 1h, 1d (résolution automatique si omise). Les dates sont au format RFC3339.

Cas d'usage

  • Surveillance d'une API : un check http avec expected_status: 200 et expected_body ciblant un marqueur de santé.
  • Anticiper l'expiration d'un certificat : un check cert avec warn_days: 30 pour être alerté un mois à l'avance.
  • Détecter une défiguration : un check content en mode diff ou keyword pour repérer une modification inattendue d'une page critique.
  • Valider une migration DNS : un check dns avec expected_value et check_propagation: true.

Astuces

  • Ajustez interval_sec au besoin réel : 30 s pour un service critique, 300 s pour une cible peu sensible — cela limite la charge et le bruit.
  • Utilisez retries pour éviter les faux positifs sur des cibles à latence variable.
  • Désactivez (enabled: false) plutôt que supprimer une vérification que vous comptez réactiver : l'historique est conservé.

On this page