How to Install Logstash

Introduction Logstash is a powerful open-source data processing pipeline that ingests data from multiple sources simultaneously, transforms it, and then sends it to your preferred “stash” such as Elasticsearch. It is a core component of the Elastic Stack (formerly known as ELK Stack), widely used for log management, real-time analytics, and event processing. Installing Logstash properly ensures ef

Nov 17, 2025 - 10:46
Nov 17, 2025 - 10:46
 0

Introduction

Logstash is a powerful open-source data processing pipeline that ingests data from multiple sources simultaneously, transforms it, and then sends it to your preferred “stash” such as Elasticsearch. It is a core component of the Elastic Stack (formerly known as ELK Stack), widely used for log management, real-time analytics, and event processing. Installing Logstash properly ensures efficient data collection and processing, which is critical for maintaining observability, troubleshooting, and security monitoring in modern IT environments.

This tutorial provides a comprehensive, step-by-step guide on how to install Logstash on various platforms, along with best practices, tools, resources, real-world examples, and answers to frequently asked questions. Whether you are a developer, system administrator, or data engineer, this tutorial will help you get started with Logstash installation and setup efficiently.

Step-by-Step Guide

1. System Requirements

Before installing Logstash, ensure your system meets the following requirements:

  • Operating System: Linux (Debian, Ubuntu, CentOS), Windows, or macOS
  • Java Runtime Environment (JRE): Logstash requires Java 11 or later. OpenJDK is recommended.
  • Hardware: Minimum 4GB RAM recommended for small deployments; adjust based on workload.
  • Disk Space: At least 10GB free disk space for installation and data storage.

2. Installing Java

Logstash depends on Java to run. Most Linux distributions do not come with Java pre-installed, so you need to install it first.

On Ubuntu/Debian:

Open a terminal and run:

sudo apt update

sudo apt install openjdk-11-jdk

Verify Java installation:

java -version

On CentOS/RHEL:

Run the following commands:

sudo yum install java-11-openjdk-devel

java -version

On Windows:

Download and install OpenJDK 11 or later from the official website or adoptopenjdk.net, then set the JAVA_HOME environment variable.

3. Downloading and Installing Logstash

On Linux (Debian/Ubuntu):

Add the Elastic package repository and install Logstash:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

sudo apt-get install apt-transport-https

echo "deb https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-8.x.list

sudo apt update

sudo apt install logstash

On CentOS/RHEL:

Add the Elastic repository and install Logstash:

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

cat <[elastic-8.x]

name=Elastic repository for 8.x packages

baseurl=https://artifacts.elastic.co/packages/8.x/yum

gpgcheck=1

gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch

enabled=1

autorefresh=1

type=rpm-md

EOF

sudo yum install logstash

On Windows:

Download the latest Logstash ZIP package from the official Elastic website. Extract it to a preferred directory, e.g., C:\logstash.

4. Starting Logstash

On Linux:

Start and enable Logstash service:

sudo systemctl start logstash

sudo systemctl enable logstash

sudo systemctl status logstash

On Windows:

Navigate to the Logstash bin directory and run:

logstash.bat -f path\to\your\logstash.conf

5. Creating a Basic Configuration File

Logstash uses configuration files to define input, filter, and output plugins. Create a simple config file logstash.conf:

input {

stdin { }

}

output {

stdout { codec => rubydebug }

}

Run Logstash with this config to test installation:

sudo /usr/share/logstash/bin/logstash -f /path/to/logstash.conf

Type some text and press enter; you should see parsed output on the console.

Best Practices

1. Secure Your Logstash Installation

Use TLS encryption for data in transit between Logstash and other Elastic Stack components. Configure user authentication and role-based access control (RBAC) to restrict access.

2. Optimize Pipeline Performance

Adjust pipeline workers and batch sizes based on your hardware and workload. Use persistent queues to prevent data loss during restarts.

3. Modularize Configuration Files

Split configuration files by functionality (inputs, filters, outputs) to improve maintainability and readability.

4. Monitor Resource Usage

Monitor CPU, memory, and disk usage to avoid bottlenecks. Use Elastic monitoring tools or external solutions to track Logstash health.

5. Regularly Update Logstash

Keep Logstash up to date with the latest patches and features from Elastic to ensure security and performance improvements.

Tools and Resources

Official Elastic Documentation

Elastic Logstash Docs provide comprehensive guides and reference materials.

Community Forums and GitHub

Elastic Discuss forums and GitHub repositories offer community support, plugins, and shared configurations.

Monitoring Tools

Elastic Stack Monitoring and open-source tools like Metricbeat help keep track of Logstash metrics and health.

Configuration Management Tools

Automation tools such as Ansible, Puppet, and Chef can help deploy and manage Logstash at scale.

Real Examples

Example 1: Collecting Apache Access Logs

This example demonstrates how to ingest Apache logs using Logstash:

input {

file {

path => "/var/log/apache2/access.log"

start_position => "beginning"

}

}

filter {

grok {

match => { "message" => "%{COMMONAPACHELOG}" }

}

date {

match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]

}

}

output {

elasticsearch {

hosts => ["http://localhost:9200"]

index => "apache-access-%{+YYYY.MM.dd}"

}

stdout { codec => rubydebug }

}

Example 2: Parsing JSON Logs

For JSON formatted logs, use the following configuration:

input {

file {

path => "/var/log/myapp/json.log"

codec => "json"

}

}

output {

elasticsearch {

hosts => ["http://localhost:9200"]

}

}

FAQs

Q1: What are the main components of Logstash?

Logstash consists of inputs, filters, codecs, and outputs that define how data is collected, processed, and sent to destinations.

Q2: Can Logstash run on Windows?

Yes, Logstash supports Windows and can be installed via ZIP packages.

Q3: How do I upgrade Logstash?

Follow the official upgrade instructions for your OS. Typically, this involves stopping the service, installing the new version, and restarting Logstash.

Q4: Is Java mandatory for Logstash?

Yes, Logstash requires Java 11 or above to run.

Q5: How can I troubleshoot Logstash startup issues?

Check the Logstash logs located in /var/log/logstash/ on Linux or logs/ directory on Windows. Also, verify Java installation and configuration syntax.

Conclusion

Installing Logstash is a foundational step toward building a robust data pipeline for log and event management. By following this detailed tutorial, you have learned how to prepare your system, install Logstash on multiple platforms, create basic configurations, and apply best practices for security and performance. Leveraging official tools and community resources can further enhance your Logstash deployment.

With Logstash properly installed and configured, you are well-equipped to centralize data from diverse sources, enabling better monitoring, analysis, and visualization through the Elastic Stack ecosystem.