Logstash 参考指南(logstash.yml)

logstash.yml

你可以在Logstash设置文件logstash.yml中设置选项来控制Logstash执行,例如,你可以指定管道设置、配置文件的位置、日志记录选项和其他设置。当你运行Logstash时,logstash.yml文件中的大多数设置都可以作为命令行标志使用,在命令行中设置的任何标志都会覆盖logstash.yml文件中的相应设置。

logstash.yml文件是用YAML编写的,它的位置因平台而异(参见Logstash目录布局),你可以以层次结构形式指定设置或使用平面键,例如,要使用分层表单设置管道批处理大小和批延迟,你需要指定:

pipeline:
  batch:
    size: 125
    delay: 50

要表示与平面键相同的值,需要指定:

pipeline.batch.size: 125
pipeline.batch.delay: 50

logstash.yml文件还支持bash风格的环境变量插值设置值。

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的。

模块也可以在logstash.yml文件中指定,模块定义将具有这种格式:

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设置

设置描述默认值
node.name节点的描述性名称机器的主机名
path.dataLogstash及其插件用于任何持久需求的目录LOGSTASH_HOME/data
pipeline.id管道的IDmain
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.intervalLogstash多久检查一次配置文件以查看更改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: persistedpath.data/queue
queue.page_capacity启用持久队列时使用的页面数据文件的大小(queue.type: persisted),队列数据由分隔成页面的仅追加的数据文件组成64mb
queue.max_events启用持久队列时队列中未读事件的最大数量(queue.type: persisted0(无限)
queue.max_bytes队列的总容量(字节数),确保磁盘驱动器的容量大于这里指定的值,如果queue.max_eventsqueue.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日志级别,有效的选项是:fatalerrorwarninfodebugtraceinfo
log.format日志格式,设置为json日志以JSON格式,或plain使用Object#.inspectplain
path.logsLogstash将其日志写到的目录LOGSTASH_HOME/logs
path.plugins哪里可以找到自定义插件,你可以多次指定此设置以包含多个路径,插件应该在特定的目录层次结构中:PATH/logstash/TYPE/NAME.rbTYPEinputsfiltersoutputscodecsNAME是插件的名称特定于平台的,请参阅Logstash目录布局

相关推荐