mirror of
https://github.com/elastic/logstash.git
synced 2025-04-24 22:57:16 -04:00
* Create running-logstash-windows.asciidoc Initial commit for #4005 * Update running-logstash-windows 1. Added section to validate JVM pre-requisites and shell sections for nssm, task scheduler, and PowerShell 2. Updated options to run Logstash on Windows, update section headers 3. Clarified JVM pre-requisites and included example to add environmental variables using SETX 4. Added example Logstash configuration, added steps for running Logstash manually with PowerShell 5. Removed `WIP` from the PowerShell section; updated the example to include output to Elasticsearch; Added notes for running Logstash as a service with NSSM 6. Removed `WIP` from the NSSM section; Added notes for running Logstash as a Scheduled Task; Added notes to stopping Logstash for each section; Removed `WIP` from the Scheduled Task section; Removed `WIP` from the page header 7. Updated initial section; moved the running manually section as the first configuration; added notes to the NSSM and Schedule Task sections. 8. Push headings down one level 9. Clarify this document contains examples for running Logstash on Windows. Updated which NSSM file should be extracted for use. 10. Updated formatting for the example Logstash configuration 11. Update formatting for the command examples 12. Update the instructions in the Task Scheduler section 13. Update the instructions in the run Logstash manually section, the NSSM section, and update formatting 14. Update formatting 15. Add note regarding support for running multiple pipelines 16. Clarify use of command line options. Re-state what is mentioned in the `Running Logstash from the Command Line` doc that: "Specifying command line options is useful when you are testing Logstash. However, in a production environment, we recommend that you use [logstash-settings-file] to control Logstash execution." 17. Clarify steps to accessing the Windows Environmental Variables window (i.e., link to Microsoft docs). 18. Remove unnecessary plus signs 19. Updated source types for examples, updated documents for specific Logstash versions with `{logstash_version}` * Update running-logstash-command-line 1. Add note for running Logstash on Windows with `bin\logstash.bat` 2. Update formatting for running Logstash from the Windows command line Fixes #10946
192 lines
8.8 KiB
Text
192 lines
8.8 KiB
Text
[[running-logstash-command-line]]
|
|
=== Running Logstash from the Command Line
|
|
|
|
To run Logstash from the command line, use the following command:
|
|
|
|
[source,shell]
|
|
----
|
|
bin/logstash [options]
|
|
----
|
|
|
|
To run Logstash from the Windows command line, use the following command:
|
|
|
|
[source,shell]
|
|
----
|
|
bin/logstash.bat [options]
|
|
----
|
|
|
|
Where `options` are <<command-line-flags,command-line>> flags that you can
|
|
specify to control Logstash execution. The location of the `bin` directory
|
|
varies by platform. See <<dir-layout>> to find the location of `bin\logstash` on
|
|
your system.
|
|
|
|
The following example runs Logstash and loads the Logstash config defined in
|
|
the `mypipeline.conf` file:
|
|
|
|
[source,shell]
|
|
----
|
|
bin/logstash -f mypipeline.conf
|
|
----
|
|
|
|
Any flags that you set at the command line override the corresponding settings
|
|
in <<logstash-settings-file>>, but the file
|
|
itself is not changed. It remains as-is for subsequent Logstash runs.
|
|
|
|
Specifying command line options is useful when you are testing Logstash.
|
|
However, in a production environment, we recommend that you use
|
|
<<logstash-settings-file>> to control Logstash execution. Using
|
|
the settings file makes it easier for you to specify multiple options, and it
|
|
provides you with a single, versionable file that you can use to start up
|
|
Logstash consistently for each run.
|
|
|
|
[[command-line-flags]]
|
|
==== Command-Line Flags
|
|
|
|
Logstash has the following flags. You can use the `--help` flag to display this information.
|
|
|
|
*`--node.name NAME`*::
|
|
Specify the name of this Logstash instance. If no value is given it will default to the current
|
|
hostname.
|
|
|
|
*`-f, --path.config CONFIG_PATH`*::
|
|
Load the Logstash config from a specific file or directory. If a directory is given, all
|
|
files in that directory will be concatenated in lexicographical order and then parsed as a
|
|
single config file. Specifying this flag multiple times is not supported. If you specify
|
|
this flag multiple times, Logstash uses the last occurrence (for example, `-f foo -f bar`
|
|
is the same as `-f bar`).
|
|
+
|
|
You can specify wildcards (<<glob-support,globs>>) and any matched files will
|
|
be loaded in the order described above. For example, you can use the wildcard feature to
|
|
load specific files by name:
|
|
+
|
|
[source,shell]
|
|
---------------------------------------------
|
|
bin/logstash --debug -f '/tmp/{one,two,three}'
|
|
---------------------------------------------
|
|
+
|
|
With this command, Logstash concatenates three config files, `/tmp/one`, `/tmp/two`, and
|
|
`/tmp/three`, and parses them into a single config.
|
|
|
|
*`-e, --config.string CONFIG_STRING`*::
|
|
Use the given string as the configuration data. Same syntax as the config file. If no
|
|
input is specified, then the following is used as the default input:
|
|
`input { stdin { type => stdin } }` and if no output is specified, then the
|
|
following is used as the default output: `output { stdout { codec => rubydebug } }`.
|
|
If you wish to use both defaults, please use the empty string for the `-e` flag.
|
|
The default is nil.
|
|
|
|
*`--java-execution`*::
|
|
Specify `false` for this option to revert to the legacy Ruby execution engine instead
|
|
of the default Java execution engine.
|
|
|
|
*`--plugin-classloaders`*::
|
|
(Beta) Load Java plugins in independent classloaders to isolate their dependencies.
|
|
|
|
*`--modules`*::
|
|
Launch the named module. Works in conjunction with the `-M` option to assign values to
|
|
default variables for the specified module. If `--modules` is used on the command line,
|
|
any modules in `logstash.yml` will be ignored, as will any settings there. This flag is
|
|
mutually exclusive to the `-f` and `-e` flags. Only one of `-f`, `-e`, or `--modules` may
|
|
be specified. Multiple modules can be specified by separating them with a comma, or by
|
|
invoking the `--modules` flag multiple times.
|
|
|
|
*`-M, --modules.variable`*::
|
|
Assign a value to a configurable option for a module. The format for assigning variables is
|
|
`-M "MODULE_NAME.var.PLUGIN_TYPE.PLUGIN_NAME.KEY_NAME=value"` for Logstash variables. For other
|
|
settings, it will be `-M "MODULE_NAME.KEY_NAME.SUB_KEYNAME=value"`. The `-M` flag can be used
|
|
as many times as is necessary. If no `-M` options are specified, then the default value for
|
|
that setting will be used. The `-M` flag is only used in conjunction with the `--modules`
|
|
flag. It will be ignored if the `--modules` flag is absent.
|
|
|
|
*`--pipeline.id ID`*::
|
|
Sets the ID of pipeline. The default is `main`.
|
|
|
|
*`-w, --pipeline.workers COUNT`*::
|
|
Sets the number of pipeline workers to run. This option sets the number of workers that will,
|
|
in parallel, execute the filter and output stages of the pipeline. If you find that events are
|
|
backing up, or that the CPU is not saturated, consider increasing this number to better utilize
|
|
machine processing power. The default is the number of the host's CPU cores.
|
|
|
|
*`-b, --pipeline.batch.size SIZE`*::
|
|
Size of batches the pipeline is to work in. This option defines the maximum number of events an
|
|
individual worker thread will collect from inputs before attempting to execute its filters and outputs.
|
|
The default is 125 events. Larger batch sizes are generally more efficient, but come at the cost of
|
|
increased memory overhead. You may need to increase JVM heap space in the `jvm.options` config file.
|
|
See <<config-setting-files>> for more info.
|
|
|
|
*`-u, --pipeline.batch.delay DELAY_IN_MS`*::
|
|
When creating pipeline batches, how long to wait while polling for the next event. This option defines
|
|
how long in milliseconds to wait while polling for the next event before dispatching an undersized batch
|
|
to filters and outputs. The default is 50ms.
|
|
|
|
*`--pipeline.unsafe_shutdown`*::
|
|
Force Logstash to exit during shutdown even if there are still inflight events
|
|
in memory. By default, Logstash will refuse to quit until all received events
|
|
have been pushed to the outputs. Enabling this option can lead to data loss during shutdown.
|
|
|
|
*`--path.data PATH`*::
|
|
This should point to a writable directory. Logstash will use this directory whenever it needs to store
|
|
data. Plugins will also have access to this path. The default is the `data` directory under
|
|
Logstash home.
|
|
|
|
*`-p, --path.plugins PATH`*::
|
|
A path of where to find custom plugins. This flag can be given multiple times to include
|
|
multiple paths. Plugins are expected to be in a specific directory hierarchy:
|
|
`PATH/logstash/TYPE/NAME.rb` where `TYPE` is `inputs`, `filters`, `outputs`, or `codecs`,
|
|
and `NAME` is the name of the plugin.
|
|
|
|
*`-l, --path.logs PATH`*::
|
|
Directory to write Logstash internal logs to.
|
|
|
|
*`--log.level LEVEL`*::
|
|
Set the log level for Logstash. Possible values are:
|
|
* `fatal`: log very severe error messages that will usually be followed by the application aborting
|
|
* `error`: log errors
|
|
* `warn`: log warnings
|
|
* `info`: log verbose info (this is the default)
|
|
* `debug`: log debugging info (for developers)
|
|
* `trace`: log finer-grained messages beyond debugging info
|
|
|
|
*`--config.debug`*::
|
|
Show the fully compiled configuration as a debug log message (you must also have `--log.level=debug` enabled).
|
|
WARNING: The log message will include any 'password' options passed to plugin configs as plaintext, and may result
|
|
in plaintext passwords appearing in your logs!
|
|
|
|
*`-i, --interactive SHELL`*::
|
|
Drop to shell instead of running as normal. Valid shells are "irb" and "pry".
|
|
|
|
*`-V, --version`*::
|
|
Emit the version of Logstash and its friends, then exit.
|
|
|
|
*`-t, --config.test_and_exit`*::
|
|
Check configuration for valid syntax and then exit. Note that grok patterns are not checked for
|
|
correctness with this flag. Logstash can read multiple config files from a directory. If you combine this
|
|
flag with `--log.level=debug`, Logstash will log the combined config file, annotating
|
|
each config block with the source file it came from.
|
|
|
|
*`-r, --config.reload.automatic`*::
|
|
Monitor configuration changes and reload whenever the configuration is changed.
|
|
NOTE: Use SIGHUP to manually reload the config. The default is false.
|
|
|
|
*`--config.reload.interval RELOAD_INTERVAL`*::
|
|
How frequently to poll the configuration location for changes. The default value is "3s".
|
|
|
|
*`--http.host HTTP_HOST`*::
|
|
Web API binding host. This option specifies the bind address for the metrics REST endpoint. The default is "127.0.0.1".
|
|
|
|
*`--http.port HTTP_PORT`*::
|
|
Web API http port. This option specifies the bind port for the metrics REST endpoint. The default is 9600-9700.
|
|
This setting accepts a range of the format 9600-9700. Logstash will pick up the first available port.
|
|
|
|
*`--log.format FORMAT`*::
|
|
Specify if Logstash should write its own logs in JSON form (one event per line) or in plain text
|
|
(using Ruby's Object#inspect). The default is "plain".
|
|
|
|
*`--path.settings SETTINGS_DIR`*::
|
|
Set the directory containing the `logstash.yml` <<logstash-settings-file,settings file>> as well
|
|
as the log4j logging configuration. This can also be set through the LS_SETTINGS_DIR environment variable.
|
|
The default is the `config` directory under Logstash home.
|
|
|
|
*`-h, --help`*::
|
|
Print help
|
|
|