Passer au contenu principal

Filtrage

Le filtrage des journaux dans LogCentral vous permet de réduire les coûts de stockage en éliminant les journaux non désirés avant leur enregistrement.

Mis à jour il y a plus d'un mois
Image d'un filtre abstrait

Vue d'ensemble

Cette fonctionnalité utilise des expressions textes simples ou régulières (regex) pour identifier et supprimer automatiquement les journaux qui correspondent à vos critères de filtrage.

Pourquoi utiliser le filtrage ?

Le filtrage des journaux offre plusieurs avantages :

  • Réduction des coûts : Diminuez votre volume de stockage en éliminant les journaux inutiles

  • Optimisation des performances : Moins de données à traiter signifie des recherches plus rapides

  • Meilleure lisibilité : Concentrez-vous sur les journaux qui comptent vraiment

  • Conformité : Excluez automatiquement les données sensibles ou non pertinentes

Comment accéder au filtrage

Le filtrage des journaux est configuré au niveau de l'emplacement. Accédez à la page de détails de votre emplacement pour gérer vos règles de filtrage.

Fonctionnalités principales

Activation du système de filtrage

Vous pouvez activer ou désactiver le système de filtrage à tout moment. L'activation du filtrage applique immédiatement vos règles configurées aux nouveaux journaux entrants.

Gestion des patterns regex

  • Ajout de patterns : Créez des expressions régulières pour identifier les journaux à supprimer

  • Limite de patterns : Jusqu'à 50 patterns peuvent être configurés

  • Longueur maximale : Chaque pattern peut contenir jusqu'à 500 caractères

  • Validation : Le système vérifie automatiquement la validité de vos expressions régulières

Exemple de regex

Un de nos clients utilise cette règle pour ses logs Cisco Meraki afin de diminuer la redondance de certaines informations:

(pattern:\\\\s*allow all|flows allow|ip_flow_end)

Test des règles de filtrage

Avant d'appliquer vos règles, vous pouvez les tester contre vos journaux existants :

  • Période de test : Testez vos patterns sur les 7 derniers jours de journaux

  • Aperçu des correspondances : Visualisez des exemples de journaux qui seront supprimés

  • Estimation des économies : Découvrez le pourcentage de volume qui sera économisé

Visualisation des économies

Le système affiche des statistiques détaillées sur l'impact de vos règles :

  • Pourcentage de réduction : Volume de journaux qui sera éliminé

  • Économies en octets : Quantité exacte de données qui ne sera pas stockée

  • Exemples de correspondances : Lignes de journaux qui correspondent à vos patterns

Guide de syntaxe Regex

LogCentral utilise des expressions régulières standard (regex) pour faire correspondre les messages de logs. Voici ce qu’il faut savoir :

Syntaxe de base

  • Texte littéral : correspond exactement au texte (ex : error correspond à « error »)

  • Point (.) : correspond à n’importe quel caractère unique

  • Astérisque (*) : répète le caractère précédent 0 ou plusieurs fois

  • Signe plus (+) : répète le caractère précédent 1 ou plusieurs fois

  • Point d’interrogation (?) : rend le caractère précédent optionnel

  • Barre verticale (|) : opérateur OU (ex : error|warning correspond à l’un ou l’autre)

  • Classes de caractères : [abc] correspond à a, b ou c

  • Classes négatives : [^abc] correspond à tout sauf a, b ou c

  • Ancres : ^ pour le début du message, $ pour la fin

Patterns courants

  • \d - un chiffre (0–9)

  • \w - un caractère alphanumérique (lettre, chiffre, ou underscore)

  • \s - un caractère d’espace (tab, espace, retour ligne)

  • \b - limite de mot

  • .* - n’importe quelle suite de caractères (à utiliser avec prudence)

Exemples rapides

  • Supprimer tous les logs DEBUG : DEBUG

  • Supprimer les vérifications de santé : \/health|\/ping|\/status

  • Supprimer une IP spécifique : 192\.168\.1\.100 (note : il faut échapper les points)

  • Supprimer une plage de codes HTTP : HTTP [45]\d{2} (correspond à 400–599)

  • Supprimer plusieurs mots-clés : (test|staging|development)


