input {
file {
path => "/usr/local/elk/mos-log/mt.log"
type => "mos-mt-log"
codec => multiline {
pattern => "^["
negate => true
what => "next"
}
start_position => "end"
}
file {
path => "/usr/local/elk/mos-log/rpt.log"
type => "mos-rpt-log"
codec => multiline {
pattern => "^["
negate => true
what => "next"
}
start_position => "end"
}
}
这是conf文件中的input,再我每往日志文件手动添加一条日志时,logstash总是从头读取一遍,怎么样使logstash只去读取我新添加的日志
参考:http://blog.csdn.net/datadev_sh/article/details/79040318
你使用filebeat,也可以使用logstash中的filebeat插件,或者使用flume
logstash的file input默认就是读取最后一行的,并且logstash启动后会记录读取位置,只会读取文件末尾新增的记录。
经过我的测试,如果使用vi的方式往文件里写,是有可能出现读取行数和位置不固定的情况,但是如果用echo “” >>的方式,可以保证只读取最后添加的一行、
你的start_position写的位置是错误的。
end改beginning,忘采纳
你好,你这个问题解决了吗,为什么我改成start_position => "beginning"还是不行,仍然每次都是从头读取
不能手动添加数据 如果测试 linux用 echo "222">> 文件名
日志组件按照每天的日期产生文件夹,写入日志;如何将这些文件夹下的日志写入logstash ,如何批准