1. Collecter #
Agent et sources.
Configuration #
# datadog.yaml
logs_enabled: true
# conf.d/app.d/conf.yaml
logs:
- type: file
path: /var/log/app/*.log
service: checkout
source: python
log_processing_rules:
- type: mask_sequences
name: masquer_cartes
pattern: '\b\d{4}[ -]?\d{4}[ -]?\d{4}[ -]?\d{4}\b'
replace_placeholder: "[CARTE MASQUÉE]"
- type: exclude_at_match
name: sans_healthcheck
pattern: GET /healthBonne Pratique : Masquer et filtrer dans l'agent évite d'envoyer (et de payer) des données inutiles ou sensibles.
2. Structurer #
Pipelines et facettes.
Pipelines #
Les pipelines transforment les logs à l'ingestion : un grok parser extrait des attributs, des remappers désignent la date, le statut et le service, d'autres processeurs enrichissent (géolocalisation IP, user-agent, tables de correspondance). Les logs de sources connues (nginx, postgres...) ont des pipelines d'intégration prêts.
regle_acces %{ip:network.client.ip} - - \[%{date("dd/MMM/yyyy:HH:mm:ss Z"):date}\] "%{word:http.method} %{notSpace:http.url} HTTP/%{number:http.version}" %{integer:http.status_code} %{integer:network.bytes_written}Un attribut devient une facette (ou une mesure, pour les nombres) pour être filtré et agrégé dans l'explorateur :
service:checkout status:error @http.status_code:>=500 -@http.url:"/health"
@network.client.ip:10.0.* @duration:>20000000003. Maîtriser le volume #
Logging without Limits.
Ingestion, index, archives #
| Étape | Coût | Usage |
|---|---|---|
| Ingestion | Par Go | Tous les logs passent par les pipelines |
| Métriques générées | Faible | Compter erreurs et latences sans indexer |
| Indexation | Par million d'événements, selon la rétention | Recherche rapide |
| Archives | Stockage objet (le vôtre) | Conservation longue, réhydratation à la demande |
- Filtres d'exclusion par index (par exemple : n'indexer que 10 % des logs
status:info). - Plusieurs index avec des rétentions différentes (erreurs 30 jours, debug 3 jours).
- Quota journalier par index pour éviter les surprises.
Erreur Courante : Un log exclu de l'index n'est pas perdu s'il est archivé, mais il n'est plus consultable sans réhydratation. Décidez avec les équipes ce qui doit rester cherchable immédiatement.
Mon suivi
Connectez-vous pour suivre votre progression et prendre des notes. Se connecter
Articles recommandés
Comprendre la notion de score
Le concept de score va permettre à Elasticsearch de classer vos documents par pertinence lors d u...
Elastic Common Schema (ECS) : le format standard des données Elastic et son rôle dans Elastic SIEM
Comprendre l'Elastic Common Schema (ECS) : format standard des champs dans Elasticsearch, convent...
Grail : Dynatrace Data Lakehouse
Désormais vous disposez dans Dynatrace (SaaS) d'un Data Lakehouse nommé Grail dont vous pouvez co...
C'est quoi l'observabilité
La capacité à connaître l'état interne d'un système à partir des données que cette dernière émet...
Les types de transactions dans les base de données
Cet article détaille les différences entre trois concepts essentiels dans l'exécution des instruc...
Différences entre Technologies et Services dans Dynatrace
Dans Dynatrace, les concepts de 'Technologie' et de 'Services' aident à organiser et surveiller l...
Dynatrace : Différences entre SQL Modifications, SQL Queries or Procedures, et SQL Transactions
Cet article détaille les différences entre trois concepts essentiels dans l'exécution des instruc...
Licences Dynatrace : modèle par unités et consumption-based licensing (DPS)
Comprendre la facturation Dynatrace : l'ancien modèle de licences segmentées par unités (Host Uni...
Les Types de Services Dynatrace : Comprendre et Optimiser Votre Surveillance Applicative
Découvrez les différents types de services que Dynatrace peut surveiller, leur rôle, et comment l...