📖 Scenario: You are working as a data engineer who needs to collect and process logs from different sources to analyze them in Elasticsearch. You will use Logstash to set up a simple pipeline that reads data, processes it, and outputs it.
🎯 Goal: Build a basic Logstash configuration that reads input from a file, applies a filter to parse the data, and outputs the result to the console.
📋 What You'll Learn
Create an input section that reads from a file called logs.txt
Add a filter section that uses the grok plugin to parse log lines
Create an output section that prints the processed logs to the console
Use exact plugin names and configuration keys as specified
💡 Why This Matters
🌍 Real World
Logstash is used in real companies to collect and process logs from servers, applications, and devices to monitor and analyze system behavior.
💼 Career
Understanding Logstash configuration is important for roles like DevOps engineer, data engineer, and system administrator who manage log data pipelines.
Progress0 / 4 steps
1
Create the input section
Write the Logstash configuration input section to read from a file called logs.txt. Use the file input plugin with the path set to "logs.txt".
Elasticsearch
Hint
The input section starts with input { and uses the file plugin with path => "logs.txt".
2
Add the filter section with grok plugin
Add a filter section that uses the grok plugin to parse log lines. Use the pattern "%{COMMONAPACHELOG}" inside the grok match.
Elasticsearch
Hint
The filter section uses grok with match => { "message" => "%{COMMONAPACHELOG}" } to parse Apache logs.
3
Create the output section to print to console
Add an output section that uses the stdout plugin with codec => rubydebug to print the processed logs to the console.
Elasticsearch
Hint
The output section uses stdout with codec => rubydebug to print logs nicely.
4
Run and display the Logstash configuration
Verify the entire Logstash configuration is correct.
Elasticsearch
Hint
Ensure your configuration includes input, filter with grok, and output sections as specified in previous steps.
Practice
(1/5)
1. What is the primary role of Logstash in the Elastic Stack?
easy
A. To store data in a database
B. To visualize data with dashboards
C. To collect, process, and forward data from various sources
D. To secure the Elastic Stack with authentication
Solution
Step 1: Understand Logstash's function
Logstash is designed to collect and process data from many sources before sending it to storage or analysis tools.
Step 2: Compare with other Elastic Stack components
Elasticsearch stores data, Kibana visualizes it, and security features handle authentication, so these are not Logstash's main roles.
Final Answer:
To collect, process, and forward data from various sources -> Option C
Quick Check:
Logstash = Data collection and processing [OK]
Hint: Remember: Logstash handles data input and processing [OK]
Common Mistakes:
Confusing Logstash with Elasticsearch or Kibana
Thinking Logstash stores data permanently
Assuming Logstash manages security
2. Which section in a Logstash configuration file defines where data comes from?
easy
A. filter
B. input
C. output
D. codec
Solution
Step 1: Identify configuration sections
Logstash config files have three main sections: input, filter, and output.
Step 2: Match section to purpose
The input section specifies data sources, filter modifies data, and output sends data elsewhere.
A. Elasticsearch output hosts must be a string, not an array
B. Missing closing brace in filter section
C. Grok pattern syntax is incorrect
D. File input path should be an array, not a string
Solution
Step 1: Check file input syntax
The 'path' option for file input expects an array of strings, not a single string.
Step 2: Verify other sections
Filter grok syntax and output hosts as array are correct according to Logstash documentation.
Final Answer:
File input path should be an array, not a string -> Option D
Quick Check:
File path = array required [OK]
Hint: File input path must be an array even for one file [OK]
Common Mistakes:
Using string instead of array for file path
Misreading grok pattern syntax
Thinking output hosts must be string
5. You want to collect logs from multiple servers, add a tag with the server name, and send all logs to Elasticsearch. Which Logstash configuration approach is best?
hard
A. Use multiple input sections with file paths and add tags in filter section, then output to Elasticsearch
B. Use one input section with a wildcard path and add tags in output section
C. Use multiple output sections for each server and add tags in input section
D. Use filter section only to read files and add tags, then output to Elasticsearch
Solution
Step 1: Understand data collection from multiple servers
Multiple input sections allow specifying different file paths per server.
Step 2: Add tags in filter section
The filter section is the right place to add tags like server names to enrich data.
Step 3: Output all processed logs to Elasticsearch
The output section sends all enriched logs to Elasticsearch for indexing.
Final Answer:
Use multiple input sections with file paths and add tags in filter section, then output to Elasticsearch -> Option A
Quick Check:
Input for sources + filter for tags + output to ES [OK]
Hint: Input for sources, filter for tags, output to Elasticsearch [OK]
Common Mistakes:
Adding tags in output section
Using filter to read files (wrong place)
Multiple outputs instead of inputs for servers
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.