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
| Champ | Type | Requis | Description |
|---|---|---|---|
id | uuid | (généré) | Identifiant unique. |
host_id | uuid | ✅ | Hôte auquel la vérification est rattachée. |
name | string | ✅ | Nom lisible (ping web-prod-01). |
check_type | string | ✅ | Type de sonde : ping, http, tcp, dns, snmp, cert, content. |
config | objet | — | Paramètres propres au type (voir ci-dessous). |
interval_sec | entier | — | Fréquence d'exécution. Défaut : 60. |
timeout_sec | entier | — | Délai d'expiration. Défaut : 30. |
retries | entier | — | Nombre de réessais avant échec. Défaut : 0. |
enabled | booléen | — | true par défaut. Une vérification désactivée n'est plus planifiée. |
tags | objet | — | Étiquettes clé/valeur. |
Statut d'un résultat
status | Sens |
|---|---|
0 | OK |
1 | Dégradé |
2 | Critique |
3 | Inconnu |
Les 7 types de vérifications
ping — disponibilité ICMP
Vérifie qu'un hôte répond et mesure la latence.
Champ config | Type | Requis | Description |
|---|---|---|---|
host | string | ✅ | Hô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 config | Type | Requis | Description |
|---|---|---|---|
url | string | ✅ | URL à interroger. |
method | string | — | Méthode HTTP. Défaut : GET. |
expected_status | entier | — | Code attendu exact (mode strict). 0 = mode permissif (2xx/3xx = OK). |
expected_body | string | — | Sous-chaîne devant être présente dans le corps. |
headers | objet | — | En-têtes à envoyer. |
follow_redirects | booléen | — | Suivre 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 config | Type | Requis | Description |
|---|---|---|---|
host | string | ✅ | Hôte ou IP. |
port | entier | ✅ | Port TCP. |
send_data | string | — | Données à envoyer après connexion. |
expect_data | string | — | Sous-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 config | Type | Requis | Description |
|---|---|---|---|
host | string | ✅ | Nom à résoudre. |
record_type | string | — | A, AAAA, MX, TXT, CNAME, NS, PTR. Défaut : A. |
expected_value | string | — | Valeur attendue dans la réponse. |
nameserver | string | — | Serveur DNS à interroger. |
check_propagation | booléen | — | Comparer les réponses des NS faisant autorité. Défaut : false. |
check_dnssec | booléen | — | Vé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 config | Type | Requis | Description |
|---|---|---|---|
host | string | ✅ | Hôte ou IP de l'équipement. |
port | entier | — | Port SNMP. Défaut : 161. |
version | string | — | 2c (défaut) ou 3. |
community | string | — | Communauté SNMP (v2c). Défaut : public. |
template | string | — | Modèle d'équipement (linux, cisco, mikrotik, ubiquiti, fortinet, generic). |
oids | tableau | — | Liste d'OID explicites (prioritaire sur le modèle). |
security_level, username, auth_protocol, auth_passphrase, priv_protocol, priv_passphrase | string | — | Paramè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 config | Type | Requis | Description |
|---|---|---|---|
host | string | ✅ | Hôte à inspecter. |
port | entier | — | Port TLS. Défaut : 443. |
warn_days | entier | — | Seuil d'avertissement (jours avant expiration). Défaut : 30. |
critical_days | entier | — | Seuil 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 config | Type | Requis | Description |
|---|---|---|---|
url | string | ✅ | URL à récupérer. |
mode | string | — | keyword, selector, regex, diff. Déduit des autres champs si absent. |
contains | string | requis en mode keyword | Sous-chaîne devant être présente. |
not_contains | string | — | Sous-chaîne devant être absente. |
selector | string | — | Sélecteur CSS (mode selector). |
regex | string | requis en mode regex | Motif à extraire/valider. |
diff_threshold_pct | entier | — | Seuil de variation en mode diff. Défaut : 10. |
case_sensitive | booléen | — | Sensible à 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 :
owneretadmin. 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/checks — host_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
httpavecexpected_status: 200etexpected_bodyciblant un marqueur de santé. - Anticiper l'expiration d'un certificat : un check
certavecwarn_days: 30pour être alerté un mois à l'avance. - Détecter une défiguration : un check
contenten modediffoukeywordpour repérer une modification inattendue d'une page critique. - Valider une migration DNS : un check
dnsavecexpected_valueetcheck_propagation: true.
Astuces
- Ajustez
interval_secau besoin réel : 30 s pour un service critique, 300 s pour une cible peu sensible — cela limite la charge et le bruit. - Utilisez
retriespour é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é.