代码语言:javascript复制
监听文件变化,记录一个.sincedb的数据库文件跟踪监听文件读取位置(记录的是时间戳)
配置案例
input {
file {
path => ["/data/test/test/*.log"]
type => "demo-log"
start_position => "beginning"
}
}
output {
stdout{
codec=>rubydebug
}
}
检查配置
bin/logstash -f /etc/logstash/conf.d/demo.conf -t
启动
bin/logstash -f /etc/logstash/conf.d/demo.conf
测试
在/data/test/test/目录建立1.log文件,然后执行
echo `date` >> /data/test/test/1.log
观察
{
"path" => "/data/test/test/1.log",
"@timestamp" => 2017-06-12T06:43:15.742Z,
"@version" => "1",
"host" => "192-168-56-201",
"message" => "Mon Jun 12 06:43:15 UTC 2017",
"type" => "demo-log"
}
配置说明
path 监听文件绝对路径,可以使用字符串或数组
excude 排除不监听的文件,可以使用字符串或者数组
type 事件添加分类字段
start_position 只能是"beginning"或者"end",默认是end,end类似tail -f;beginning是从文件开头开始(导入历史数据)
stat_interval 每隔多久检查一次文件变化,默认1s
add_field 新增一个字段
tags 用于增加一些标签,这个标签可能在后续的处理中起到标志的作用
delimiter 分行标识
discover_interval 每隔多久检查是否有新文件,默认15s
close_older 如果监听的文件达到设置的时间内未改动则关闭文件句柄,默认3600
ignore_older 在每次检查文件列表的时候,如果一个文件的最后修改时间超过这个值,就忽略这个文件。默认是 86400 秒
sincedb_path 记录读取文件位置
sincedb_write_interval 每隔多久写入读取文件位置信息,默认15s