重新启动Logstash后,有时会发现Logstash会复制日志事件。想知道应用start_position
,sincedb_path
,sincedb_write_interval
配置选项的正确方法是什么。
/home/tom/testData/*.log
XXX.log
文件重命名为XXX-<date>.log
并创建新的XXX.log
文件。在这种情况下,名称不会更改,但inode会更改。如果有人能对此有所了解,我们将非常感激。
input {
file {
path => "/home/tom/testData/*.log"
type => "log"
start_position => "beginning"
sincedb_path => "/persistent/loc"
sincedb_write_interval => 10
}
}
答案 0 :(得分:5)
start_position(开头或结尾)仅用于logstash尚未看到的文件。使用“开始”的唯一原因是当您尝试加载旧文件时。
sincedb_path只需要是logstash对注册表具有写权限的目录。
sincedb_write_interval定义了logstash应该写sincedb注册表的频率。一个更大的值会使你在logstash崩溃时面临风险。
如果您有多个与您的glob匹配的文件,则logstash会通过在注册表中包含多个条目来单独跟踪它们。
注册表包含inode编号,因此logstash知道在该类型的轮换中该怎么做。