logstash/docs/reference/environment-variables.md
Karen Metts 91927d7450
Doc: Migrate docs from AsciiDoc to Markdown in 9.0 branch (#17289)
* Doc: Delete asciidoc files for 9.0 branch
* Add MD files for 9.0 branch
2025-03-10 18:02:14 -04:00

3.1 KiB
Raw Blame History

mapped_pages
https://www.elastic.co/guide/en/logstash/current/environment-variables.html

Using environment variables [environment-variables]

Overview [_overview]

  • You can set environment variable references in the configuration for Logstash plugins by using ${var}.
  • At Logstash startup, each reference is replaced by the value of the environment variable.
  • The replacement is case-sensitive.
  • References to undefined variables raise a Logstash configuration error.
  • You can give a default value by using the form ${var:default value}. Logstash uses the default value if the environment variable is undefined.
  • You can add environment variable references in any plugin option type: string, number, boolean, array, or hash.
  • Environment variables for list-type URI parameters can support lists of space-delimited values. Currently, other non-URI based options do not support lists of values. See Cross-plugin concepts and features
  • Environment variables are immutable. If you update the environment variable, youll have to restart Logstash to pick up the updated value.
  • References to environment variables in config.string comments are evaluated during configuration parsing, and are therefore discouraged. Remove the $ sign to avoid pipeline loading failures.

Examples [_examples]

These examples show you how to use environment variables to set the values of some commonly used configuration options.

Setting the TCP port [_setting_the_tcp_port]

Heres an example that uses an environment variable to set the TCP port:

input {
  tcp {
    port => "${TCP_PORT}"
  }
}

Now lets set the value of TCP_PORT:

export TCP_PORT=12345

At startup, Logstash uses this configuration:

input {
  tcp {
    port => 12345
  }
}

If the TCP_PORT environment variable is not set, Logstash returns a configuration error.

You can fix this problem by specifying a default value:

input {
  tcp {
    port => "${TCP_PORT:54321}"
  }
}

Now, instead of returning a configuration error if the variable is undefined, Logstash uses the default:

input {
  tcp {
    port => 54321
  }
}

If the environment variable is defined, Logstash uses the value specified for the variable instead of the default.

Setting the value of a tag [_setting_the_value_of_a_tag]

Heres an example that uses an environment variable to set the value of a tag:

filter {
  mutate {
    add_tag => [ "tag1", "${ENV_TAG}" ]
  }
}

Lets set the value of ENV_TAG:

export ENV_TAG="tag2"

At startup, Logstash uses this configuration:

filter {
  mutate {
    add_tag => [ "tag1", "tag2" ]
  }
}

Setting a file path [_setting_a_file_path]

Heres an example that uses an environment variable to set the path to a log file:

filter {
  mutate {
    add_field => {
      "my_path" => "${HOME}/file.log"
    }
  }
}

Lets set the value of HOME:

export HOME="/path"

At startup, Logstash uses the following configuration:

filter {
  mutate {
    add_field => {
      "my_path" => "/path/file.log"
    }
  }
}