logstash输入(3)file

描述

监听文件并读取文件内容作为事件。

1
2
3
4
5
6
input{
file{
# path =>"/var/log/access.log"
path =>["/var/log/access.log"]
}
}

参数

参数 类型 是否必须 默认值
close_older number或string_duration 1 hour
delimiter string \n
discover_interval number 15
exclude array
file_sort_by string last_modified
file_sort_direction string asc
ignore_older number或string_duration
mode string tail
path array
sincedb_write_interval number或string_duration 15 seconds
start_position string end
stat_interval number或string_duration 1 second

close_older

一个已经读取中的文件,如果超过这个值的时间内没有更新内容,就关闭读取它的文件句柄。默认是 3600 秒,即一小时。当检测到文件有新数据时则重新打开句柄。

delimiter

设置新行分隔符,默认为”\n”。

discover_interval

logstash每隔多久去检查一次被监听的path下是否有新文件,值为数字表示stat_interval的倍数。例如stat_interval是500ms,则每15*500毫秒(7.5秒)检查是否有新文件。

exclude

排除不想监听的文件,此处可以使用匹配模式,如:

1
exclude => "*.gz"

file_sort_by

值域:[last_modified, path]

监听文件的排序属性,logstash以该排序方式处理监听文件。

file_sort_direction

值域:[asc, desc]

监听文件的排序方式,logstash以该排序方式处理监听文件。

ignore_older

在每次检查文件列表的时候,如果一个文件的最后修改时间早于该值,则忽略该文件。

mode

值域:[tail, read]

  • tail: 读取监听文件的新增内容,EOF不起作用;
  • read: 读取监听文件内容,EOF作为每个事件的分隔符;

path

读取的监听文件的绝对路径,可以使用匹配模式,例如/var/log/*.log/var/log/**/*.log

sincedb_write_interval

监听日志文件的当前位置更新到数据库的频率(以秒为单位)。

start_position

值域:[beginning, end]
logstash从什么位置开始读取文件数据,默认是结束位置,也就是说 logstash 进程会以类似tail -F的形式运行。如果你是要导入原有数据,把这个设定改成”beginning”。

stat_interval

每隔多久检查一次被监听文件状态(是否有更新),默认是1秒。