🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] ### 从命令行运行Logstash 使用下面的命令来从命令行中运行Logstash: ```shell bin/logstash [options] ``` `options`是在命令行指定的可以用来控制Logstash运行的[命令行](https://www.elastic.co/guide/en/logstash/current/running-logstash-command-line.html#command-line-flags)标记。`bin`目录根据不同的平台有所不同,详见[Logstash 目录布局](https://www.elastic.co/guide/en/logstash/current/dir-layout.html) 下面的示例从`mypipeline.conf`文件运行一个Logstash: ```shell bin/logstash -f mypipeline.conf ``` 命令行指定的选项将会覆盖[logstash.yml](https://www.elastic.co/guide/en/logstash/current/logstash-settings-file.html)中的选项,但文件并不会改变。后续的运行仍然会使用文件中的设定。 在你测试Logstash运行的时候,指定命令行选项是非常有用的。但是我们建议在生产环境中使用[logstash.yml](https://www.elastic.co/guide/en/logstash/current/logstash-settings-file.html)来控制Logstash的运行。使用设置文件让定义多个选项变得容易,且为你的每次运行Logstash提供了一个单一的可验证的文件。 ### Command-Line Flags Logstash有下面这些选项(标记),你可以使用`--help`来查看相关信息。 `--node.name NAME` ​ 给Logstash实例定义名字,如果未定义,则默认值为当前的hostname。 `-f, --path.config CONFIG_PATH` ​ 从给定的文件或目录加载配置文件。如果给定的是目录,目录下的所有文件会按照字母顺序解析为一个文件加载。(文档没说,但应该是所有以`conf`结尾的文件,而不是所有文件)。此项不支持多次指定,如果你指定的多次,则最后一个生效。(如:`-f foo -f bar`等同于`-f bar`)。 ​ 你可以使用通配符,匹配的所有文件会按照上述规则进行加载。如,你可以使用通配符按照名称加载特定的配置文件: ```shell bin/logstash --debug -f '/tmp/{one,two,three}' ``` ​ 这个命令中,Logstash包含了三个配置文件,`/tmp/one`,`/tmp/two`,`/tmp/three`,并将他们解析为一个文件。 `-e, --config.string CONFIG_STRING` ​ 使用给定的字符串作为配置数据。语法和配置文件相同。如果没有指定input,则使用下面的默认input:`input { stdin { typre => stdin } }`,如果没有指定output,则使用下面的默认output:`output { stdout { codec => rubydebug } }`,如果你希望全部使用默认值,给`-e`选项空字符串即可。默认为空。 `--modules` ​ 启动命名的模块。与`-M`选项配合给指定的模块的默认变量赋值。如果`--modules`在命令行中使用,所有在`logstash.yml`中定义的模块包括其他任何设定都会被忽略。此选项和`-f`,`-e`互斥,只能指定他们中的一个。可以使用逗号分隔多个模块,或者使用多次使用`--modules`。 `-M, --modules.variable` ​ 为一个模块的可配置选项指定值。格式`-M "MODULE_NAME.var.PLUGIN_TYPE.PLUGIN_NAME.KEY_NAME=value"`用来给Logstash 变量设定。对于其他设定,可能是`-M "MODULE_NAME.KEY_NAME.SUB_KEYNAME=value"`。必要的是后`-M`可以使用多次。如果没有指定`-M`,则会使用默认值。`-M `选项只能配合`--modules`。如果没有指定`--modules`则`-M`会被忽略。 `--pipeline.id ID` ​ 设定pipeline的ID,默认是`main`。 `-w, --pipeline.workers COUNT` ​ 设置管道中worker的数量。此选项设置在filter和output阶段并行执行的worker的数量。如果发现事件正在备份或者CPU负载较低,可以考虑增加worker的数量,以最大化利用机器性能。默认情况下worker的数量为CPU核心数量。 `-b, --pipeline.batch.size SIZE` ​ batches的大小。这个选项定义了单个worker在执行filters和outputs之前从input每次取走的事件的最大数量。默认是125。通常更大的batch意味着更高的收益,但也意味着更大的内存消耗。为此可能需要在`jvm.options`中增加JVM的可用空间。更多相关信息查看[Logstash 配置文件](https://www.elastic.co/guide/en/logstash/current/config-setting-files.html) `-u, --pipeline.batch.delay DELAY_IN_MS` ​ 当创建batches的时候,从input等待事件的超时时长。这个选项定义了如果取不到定义的batch的大小的情况下等待多少毫秒。默认是50毫秒。 `--pipeline.unsafe_shutdown` ​ 强制退出Logstash即使内存中仍有在处理的事件。默认情况下Logstash会拒绝退出直到接收的事件处理全部交给outputs。开启之后可能在关闭的时候丢失数据。 `--path.data PATH` ​ 此选项须指向一个可写的目录。Logstash会在需要存储数据的时候使用次目录。插件也需要对此目录可以访问。默认的`data`目录是Logstash的家目录。 `-p, --path.plugins PATH` ​ 指定插件的默认目录。可以通过引用多次来包含多个目录。插件应该位于特定的目录层次之中:`/PATH/logstash/TYPE/NAME.rb`其中`TYPE`指的是`inputs`,`filters`,`outputs`和`codecs`,`NAME`即插件名。 `-l, --path.logs PATH` ​ Logstash的日志目录。 `--log.level LEVEL` ​ 设置日志等级,可能的值包括: + `fatal`:记录非常严重的错误信息,通常此信息之后程序即异常中止。 + `error`:记录错误信息 + `warn`:记录警告信息 + `info`:记录运行的详细信息(默认) + `debug`:记录debugging信息(用于开发者) + `trace`:记录比debugging更加详细的信息 **`--config.debug`** ​ 将完全编译的配置作为调试日志输出(必须同时将`--log.level=debug`开启)。警告:日志信息会包含所有明文传递的密码,这些信息会被记录到日志中!(原文: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` ​ 价差配置文件的语法,然后退出。注意Grok匹配规则不会被检查。Logstash可以读取多个配置文件从一个目录。如果同时指定了`--log.level=debug`,Logstash将组合多个配置文件的日志,并给每个配置块添加来源注释。 `-r, --config.reload.automatic` ​ 监控配置文件的变化,并在其发生变化的是后重载。NOTE:使用SIGHUP信号也可以重载配置文件,默认此配置为false。 `--config.reload.interval RELOAD_INTERVAL` ​ 检查配置文件变化的间隔时间,默认是"3s"。 `--http.host HTTP_HOST` ​ 指定要绑定的IP地址,默认是"127.0.0.1"。 `--http.port HTTP_PORT` ​ 指定监听的端口。默认是9600-9700。可以接受9600-9700这种格式的范围设定,Logstash会使用第一个可用的端口。 `--log.format FORMAT` ​ 指定Logstash记录日志的格式,JSON(每行一个事件)或文本(使用Ruby’s Object#inspect)。默认是文本。 `--path.settings SETTINGS_DIR` ​ 指定包含`logstash.yml`配置文件以及log4j配置。此设置还可以通过LS_SETTINGS_DIR 变量来设置。默认的目录是Logstash家目录下的`config`目录。 `-h, --help` ​ 显示帮助信息。