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_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目录布局 |
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。