你能够在Logstash设置文件logstash.yml
中设置选项来控制Logstash执行,例如,你能够指定管道设置、配置文件的位置、日志记录选项和其余设置。当你运行Logstash时,logstash.yml
文件中的大多数设置均可以做为命令行标志使用,在命令行中设置的任何标志都会覆盖logstash.yml
文件中的相应设置。html
logstash.yml
文件是用YAML编写的,它的位置因平台而异(参见Logstash目录布局),你能够以层次结构形式指定设置或使用平面键,例如,要使用分层表单设置管道批处理大小和批延迟,你须要指定:node
pipeline: batch: size: 125 delay: 50
要表示与平面键相同的值,须要指定:json
pipeline.batch.size: 125 pipeline.batch.delay: 50
logstash.yml
文件还支持bash风格的环境变量插值设置值。segmentfault
pipeline: batch: size: ${BATCH_SIZE} delay: ${BATCH_DELAY:50} node: name: "node_${LS_NODE_NAME}" path: queue: "/tmp/${QUEUE_DIR:queue}"
注意,${VAR_NAME:default_value}
表示法是受支持的,在上面的示例中,它设置了一个默认的批延迟50
和一个默认的path.queue
为/tmp/queue
的。bash
模块也能够在logstash.yml
文件中指定,模块定义将具备这种格式:jvm
modules: - name: MODULE_NAME1 var.PLUGIN_TYPE1.PLUGIN_NAME1.KEY1: VALUE var.PLUGIN_TYPE1.PLUGIN_NAME1.KEY2: VALUE var.PLUGIN_TYPE2.PLUGIN_NAME2.KEY1: VALUE var.PLUGIN_TYPE3.PLUGIN_NAME3.KEY1: VALUE - name: MODULE_NAME2 var.PLUGIN_TYPE1.PLUGIN_NAME1.KEY1: VALUE var.PLUGIN_TYPE1.PLUGIN_NAME1.KEY2: VALUE
若是使用命令行标志--modules
,则忽略在logstash.yml
文件中定义的任何模块。
logstash.yml
文件包括如下设置,若是你使用的是X-Pack,请参阅Logstash中的X-Pack设置。ide
设置 | 描述 | 默认值 |
---|---|---|
node.name |
节点的描述性名称 | 机器的主机名 |
path.data |
Logstash及其插件用于任何持久需求的目录 | LOGSTASH_HOME/data |
pipeline.id |
管道的ID | main |
pipeline.workers |
将并行执行管道的过滤和输出阶段的工人数量,若是你发现事件正在备份,或者CPU没有饱和,请考虑增长这个数字,以更好地利用机器处理能力 | 主机CPU核心的数量 |
pipeline.batch.size |
在尝试执行过滤器和输出以前,单个工做线程将从输入中收集的最大事件数,更大的批处理大小一般更高效,但代价是增长内存开销,你可能须要增长jvm.options 配置文件中的JVM堆空间,有关更多信息,请参阅Logstash配置文件 |
125 |
pipeline.batch.delay |
当建立管道事件批处理时,在向管道工做人员发送一个较小的批处理以前,等待每一个事件的时间为多少毫秒 | 50 |
pipeline.unsafe_shutdown |
当设置为true 时,即便内存中仍然存在游离事件,也会在关闭期间强制Logstash退出,默认状况下,Logstash将拒绝退出,直到全部接收到的事件都被推送到输出,启用此选项可能致使关闭期间的数据丢失 |
false |
path.config |
主管道的Logstash配置路径,若是指定目录或通配符,配置文件将按字母顺序从目录中读取 | 特定于平台的,请参阅Logstash目录布局 |
config.string |
包含要用于主管道的管道配置的字符串,使用与配置文件相同的语法 | None |
config.test_and_exit |
当设置为true 时,检查配置是否有效,而后退出,注意,在此设置中没有检查grok模式的正确性,Logstash能够从一个目录中读取多个配置文件,若是你把这个设置和log.level: debug 结合起来,Logstash将对合并后的配置文件进行日志记录,并用它来自的源文件注解每一个配置块 |
false |
config.reload.automatic |
当设置为true 时,按期检查配置是否已更改,并在更改配置时从新加载配置,这也能够经过SIGHUP信号手动触发 |
false |
config.reload.interval |
Logstash多久检查一次配置文件以查看更改 | 3s |
config.debug |
当设置为true 时,将完整编译的配置显示为debug日志消息,你还必须设置log.level: debug ,警告:日志消息将包含传递给插件配置的任意密码选项,可能会致使明文密码出如今日志中! |
false |
config.support_escapes |
当设置为true 时,引号中的字符串将处理如下转义序列:\n 变成文字换行符(ASCII 10),\r 变成文字回车(ASCII 13),\t 变成文字制表符(ASCII 9),\\ 变成字面反斜杠\ ,\" 变成一个文字双引号,\' 变成文字引号 |
false |
modules |
当配置时,modules 必须位于上表中描述的嵌套YAML结构中 |
None |
queue.type |
用于事件缓冲的内部队列模型,为基于内存中的遗留队列指定memory ,或者persisted 基于磁盘的ACKed队列(持久队列) |
memory |
path.queue |
启用持久队列时存储数据文件的目录路径(queue.type: persisted ) |
path.data/queue |
queue.page_capacity |
启用持久队列时使用的页面数据文件的大小(queue.type: persisted ),队列数据由分隔成页面的仅追加的数据文件组成 |
64mb |
queue.max_events |
启用持久队列时队列中未读事件的最大数量(queue.type: persisted ) |
0(无限) |
queue.max_bytes |
队列的总容量(字节数),确保磁盘驱动器的容量大于这里指定的值,若是queue.max_events 和queue.max_bytes 都指定,Logstash使用最早达到的任何标准 |
1024mb(1g) |
queue.checkpoint.acks |
当启用持久队列时,在强制执行检查点以前的最大ACKed事件数(queue.type: persisted ),指定queue.checkpoint.acks: 0 设置此值为无限制 |
1024 |
queue.checkpoint.writes |
启用持久队列时强制执行检查点以前的最大写入事件数(queue.type: persisted ),指定queue.checkpoint.writes: 0 设置此值为无限制 |
1024 |
queue.drain |
启用时,Logstash会一直等到持久队列耗尽后才关闭 | false |
dead_letter_queue.enable |
标记指示Logstash以插件支持的DLQ特性 | false |
dead_letter_queue.max_bytes |
每一个dead letter队列的最大大小,若是条目将增长dead letter队列的大小,超过此设置,则删除条目 | 1024mb |
path.dead_letter_queue |
存储dead letter队列数据文件的目录路径 | path.data/dead_letter_queue |
http.host |
指标REST端点的绑定地址 | "127.0.0.1" |
http.port |
指标REST端点的绑定端口 | 9600 |
log.level |
日志级别,有效的选项是:fatal 、error 、warn 、info 、debug 、trace |
info |
log.format |
日志格式,设置为json 日志以JSON格式,或plain 使用Object#.inspect |
plain |
path.logs |
Logstash将其日志写到的目录 | LOGSTASH_HOME/logs |
path.plugins |
哪里能够找到自定义插件,你能够屡次指定此设置以包含多个路径,插件应该在特定的目录层次结构中:PATH/logstash/TYPE/NAME.rb ,TYPE 是inputs 、filters 、outputs 或codecs ,NAME 是插件的名称 |
特定于平台的,请参阅Logstash目录布局 |