Création d'un Webhook
Les Webhooks sont des pages Web développées par vos soins qui prennent en charge le traitement des informations des alertes envoyées par Hitflow. Lorsque vous créez un contact susceptible de recevoir les alertes, vous avez la possibilité de choisir l'envoi via "Webhook". En choisissant cette option, vous devrez indiquer l'URL de la page qui traitera automatiquement l'alerte.
- Sommaire
- Les différentes alertes
- Sécurité des échanges
- Alertes de disponibilités
- Alertes de serveurs
- Alertes de certificats SSL
- Alertes de noms de domaines
Liste des alertes
À ce jour, un Webhook peut recevoir des données pour les événements suivants :
- L'état de disponibilité d'un site Web (ou serveur) indiquant s'il est perturbé ou à nouveau fonctionnel.
- Les informations sur l'utilisation des ressources d'un serveur lorsqu'un seuil est dépassé.
- L'état d'un certificat SSL suite à une modification de sa validité ou d'un attribut le composant.
- L'expiration prochaine d'un nom de domaine ou la modification du registre.
Pour chaque événement, un certain nombre de données sont transmises vous permettant un traitement adapté à chaque type d'alertes.
Sécurité des échanges
Pour sécuriser l'accès à la page recevant les événements, nous vous recommandons, d'une part, d'utiliser le protocole HTTPS avec un certificat SSL valide et d'autre part, limiter l'accès à cette page grâce au jeton d'authentification disponible dans l'entête de la requête.
Jeton d'authentification du webhook
Le jeton d'authentification du contact sera généré lorsque vous aurez enregistré une URL pour une méthode de type "webhook". Cette chaîne de 32 caractères est alors disponible dans la section "Paramétrage des alertes" du formulaire d'édition du contact.
Lors de l'envoi d'une alerte au webhook, le jeton d'authentification sera envoyé dans l'entête "Hitflow-Webhook-Token" de la requête.
Si vous ajoutez plusieurs Webhook à un contact, notez que le jeton sera le même pour tous.
Comment générer un nouveau jeton ?
Dans le cas où vous souhaitez générer un nouveau jeton d'authentification pour le contact, vous devez retirer toutes les méthodes de type "webhook" et enregistrer une première fois.
Une fois la modification prise en compte, ajoutez une nouvelle méthode de type "Webhook", renseignez l'adresse URL et sauvegardez la modification. Un nouveau token d'authentification sera alors généré et disponible dans le formulaire du contact dans la section "Paramétrage des alertes".
Données envoyées au webhook
Les données envoyées au Webhook sont stockées dans un objet au format JSON. La structure de l'objet peut varier suivant le type d'événement envoyé.
Ce type est défini dans l'attribut nommé "event_type" et peut avoir les valeurs suivantes :
- uptime : alertes de disponibilités
- server : alertes de serveurs
- certificate : alertes de certificats SSL
- domain : alertes de noms de domaines
Pour chaque événement, un certain nombre de données sont transmises vous permettant un traitement adapté à chaque type d'alertes.
Alertes de disponibilités
À la suite d'un test de disponibilité, une alerte avec les données ci-dessous peut être envoyée au Webhook.
Nom | Type | Description |
---|---|---|
event_type | String | La valeur de cet attribut est toujours "uptime" |
event_status | String | La valeur est “down” pour un service indisponible et “up” lorsque l'accès est à nouveau possible |
id | String | Identifiant du test dans notre base de données |
name | String | Nom du test défini dans votre manager |
type | String | Type de test du service : ICMP, TCP, HTTP, HTTPS |
host | String | Adresse IP ou nom de domaine |
port | Int | Port de connexion |
status | Int | Code numérique indiquant l'état du service |
down_since | Int | Date et heure (timestamp) à partir duquel le service a été détecté comme indisponible |
up_since | Int | Date et heure (timestamp) à partir duquel le service est à nouveau en ligne |
message | String | Contiens le message d'alerte envoyé au contact |
Alertes de serveurs
Les alertes concernant un serveur sont envoyées lorsque le rapport d'un serveur est reçu et que l'état du serveur est changé ou lorsqu'aucun rapport n'a été reçu depuis trop longtemps.
Nom | Type | Description |
---|---|---|
event_type | String | La valeur de cet attribut est toujours est "server" |
event_status | String | La valeur est “down” pour un serveur indisponible et “up” lorsque l'accès est à nouveau possible |
id | String | Identifiant du serveur dans notre base de données |
name | String | Nom du serveur défini dans votre manager |
os | String | Système d'exploitation du serveur |
remote_addr | String | Adresse IP du serveur |
status | Int | Code numérique indiquant l'état du serveur |
down_since | Int | Date et heure (timestamp) à partir duquel le serveur a été détecté comme en erreur |
up_since | Int | Date et heure (timestamp) à partir duquel le serveur est à nouveau opérationnel |
message | String | Contiens le message d'alerte envoyé au contact |
Alertes de certificats SSL
Dans le cas d'un changement d'état d'un certificat (valide/invalide), d'une modification d'un attribut qui compose le certificat SSL est modifié ou que le certificat va ou a expiré, une alerte est alors envoyée au webhook.
Nom | Type | Description |
---|---|---|
event_type | String | La valeur de cet attribut est toujours est "certificate". |
event_status | String | La valeur peut être :
|
id | String | Identifiant du test du certificat SSL dans notre base de données |
name | String | Nom du test de certificat SSL défini dans votre manager |
url | String | URL avec laquelle le test est effectué |
status | Int | Code numérique indiquant l'état du certificat SSL |
down_since | Int | Date et heure (timestamp) à partir duquel le certificat SSL a été détecté en erreur |
up_since | Int | Date et heure (timestamp) à partir duquel le certificat SSL est à nouveau valide |
message | String | Contiens le message d'alerte envoyé au contact |
Dans le cas où “event_status” a pour valeur “reminder”, les attributs “down_since” et “up_since” n'existent pas et sont remplacés par “time_expire” indiquant la date à laquelle le nom de domaine va expirer
Alertes de noms de domaines
Une alerte est envoyée au webhook dans les cas où un nom de domaine voit un de ses attributs modifiés, qu'il va ou a expiré ou qu'un problème relatif à sa résolution est détecté.
Nom | Type | Description |
---|---|---|
event_type | String | La valeur de cet attribut est toujours est "domain" |
event_status | String | La valeur peut être :
|
id | String | Identifiant du test du nom de domaine dans notre base de données |
name | String | Nom du test de nom de domaine défini dans votre manager |
domain_name | String | Nom de domaine sur lequel est effectué le test |
status | Int | Code numérique indiquant l'état du nom de domaine |
down_since | Int | Date et heure (timestamp) à partir duquel le nom de domaine a été détecté en erreur |
up_since | Int | Date et heure (timestamp) à partir duquel le nom de domaine est à nouveau dans un état “Ok" |
message | String | Contiens le message d'alerte envoyé au contact |
Dans le cas où “event_status” a pour valeur “reminder”, les attributs “down_since” et “up_since” n'existent pas et sont remplacés par “time_expire” indiquant la date à laquelle le nom de domaine va expirer