Limites & sécurité des patterns

Pour protéger les performances du système, certains types de patterns sont interdits.

Limites techniques

  • Maximum 50 patterns par location

  • Maximum 500 caractères par pattern

  • Maximum 10 000 caractères au total pour l’ensemble des patterns

Types de patterns bloqués

Pour des raisons de sécurité et de performance, ces patterns sont automatiquement rejetés :

  • Trop de jokers comme .*.*.* (provoque du backtracking catastrophique)

  • Répétitions trop larges comme .{1000} ou .{500,}

  • Groupes imbriqués profondément (plus de 3 niveaux)

  • Séquences d’échappement trop longues (hexadécimal ou unicode démesuré)

Points importants

  • Non sensible à la casse par défaut : ERROR correspondra à "error", "Error" et "ERROR"

  • Les patterns sont validés : une syntaxe invalide est rejetée avec un message d’erreur explicite

  • Échappement sécurisé : les caractères spéciaux sont automatiquement échappés pour la sécurité

Fonctionnement des filtres

Ce qui est évalué

Les filtres s’appliquent sur le champ MESSAGE des logs — c’est-à-dire le contenu réel du message, et non les métadonnées comme l’horodatage, le hostname ou le facility.

Exemple de log :

2024-01-15 10:30:45 server1 nginx: GET /api/health HTTP/1.1 200 OK

Le pattern s’applique sur :
GET /api/health HTTP/1.1 200 OK

Logique avec plusieurs patterns

Quand plusieurs patterns sont configurés :

  • Un log est supprimé s’il correspond à n’importe lequel des patterns

  • Tous les patterns fonctionnent avec une logique OU

  • Si un log correspond au patterns #1 ou #2 ou #3… → il est supprimé

  • Les logs ne correspondant à aucun pattern sont conservés normalement

Conseils de performance

  • Les patterns spécifiques sont plus rapides que les jokers généraux

  • Placez les patterns les plus fréquents en premier pour accélérer le filtrage

  • Évitez .* au début d’un pattern quand c’est possible

  • Testez les patterns avant de les activer

  • Consultez l’aperçu d’économie avant d’enregistrer vos filtres


Exemples complets de patterns

Logs réseau & firewall

# Supprimer toutes les règles ALLOW flows? allow  # Supprimer les messages de connexion établie connection established  # Supprimer certains protocoles (UDP|ICMP) packet  # Supprimer le trafic IP privé (10\.|172\.(1[6-9]|2[0-9]|3[01])\.|192\.168\.)  # Supprimer le bruit de scan de ports SYN_RECV|port scan detected  # Supprimer les connexions VPN réussies VPN connection established

Cisco Meraki (exemple client)

# Supprimer les messages inutiles Meraki (pattern:\s*allow all|flows allow|ip_flow_end)  # Supprimer les messages DHCP DHCP (lease|request|ack)  # Supprimer les logs de trafic normal security_filtering_disposition_change

Logs de serveur web

# Supprimer les requêtes réussies (codes 200–299) HTTP [2]\d{2}  # Supprimer les requêtes de fichiers statiques \.(css|js|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)  # Supprimer les robots et crawlers (bot|crawler|spider|scraper)  # Supprimer certains endpoints \/(favicon\.ico|robots\.txt)  # Supprimer les endpoints de santé \/(health|ping|status|ready|alive)

Logs applicatifs

# Supprimer les logs verbeux (DEBUG|TRACE|VERBOSE)  # Supprimer les logs d’un package bruyant com\.example\.noisy\.Logger  # Supprimer les opérations réussies (status.*success|completed successfully|operation succeeded)  # Supprimer les hits du cache cache hit for key  # Supprimer les heartbeats réguliers heartbeat (sent|received)  # Supprimer les rafraîchissements de session session refreshed for user

Logs de base de données

# Supprimer les requêtes rapides (< 3s) Query_time: [0-2]\.\d+  # Supprimer certains types de requêtes SELECT.*FROM cache_  # Supprimer les messages du pool de connexions (connection pool|pool size|connections? (opened|closed))  # Supprimer les réplications réussies replication.*success  # Supprimer les checkpoints checkpoint (starting|complete)

