> For the complete documentation index, see [llms.txt](https://academy.cegedim.cloud/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://academy.cegedim.cloud/francais/surveillance/alarme-personalisee/alarme-personnalisee-didacticiels.md).

# Alarme personnalisée - Didacticiels

## Comment créer une Alarme Personnalisée ?

Rendez-vous dans **ITCare → Resources → URLs → Actions → Add Custom Check**

L'Alarme Personnalisée et l'Alarme Personnalisée Externe partagent la même interface. Pour la référence complète des champs, consultez [Alarme Personnalisée - Architecture](https://code.cegedim.cloud/product-management/gitbook/french-documentation/-/tree/main/surveillance/alarme-personalisee/alarme-personnalisee-architecture.md).

## Scénario réel : WordPress

WordPress est le CMS open source le plus utilisé au monde. Les scénarios suivants illustrent comment configurer des alarmes de surveillance sur une application WordPress.

### Scénario 1 — Vérifier que la page d'accueil est disponible et affiche le bon contenu

**Contexte** : votre site WordPress est en production. Vous souhaitez être alerté si la page d'accueil ne répond plus, ou si elle répond mais n'affiche plus le contenu attendu (base de données déconnectée, thème cassé, etc.).

WordPress affiche le contenu de la page d'accueil depuis la base de données. Si la base de données tombe, WordPress peut retourner un HTTP 200 (page chargée) mais afficher une erreur du type `"Error establishing a database connection"` à la place du contenu normal. Vérifier uniquement le code HTTP ne suffit pas — **il faut également contrôler le contenu**.

```mermaid
flowchart LR
    A[Sonde] -->|GET /| B[WordPress]
    B --> C{HTTP 200 ?}
    C -->|Non - 500:599| F1[❌ CRITICAL\nerreur serveur]
    C -->|Oui| D{Contenu ?}
    D -->|Contient 'Bienvenue sur mon site'| OK[✅ OK]
    D -->|Contient 'Error establishing\na database connection'| F2[❌ CRITICAL\nbase de données hors ligne]
    D -->|Ni l'un ni l'autre| W[⚠️ WARNING\ncontenu inattendu]
```

#### Configuration Alarme Personnalisée

| Champ                | Valeur                                     | Rôle                        |
| -------------------- | ------------------------------------------ | --------------------------- |
| URL                  | `https://monsite.example.com/`             | Page à surveiller           |
| **Contenu attendu**  | `Bienvenue sur mon site`                   | ✅ Si présent → OK           |
| **Contenu critique** | `Error establishing a database connection` | ❌ Si présent → CRITICAL     |
| **Code critique**    | `500:599`                                  | ❌ Erreur serveur → CRITICAL |

#### Configuration Alarme Personnalisée Externe

| Champ                    | Valeur                         | Rôle                                           |
| ------------------------ | ------------------------------ | ---------------------------------------------- |
| URL                      | `https://monsite.example.com/` | Page à surveiller                              |
| **Méthode de détection** | `Réussit si`                   | ✅ Si dans la plage et dans le contenu → OK     |
| **Statut par contenu**   | `Bienvenue sur mon site`       | Texte à rechercher dans le corps de la réponse |
| **Statut par code**      | `200:299`                      | Plage de codes HTTP acceptables                |

#### Comparaison des résultats

| Situation                                         | Alarme Personnalisée | Alarme Personnalisée Externe                         |
| ------------------------------------------------- | -------------------- | ---------------------------------------------------- |
| Site OK, contenu correct                          | ✅ OK                 | ✅ OK depuis Marseille et Paris                       |
| BDD hors ligne (HTTP 200 mais mauvais contenu)    | ❌ CRITICAL           | ❌ CRITICAL depuis Marseille et Paris                 |
| Serveur hors ligne (HTTP 500)                     | ❌ CRITICAL           | ❌ CRITICAL depuis Marseille et Paris                 |
| Site OK en interne mais inaccessible depuis Paris | ✅ OK                 | ❌ CRITICAL depuis Paris uniquement → problème réseau |

***

### Scénario 2 — Vérifier que l'authentification double facteur (2FA) fonctionne

**Contexte** : votre WordPress utilise un plugin 2FA (ex. WP 2FA). La connexion se fait en deux étapes : identifiants → puis code OTP. Vous souhaitez vérifier que l'endpoint d'authentification répond correctement et que le flux de connexion n'est pas cassé.

Plutôt que de tester avec un vrai code OTP, l'alarme vérifie que la page de connexion présente bien le challenge 2FA — confirmant que le mécanisme est actif et fonctionnel.

> 💡 Ce pattern — vérifier qu'un mécanisme de sécurité **présente correctement son challenge** — est une technique de surveillance standard. L'absence du formulaire OTP constitue le signal d'alerte.

```mermaid
flowchart LR
    A[Sonde] -->|GET /wp-login.php| B[WordPress 2FA]
    B --> C{Code HTTP ?}
    C -->|500:599| F1[❌ CRITICAL\nserveur hors ligne]
    C -->|200| D{Contenu ?}
    D -->|Contient 'Authenticator Code'| OK[✅ OK\n2FA active et fonctionnelle]
    D -->|Absent| W[⚠️ WARNING\n2FA potentiellement bypassée]
```

#### Configuration Alarme Personnalisée

| Champ                    | Valeur                                     | Rôle                                                  |
| ------------------------ | ------------------------------------------ | ----------------------------------------------------- |
| URL                      | `https://monsite.example.com/wp-login.php` | Endpoint d'auth à surveiller                          |
| **Contenu attendu**      | `Authenticator Code`                       | ✅ Le formulaire 2FA s'affiche → OK                    |
| **Contenu critique**     | `500:599`                                  | ❌ Erreur serveur → CRITICAL                           |
| **Code d'avertissement** | `200:200`                                  | ⚠️ HTTP 200 inattendu → la 2FA pourrait être bypassée |

#### Configuration Alarme Personnalisée Externe

| Champ                    | Valeur                                     | Rôle                                       |
| ------------------------ | ------------------------------------------ | ------------------------------------------ |
| URL                      | `https://monsite.example.com/wp-login.php` | Endpoint d'auth à surveiller               |
| **Méthode de détection** | `Réussit si`                               | ✅ Si dans la plage et dans le contenu → OK |
| **Statut par contenu**   | `Authenticator Code`                       | Texte attendu dans la réponse              |
| **Statut par code**      | `!= 5xx`                                   | Plage de succès serveur                    |

#### Comparaison des résultats

| Situation                                           | Alarme Personnalisée | Alarme Personnalisée Externe              |
| --------------------------------------------------- | -------------------- | ----------------------------------------- |
| Connexion OK, challenge 2FA affiché                 | ✅ OK                 | ✅ OK depuis Marseille et Paris            |
| Plugin 2FA désactivé (connexion sans OTP)           | ⚠️ WARNING           | ❌ CRITICAL (motif absent)                 |
| Serveur d'auth hors ligne (HTTP 500)                | ❌ CRITICAL           | ❌ CRITICAL depuis Marseille et Paris      |
| Auth OK en interne, inaccessible depuis l'extérieur | ✅ OK                 | ❌ CRITICAL → problème d'exposition réseau |

***

## Synthèse — Quand utiliser quoi ?

| Besoin                                                | Alarme Personnalisée   | Alarme Personnalisée Externe |
| ----------------------------------------------------- | ---------------------- | ---------------------------- |
| Surveiller qu'une page répond                         | ✅                      | ✅                            |
| Vérifier le contenu de la réponse                     | ✅                      | ✅                            |
| Détecter une panne applicative interne                | ✅                      | ✅                            |
| Simuler l'accès d'un utilisateur réel depuis internet | ❌                      | ✅                            |
| Détecter des problèmes réseau/CDN/DNS                 | ❌                      | ✅                            |
| Obtenir des résultats par localisation                | ❌                      | ✅                            |
| Inclus sans surcoût                                   | ✅ (avec Load Balancer) | ❌ Option payante             |

> 💡 **Recommandation** : utilisez les deux. L'Alarme Personnalisée surveille la santé applicative en continu sans surcoût. L'Alarme Personnalisée Externe garantit que vos utilisateurs réels peuvent effectivement accéder à votre application depuis internet.
>
> Pour souscrire à l'Alarme Personnalisée Externe, contactez votre **SDM**.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://academy.cegedim.cloud/francais/surveillance/alarme-personalisee/alarme-personnalisee-didacticiels.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
