Logstash 读取日志文件,增量

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只去读取我新添加的日志

7个回答

图片说明

start_position 参数放在file的括号里面,你放在了外面

参考: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 ,如何批准

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