Système & infrastructure

# Supprimer les succès de cron CRON.*session (opened|closed)  # Supprimer les backups réussis backup completed successfully  # Supprimer les vérifications d’espace disque OK disk usage.*OK  # Supprimer les renouvellements de certificat certificate renewed successfully  # Supprimer les redémarrages de service réussis service (started|stopped|restarted) successfully

Sécurité & authentification

# Supprimer les connexions réussies (garder les échecs) login successful|authentication succeeded  # Supprimer les rafraîchissements de token (garder les erreurs) token refreshed  # Supprimer les scans de sécurité réussis security scan.*passed|no threats detected  # Supprimer les changements de mot de passe réussis password changed successfully

Échapper les caractères spéciaux

Certains caractères ont une signification particulière en regex.
Pour les utiliser littéralement, il faut les échapper avec un antislash (\).

Caractères à échapper

Caractère

Forme échappée

Exemple

.

\.

Adresse IP : 192\.168\.1\.1

*

\*

Littéral : error \* occurred

+

\+

Littéral : count \+ 1

?

\?

Littéral : what\?

[ ]

\[ \]

array\[0\]

( )

\( \)

func\(\)

{ }

\{ \}

\{id\}

^

\^

2\^8

$

\$

\$100

`

`

|

\

\\

C:\\Windows

Exemple

Pour correspondre à :
Error: file not found (code: 404)
Utilisez :
Error: file not found \(code: 404\)

Pour correspondre à :
Price: $99.99
Utilisez :
Price: \$99\.99


Bonnes pratiques

✅ À faire

  • Testez les patterns avec l’aperçu avant activation

  • Commencez par des patterns précis, pas trop généraux

  • Documentez la raison de chaque pattern (commentaires d’équipe)

  • Surveillez l’efficacité des filtres via les statistiques d’économie

  • Gardez des patterns lisibles (scindez les patterns complexes)

  • Vérifiez vos logs après activation

  • Utilisez la fonction “Exemples correspondants” pour tester vos patterns

❌ À éviter

  • Utiliser des patterns trop larges comme .* seul

  • Filtrer des logs utiles au débogage

  • Activer un filtre sans test préalable

  • Créer des patterns redondants (fusionnez-les)

  • Filtrer des logs de sécurité (gardez les échecs d’authentification)

  • Oublier de réviser régulièrement vos filtres

  • Supprimer des erreurs sauf si vous êtes certain qu’elles sont inoffensives

Cas d'usage courants

Éliminer les logs de santé répétitifs

Supprimez les vérifications de santé (health checks) qui génèrent du bruit sans valeur :

GET /health.*200 OK

Filtrer les logs de debug en production

Excluez les messages de debug qui ne sont pas nécessaires en environnement de production :

\[DEBUG\].*

Supprimer les logs de services tiers

Éliminez les journaux générés par des services externes non critiques :

external-service\.example\.com.*

Économies de stockage

Le filtrage peut réduire significativement vos coûts de stockage. Le système calcule automatiquement :

  • Le pourcentage de volume qui sera économisé

  • La quantité de données (en octets) qui ne sera pas stockée

  • Des exemples concrets de journaux qui seront supprimés

Ces informations vous aident à prendre des décisions éclairées sur vos règles de filtrage et à optimiser votre utilisation de LogCentral.

Bonnes pratiques

  • Testez toujours vos patterns avant de les activer en production

  • Commencez petit : Ajoutez quelques règles simples et observez les résultats

  • Surveillez les économies : Vérifiez régulièrement l'impact de vos règles

  • Documentez vos patterns : Gardez une trace de la raison de chaque règle de filtrage

  • Soyez prudent : Assurez-vous de ne pas filtrer des journaux importants par erreur

Permissions requises

La gestion des règles de filtrage nécessite des permissions appropriées au niveau de l'emplacement. Si vous ne pouvez pas modifier les règles, contactez l'administrateur de votre organisation.

Avez-vous trouvé la réponse à votre question ?