[logstash-input-file]插件使用详解

  前篇介绍过Logstash的使用,本篇继续深刻,介绍下最经常使用的input插件——file。html

  这个插件能够从指定的目录或者文件读取内容,输入到管道处理,也算是logstash的核心插件了,大多数的使用场景都会用到这个插件,所以这里详细讲述下各个参数的含义与使用。node

最小化的配置文件

  在Logstash中能够在 input{} 里面添加file配置,默认的最小化配置以下:数组

input {  file { path => "E:/software/logstash-1.5.4/logstash-1.5.4/data/*" } } filter { } output { stdout {} }

  固然也能够监听多个目标文件:ide

input {  file { path => ["E:/software/logstash-1.5.4/logstash-1.5.4/data/*","F:/test.txt"] } } filter { } output { stdout {} }

  文件的路径名须要时绝对路径,而且支持globs写法学习

其余的配置

  另外,处理path这个必须的项外,file还提供了不少其余的属性:ui

input {  file { #监听文件的路径 path => ["E:/software/logstash-1.5.4/logstash-1.5.4/data/*","F:/test.txt"] #排除不想监听的文件 exclude => "1.log" #添加自定义的字段 add_field => {"test"=>"test"} #增长标签 tags => "tag1" #设置新事件的标志 delimiter => "\n" #设置多长时间扫描目录,发现新文件 discover_interval => 15 #设置多长时间检测文件是否修改 stat_interval => 1 #监听文件的起始位置,默认是end start_position => beginning #监听文件读取信息记录的位置 sincedb_path => "E:/software/logstash-1.5.4/logstash-1.5.4/test.txt" #设置多长时间会写入读取的位置信息 sincedb_write_interval => 15 } } filter { } output { stdout {} }

  其中值得注意的是:spa

  1 path 插件

  是必须的选项,每个file配置,都至少有一个path日志

  2 exclude code

  是不想监听的文件,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,那么就会以下所示。这个选项,一般在多行事件中比较有用。

  暂时关于file就研究的这么多,后续会深刻学习源码,作更多的分享。

参考

【1】logstash官方文档:https://www.elastic.co/guide/en/logstash/current/plugins-inputs-file.html#plugins-inputs-file-sincedb_path

相关文章
相关标签/搜索