让logstash每次读取文件都从头开始读取的办法

logstash有一个大坑,就是文件除了第一次读取的时候,每次只会读取更新的日志记录。对于刚入门的小白来说,比如题主我,需要经常读取日志文件,而且需要每次都从头开始读。几经周折,终于发现了一个解决办法,亲测有效。

配置代码如下:

  1. input {  
  2.     file {  
  3.         path =>[  
  4.             #log files  
  5.             "/home/husen/Desktop/log/test1.log",  
  6.             "/home/husen/Desktop/log/test2.log"  
  7.         ]  
  8.         type => "test"  
  9.         start_position => "beginning"  
  10.           
  11.         sincedb_path => "/dev/null" #从头读  
  12.           
  13.         codec => multiline {  
  14.             pattern => "^\<"  
  15.             negate => true  
  16.             what => "previous"  
  17.         }  
  18.     }  
  19. }  
重点在第11行代码, sincedb_path是用来设置跟踪被监听的日志文件的当前读取位置参数的路径的。

但是如果我们设置为 /dev/null这个 Linux 系统上特殊的空洞文件,那么 每次启动logstash 的时候,尝试读取 sincedb 内容,都只会读到空白内容,于是logstash会以为这是第一次读取,自然每次都会从头开始读取了!

你可能感兴趣的:(Linux)