How to Check Logstash Version When the Command Line Fails: Multiple Methods Explained


3 views

Many users encounter this frustrating scenario when trying to check their Logstash version:

$ logstash -V
bash: logstash: command not found

This typically occurs because the Logstash binary isn't in your system's PATH. Let's explore several reliable methods to determine your installed version.

From your ps output, we can see Logstash is installed at /opt/logstash. Navigate to the bin directory:

cd /opt/logstash/bin
./logstash --version

This should return output like:

logstash 7.17.0

When you can't locate the binary but know Logstash is running (as shown in your ps output), examine the process:

ps aux | grep -i logstash | grep -v grep

The output reveals the installation path and Java parameters, which often includes version information in the classpath or directory structure.

Logstash typically stores version information in its home directory:

cat /opt/logstash/Gemfile.lock | grep "logstash-core"

Or check the VERSION file if it exists:

cat /opt/logstash/VERSION

If Logstash has the HTTP API enabled (default on port 9600), you can query it:

curl -XGET 'localhost:9600/_node?pretty' | grep version

This returns detailed version information in JSON format.

If installed via package manager, you can check version through:

For Debian/Ubuntu:

dpkg -l | grep logstash

For RHEL/CentOS:

rpm -qa | grep logstash

Knowing your exact Logstash version is crucial for:

  • Plugin compatibility checks
  • Troubleshooting known issues
  • Security patching requirements
  • Configuration syntax validation

To prevent future issues, add Logstash to your PATH:

echo 'export PATH=$PATH:/opt/logstash/bin' >> ~/.bashrc
source ~/.bashrc

Now logstash --version should work system-wide.


When working with Logstash installations, you might encounter situations where standard version check commands fail. Based on the system output provided, we can see the Logstash process is running but the executable isn't in the system PATH.

The most reliable way when commands fail is to examine the running process:

ps aux | grep logstash

This reveals the installation path in the Java command parameters. In this case:

/opt/logstash/vendor/jruby/lib/jruby.jar

indicates the Logstash home directory is /opt/logstash.

Navigate to the Logstash bin directory and run:

cd /opt/logstash/bin
./logstash --version

Or using absolute path:

/opt/logstash/bin/logstash --version

If installed via package manager:

# For Debian/Ubuntu
dpkg -l | grep logstash

# For RHEL/CentOS
rpm -qa | grep logstash

Look for version files in the installation directory:

cat /opt/logstash/VERSION
# Or for newer versions
cat /opt/logstash/build

To make logstash commands work globally, add to PATH:

export PATH=$PATH:/opt/logstash/bin
echo 'export PATH=$PATH:/opt/logstash/bin' >> ~/.bashrc

If Logstash has HTTP enabled (in config):

curl -XGET 'http://localhost:9600/?pretty'

This returns version info in JSON format.

For source installations:

cd /opt/logstash
bin/ruby -v