RousselTMLEARNING

Article · OpenObserve : de la découverte à l'expertise

Alertes et pipelines

1. Les alertes #

Du flux à la notification.

La chaîne #

Chaîne d'une alerte dans OpenObserve
Une alerte a besoin d'une destination, qui a elle-même besoin d'un modèle.

L'ordre de création compte : le modèle, puis la destination qui l'utilise, puis l'alerte. Nous avons testé cette chaîne avec un vrai webhook, qui a reçu : {"alerte":"erreurs_paiement","flux":"commandes","nb":"1"}.

A='root@example.com:Complexpass#123'
curl -u "$A" -H 'Content-Type: application/json' \
  http://localhost:5080/api/default/alerts/templates \
  -d '{"name":"tpl_simple","type":"http","title":"",
       "body":"{\"alerte\":\"{alert_name}\",\"flux\":\"{stream_name}\",\"nb\":\"{alert_count}\"}"}'

curl -u "$A" -H 'Content-Type: application/json' \
  http://localhost:5080/api/default/alerts/destinations \
  -d '{"name":"webhook_tp","url":"http://echo:8080/alerte","method":"post",
       "skip_tls_verify":false,"template":"tpl_simple","headers":{},"type":"http"}'
A='root@example.com:Complexpass#123'
curl -u "$A" -H 'Content-Type: application/json' \
  http://localhost:5080/api/v2/default/alerts \
  -d '{"name":"erreurs_paiement","stream_type":"logs","stream_name":"commandes",
       "is_real_time":false,"enabled":true,"owner":"root@example.com","folder_id":"default",
       "description":"Au moins une erreur en une minute","row_template":"","context_attributes":{},
       "query_condition":{"type":"sql","conditions":null,"promql":null,"promql_condition":null,
         "aggregation":null,"vrl_function":null,"multi_time_range":null,
         "sql":"SELECT count(*) AS nb FROM commandes WHERE level='"'"'error'"'"'"},
       "trigger_condition":{"period":1,"threshold":1,"frequency":1,"cron":"","operator":">=",
         "silence":0,"frequency_type":"minutes","timezone":null,"tolerance_in_seconds":null},
       "destinations":["webhook_tp"]}'

Planifiée ou temps réel #

TypeÉvaluationUsage
PlanifiéeUne requête SQL ou PromQL exécutée à intervalle régulierSeuils et agrégats : taux d’erreur, percentile
Temps réelÉvaluée à l’ingestion, événement par événementÉvénement précis à signaler aussitôt

Le piège du webhook local #

Message Destination URL blocked by SSRF guard ? Par sécurité, OpenObserve refuse les webhooks vers une adresse privée : conteneur voisin, réseau interne, 127.0.0.1. Autorisez précisément vos cibles avec ZO_SSRF_ALLOWED_HOSTS ou ZO_SSRF_ALLOWED_CIDRS. ZO_SKIP_SSRF_CHECKS=true désactive la protection : à réserver à une maquette.

2. Les pipelines #

Traiter les données avant de les stocker.

Temps réel et planifiés #

Un pipeline enchaîne une source, des conditions, des fonctions et une ou plusieurs destinations. Il se construit graphiquement dans l'interface.

TypeSourceUsage typique
Temps réelUn flux, à l’ingestionMasquer un champ, enrichir, router vers un autre flux
PlanifiéUne requête exécutée périodiquementProduire un flux d’agrégats, comme une recording rule
Bonne pratique : filtrez et masquez les données sensibles dans un pipeline temps réel, avant le stockage. Un filtre à la lecture ne retire rien du disque.

📄 Alertes et pipelines dans OpenObserve →

Mon suivi

  • ⏱ Durée estimée : ≈ 5 min

Connectez-vous pour suivre votre progression et prendre des notes. Se connecter

💬 Poser une question

Articles recommandés

Explorer ses données dans OpenObserve : SQL, PromQL et VRL

Chercher en SQL, interroger les métriques en PromQL, optimiser un flux (index, partitions, rétent...

Installer OpenObserve et ingérer ses premières données

Installer OpenObserve avec Docker Compose ou le binaire, le configurer par ses variables ZO_*, en...

OpenObserve : architecture et concepts

Comprendre OpenObserve : stockage Parquet, modes de déploiement, rôles (router, ingester, querier...

Envoyer ses logs, métriques et traces vers OpenObserve

Les points de réception d'OpenObserve : JSON, bulk, OTLP avec le Collector OpenTelemetry, Prometh...

OpenObserve en production : bonnes pratiques

Choisir son mode de déploiement, organiser ses flux, sécuriser, sauvegarder et superviser OpenObs...

Transformer avec VRL et tester ses pipelines Vector

Le langage VRL (Vector Remap Language) : analyse de logs (JSON, regex, syslog), gestion des erreu...

Alertes, connecteurs et SLO dans Kibana

Créer des règles d'alerte dans Kibana (requête Elasticsearch, ES|QL, seuil personnalisé, logs), c...

OpenTelemetry Collector, Grafana Alloy et Bindplane : comparer trois approches des pipelines de télémétrie

Comparatif détaillé de trois façons de gérer des pipelines de télémétrie : l'OpenTelemetry Collec...

Configurations Bindplane : sources, processeurs, destinations et versions

Construire des configurations Bindplane : sources, processeurs et destinations, éditeur de pipeli...

Soutenir

♥ SOUTENIR

Soutenez RousselTM Learning

Les formations, articles, TP et attestations restent gratuits et sans publicité intrusive. Une contribution libre, du montant de votre choix, finance l’hébergement, les environnements de TP et l’écriture de nouveaux contenus.

Contribuer avec PayPal Montant libre · carte bancaire ou compte PayPalEn savoir plus
QR code PayPal
Ou scannez ce QR code avec votre téléphone

Merci, chaque contribution compte !