这个插件可以从指定的目录或者文件读取内容,输入到管道处理,也算是logstash的核心插件了,大多数的使用场景都会用到这个插件,因此这里详细讲述下各个参数的含义与使用
1 path
是必须的选项,每一个file配置,都至少有一个path
- 文件的路径名需要时绝对路径
- 支持globs写法
- 如果想要监听多个目标文件可以改成数组
2 exclude
是不想监听的文件,logstash会自动忽略该文件的监听。配置的规则与path类似,支持字符串或者数组,但是要求必须是绝对路径。
3 start_position
是监听的位置,默认是end,即一个文件如果没有记录它的读取信息,则从文件的末尾开始读取,也就是说,仅仅读取新添加的内容。对于一些更新的日志类型的监听,通常直接使用end就可以了;相反,beginning就会从一个文件的头开始读取。但是如果记录过文件的读取信息,这个配置也就失去作用了。
4 sincedb_path
这个选项配置了默认的读取文件信息记录在哪个文件中,默认是按照文件的inode等信息自动生成。其中记录了inode、主设备号、次设备号以及读取的位置。因此,如果一个文件仅仅是重命名,那么它的inode以及其他信息就不会改变,因此也不会重新读取文件的任何信息。类似的,如果复制了一个文件,就相当于创建了一个新的inode,如果监听的是一个目录,就会读取该文件的所有信息。
5 其他的关于扫描和检测的时间,按照默认的来就好了,如果频繁创建新的文件,想要快速监听,那么可以考虑缩短检测的时间。
6 add_field
就是增加一个字段,
file {add_field => {"test"=>"test"}path => "D:/tools/logstash/path/to/groksample.log"start_position => beginning}
7 tags
用于增加一些标签,这个标签可能在后续的处理中起到标志的作用
8 delimiter
是事件分行的标志,如果配置成123,那么就会如下所示。这个选项,通常在多行事件中比较有用。
9.ignore_older
- 值类型为数字或string_duration
- 此设置没有默认值。
当文件输入发现在指定的持续时间(如果指定了数字,则为秒)之前最后修改的文件时,将忽略该文件。发现之后,如果修改了忽略的文件,则不再忽略它,并且读取任何新数据。默认情况下,此选项处于禁用状态。请注意,该单位以秒为单位。
sincedb_clean_after
编辑
- 值类型为数字或string_duration
- 此设置的默认值为“ 2周”。
- 如果指定了一个数字,则将其解释为天,并且可以为十进制,例如0.5为12小时。
现在,sincedb记录具有与其关联的最后一个活动时间戳记。如果在过去N天内未在跟踪文件中检测到任何更改,则它的sincedb跟踪记录将过期,并且不会保留。此选项有助于防止索引节点回收问题。
sincedb_path
编辑
- 值类型为字符串
- 此设置没有默认值。
sincedb数据库文件的路径(保留受监视日志文件的当前位置的路径),该路径将被写入磁盘。默认情况下会将sincedb文件写入到<path.data>/plugins/inputs/file
NOTE:它必须是文件路径,而不是目录路径