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.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_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 日志级别,有效的选项是:fatalerrorwarninfodebugtrace info
log.format 日志格式,设置为json日志以JSON格式,或plain使用Object#.inspect plain
path.logs Logstash将其日志写到的目录 LOGSTASH_HOME/logs
path.plugins 哪里可以找到自定义插件,你可以多次指定此设置以包含多个路径,插件应该在特定的目录层次结构中:PATH/logstash/TYPE/NAME.rbTYPEinputsfiltersoutputscodecsNAME是插件的名称 特定于平台的,请参阅Logstash目录布局
阅读 6.9k

推荐阅读
风继续吹
用户专栏

技术分享与交流

865 人关注
511 篇文章
专栏主页
目录