Filtres et chaînes de traitement Logstash
Explorez la configuration avancée de Logstash, notamment la logique conditionnelle, les chaînes de traitement multiples et les filtres personnalisés pour transformer des données complexes.
Filtres et chaînes de traitement Logstash est une leçon System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry), et ta progression se synchronise sur le web et l'application CoddyKit. Le cours System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
Intro to Advanced Logstash
Welcome to an advanced look at Logstash! So far, you've learned how to get logs into Logstash and apply basic filters. But what happens when your data gets more complex?
In this lesson, we'll explore powerful techniques like conditional logic, managing multiple pipelines, and leveraging advanced filters for intricate data transformations. This will help you handle real-world logging challenges.
Conditional Logic: The 'if' Statement
Not all logs are created equal! You might have different log formats coming from various services, or you might want to process events differently based on their content.
Conditional logic allows Logstash to apply filters or outputs only when certain conditions are met. This is achieved using if statements, similar to programming languages.
- Use
ifto check field values, tags, or other event properties. - Apply specific filters or actions only to matching events.
Conditional Logic in Action
Let's see a simple example. We'll use if to check if a field named type exists and has a specific value. If it does, we'll add a tag.
Try inputting {"message": "Hello", "type": "app_log"} and then {"message": "World"} to see the difference.
input {
stdin {
codec => json
}
}
filter {
if [type] == "app_log" {
mutate {
add_tag => ["processed_app_log"]
}
}
}
output {
stdout {
codec => rubydebug
}
}Beyond 'if': Else and Else If
Just like in programming, you can extend your conditional logic with else if and else blocks. This allows for more complex branching and ensures every event is handled appropriately.
Logstash executes these conditions sequentially. The first matching condition's block is executed, and then it moves on.
if [field] == "value": Executes if the condition is true.else if [another_field] == "another_value": Executes if the firstifwas false, and this condition is true.else: Executes if none of the precedingiforelse ifconditions were true.
Multiple Pipelines: Why Separate?
As your system grows, you might be collecting logs from many different sources (e.g., web servers, databases, security devices). Each source might require entirely different processing logic.
Multiple pipelines allow you to isolate and manage these distinct processing flows independently. Instead of one giant, complex Logstash configuration, you can have several smaller, focused ones.
- Isolation: Errors in one pipeline won't affect others.
- Resource Management: Assign specific resources to different pipelines.
- Modularity: Easier to develop, test, and maintain configurations.
Configuring Multiple Pipelines
To use multiple pipelines, you define them in a file called pipelines.yml, usually located in your Logstash configuration directory (e.g., /etc/logstash/pipelines.yml).
Each entry specifies a unique ID, the path to its configuration file (.conf), and optional settings like number of worker threads.
Example pipelines.yml:
- pipeline.id: web_logs
path.config: "/etc/logstash/conf.d/web-pipeline.conf"
- pipeline.id: db_logs
path.config: "/etc/logstash/conf.d/db-pipeline.conf"Deep Dive: The Ruby Filter
Sometimes, built-in Logstash filters aren't enough for very specific or complex data transformations. That's where the ruby filter comes in!
The ruby filter allows you to execute arbitrary Ruby code within your Logstash pipeline. This provides immense flexibility to manipulate events in ways not possible with standard filters.
- Use for: Complex string manipulations, mathematical operations, custom data lookups, or logic that depends on multiple fields.
- Caution: Can impact performance if not used carefully.
Ruby Filter Example
Let's use the ruby filter to create a new field that combines parts of existing fields and calculates a value.
Try inputting: {"user_id": "123", "item_count": 5, "price_per_item": 10.5}
input {
stdin {
codec => json
}
}
filter {
ruby {
code => "
event.set('total_cost', event.get('item_count').to_f * event.get('price_per_item').to_f)
event.set('user_item_summary', 'User ' + event.get('user_id') + ' bought ' + event.get('item_count').to_s + ' items.')
"
}
}
output {
stdout {
codec => rubydebug
}
}Advanced Mutate Operations
The mutate filter is a workhorse for basic field manipulation, but it has some advanced operations that are incredibly useful:
split: Splits a string field into an array based on a delimiter.join: Joins an array field into a string using a specified separator.convert: Changes the data type of a field (e.g., string to integer, float to string).rename: Changes the name of an existing field.
These operations help you shape your data precisely for storage and analysis.
Quiz: Logstash Logic
Which of the following are valid reasons to use multiple Logstash pipelines?
Recap: Advanced Logstash Config
Great job! You've leveled up your Logstash skills. We covered:
- How conditional logic (
if,else if,else) allows for dynamic event processing. - The benefits and configuration of multiple pipelines for modular and isolated data flows.
- Leveraging the powerful
rubyfilter for highly custom data transformations. - Advanced operations within the
mutatefilter likesplit,join, andconvert.
These techniques are crucial for building robust and adaptable Logstash configurations for complex, real-world data.
Apprends System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 12
- Leçons
- 48
Questions Fréquemment Posées
La leçon « Filtres et chaînes de traitement Logstash » est-elle gratuite ?
Oui — le texte complet de « Filtres et chaînes de traitement Logstash » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry), passe à CoddyKit PRO. Le cours System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Filtres et chaînes de traitement Logstash » ?
Explorez la configuration avancée de Logstash, notamment la logique conditionnelle, les chaînes de traitement multiples et les filtres personnalisés pour transformer des données complexes. Tu pratiques System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) ?
Aucune expérience préalable n'est requise. System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Filtres et chaînes de traitement Logstash » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) ?
Oui. Chaque leçon System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Langage de requête Elasticsearch (DSL)
- Filtres et chaînes de traitement Logstash
- Discover et Lens dans Kibana
- Gestion du cycle de vie des index (ILM)