Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions docs/static/command-line-flags.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,12 @@ Logstash has the following flags. You can use the `--help` flag to display this
Logstash can read multiple config files from a directory. If you combine this
flag with `--debug`, Logstash will log the combined config file, annotating the
individual config blocks with the source file it came from.

-r, --[no-]auto-reload
Monitor configuration changes and reload the configuration whenever it is changed.

--reload-interval RELOAD_INTERVAL
Specifies how often Logstash checks the config files for changes. The default is every 3 seconds.

-h, --help
Print help
Expand Down
43 changes: 43 additions & 0 deletions docs/static/reloading-config.asciidoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
[[reloading-config]]
=== Reloading the Config File

Starting with Logstash 2.3, you can set Logstash to detect and reload configuration
changes automatically.

To enable automatic config reloading, start Logstash with the `--auto-reload` (or `-r`)
command-line option specified. For example:

[source,shell]
----------------------------------
bin/logstash –f apache.config --auto-reload
----------------------------------

NOTE: The `--auto-reload` option is not available when you specify the `-e` flag to pass
in configuration settings from the command-line.

By default, Logstash checks for configuration changes every 3 seconds. To change this interval,
use the `--reload-interval <seconds>` option, where `seconds` specifies how often Logstash
checks the config files for changes.

If Logstash is already running without auto-reload enabled, you can force Logstash to
reload the config file and restart the pipeline by sending a SIGHUP (signal hangup) to the
process running Logstash. For example:

[source,shell]
----------------------------------
kill -1 14175
----------------------------------

Where 14175 is the ID of the process running Logstash.

==== How Automatic Config Reloading Works

When Logstash detects a change in a config file, it stops the current pipeline by stopping
all inputs, and it attempts to create a new pipeline that uses the updated configuration.
After validating the syntax of the new configuration, Logstash verifies that all inputs
and outputs can be initialized (for example, that all required ports are open). If the checks
are successful, Logstash swaps the existing pipeline with the new pipeline. If the checks
fail, the old pipeline continues to function, and the errors are propagated to the console.

During automatic config reloading, the JVM is not restarted. The creating and swapping of
pipelines all happens within the same process.