RousselTMLEARNING

Observabilité

Monitoring de site web : disponibilité, surveillance HTTPS, certificats et performances

Mettre en place le monitoring d'un site web : surveillance de la disponibilité et du HTTPS, expiration des certificats, temps de réponse, Core Web Vitals avec le RUM, logs et alertes, avec des outils open source (Prometheus Blackbox Exporter, Grafana k6, Uptime Kuma) ou SaaS.

1. Que surveiller ? #

Quatre angles complémentaires.

Angles #

Les angles de surveillance d'un site web
QuestionMéthodeExemple d'outil
Le site répond-il, en HTTPS ?Test synthétique HTTP/HTTPS planifié depuis plusieurs régionsBlackbox Exporter, k6, Uptime Kuma, Datadog Synthetics
Le certificat expire-t-il bientôt ?Lecture de la date d'expiration TLSMétrique probe_ssl_earliest_cert_expiry
Les visiteurs ont-ils un site rapide ?Real User Monitoring (LCP, INP, CLS)Grafana Faro, Datadog RUM, Dynatrace RUM
Le serveur tient-il la charge ?Métriques et logs d'accès (codes 5xx, latence)Prometheus, Loki, Elasticsearch

2. Surveillance HTTPS avec Prometheus #

Open source et simple.

Blackbox Exporter #

# blackbox.yml
modules:
  https_2xx:
    prober: http
    timeout: 10s
    http:
      valid_status_codes: [200]
      fail_if_not_ssl: true
      preferred_ip_protocol: ip4
# prometheus.yml
scrape_configs:
  - job_name: site
    metrics_path: /probe
    params: { module: [https_2xx] }
    static_configs: [ { targets: [ "https://www.example.com", "https://shop.example.com" ] } ]
    relabel_configs:
      - { source_labels: [__address__], target_label: __param_target }
      - { source_labels: [__param_target], target_label: instance }
      - { target_label: __address__, replacement: blackbox:9115 }
# Alertes
probe_success == 0                                                   # site injoignable
(probe_ssl_earliest_cert_expiry - time()) / 86400 < 14               # certificat expirant sous 14 jours
histogram_quantile(0.95, rate(probe_duration_seconds_bucket[5m])) > 2
Bonne Pratique : Sondez depuis au moins deux emplacements et alertez quand plusieurs échouent : une coupure réseau locale ne doit pas réveiller l'astreinte.

3. Aller plus loin #

Parcours et expérience réelle.

Parcours et RUM #

  • Tests de parcours (connexion, panier) avec Grafana k6 en mode navigateur, planifiés ou en CI.
  • RUM avec Grafana Faro pour les Core Web Vitals réels par page, navigateur et pays.
  • Page de statut publique alimentée par les mêmes sondes.
  • Corrélation : une sonde en échec doit renvoyer vers les logs et les traces du backend.

Articles liés

Prometheus sur Kubernetes et l'interface web de Prometheus

Déployer Prometheus sur Kubernetes avec kube-prometheus-stack (Prometheus Operator, ServiceMonitor, Alertmana…

Real User Monitoring (RUM) et Core Web Vitals : mesurer ce que vivent les utilisateurs

Pourquoi observer le front-end, ce que mesure le RUM, les Core Web Vitals (LCP, INP, CLS) et leurs seuils, et…

Grafana Faro : architecture et installation

Installer Grafana Faro : le SDK web (npm ou CDN), le récepteur faro.receiver d'Alloy, l'envoi vers Loki et Te…

Pour aller plus loin