logstash输入(3)file
描述
监听文件并读取文件内容作为事件。
1 | input{ |
参数
参数 | 类型 | 是否必须 | 默认值 |
---|---|---|---|
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秒。