5.1、将文件作为input输入

Logstash使用一个名叫FileWatch的Ruby Gem库来监听文件的变化,这个库支持Glob展开文件路径,而且会记录一个叫.sincedbd 数据库文件来跟踪监听的日志文件的当前读取位置。 sincedb文件中记录了每个被监听的文件的inode,major number,minor number和pos。

配置示例

input {
    file {
        path => ["/var/log/*.log", "/var/log/message"]
        type => "system"
        start_position => "beginning"
    }
}

解释:

FileWatch库中支持一下配置项:

参数 类型 是否必选 默认值 描述
add_field hash No {} 在事件中加入一个field
close_older number No 3600 一个已经监听中的文件,如果超过这个值的时间内没有更新内容,就关闭监听它的文件句柄。默认是3600秒,即一个小时。【时间点短】
codec codec No "plain" codec用于输入的数据,在数据进入到ipnput之前,可以使用input codecs对数据进行解码,从而省去了使用单独的filter来完成这项工作
delimiter string No "\n" 设置行与行之间的分隔符,默认使用”\n“
discover_interval number No 15 设置logstash每隔多久去检查一次被监听的path下是否有新文件。默认值是15秒
exclude array No 不想被监听的文件可以排除出去,这里跟path 一样支持glob展开
ignore_older number No 86400 在每次检查文件列表的时候,如果一个文件的最后修改时间超过这个值,就忽略这个文件。默认是86400秒,即一天
max_open_files number No 配置当前input可以监控的文件(句柄)的最大值。当我们需要处理的文件大于这个参数的值时,使用close_older参数将一些文件关闭
path array Yes 用来设置要监控的input目标文件的文件路径,可以使用通配符的方式描述文件路径,如/var/log/.log。如果设置的值为/var/log/**/.log, 会在/var/log路径下,递归的寻找后缀为log的目标文件
sincedb_path string No 如果你不想用默认的$HOME/.sincedb(windows平台上在C:\Windows\System32\Config\systemprpfile.sincedb),可以通过这个配置定义sincedb文件到其他位置
sincedb_write_interval number No 15 logstash 每隔多久写一次sincedb文件,默认是15秒
start_position string, "beginning"或“end” No “end“ logstash 从什么位置开始去读文件数据,默认是结束位置,也就是说logstash进程会以类似tail -F 的形式运行。如果你是要导入原始数据,把这个设置改为“beginning”,Logstash进程就从头开始读取,有点类似cat,但是读到最后一行不会终止,而是继续变成 tail -F。
stat_interval number No 1 logstash每隔多久检查一次被监听文件的状态(是否有更新),默认是1秒
tags array No 添加一个任意的数字作为当前事件的标签,这个标签对我们后续的工作会有帮助
type string No input的所有事件都需要添加一个type属性,types属性主要在filter场景中使用。type会作为事件的一部分进行存储,因此后续也可以用type作为关键字在kibana中搜索

注意end

因为windows平台上没有inode的概念,Logstash某些版本在windows平台上监听文件不是很靠谱。windows平台上,推荐考虑使用nxlog作为收集端。

results matching ""

    No results matching ""