我使用logstash已经有一段时间了。我尝试在文件插件中使用自定义分隔符。我正在阅读一个静态文件。我看到文件插件提取 32KB 数据并将其传递给标记器以按分隔符分割。
data = watched_file.file_read(32768)
changed = true
watched_file.buffer_extract(data).each do |line|
listener.accept(line)
@sincedb[watched_file.inode] += (line.bytesize + @delimiter_byte_size)
end
当最后一个字节不是新行(即:行的一部分)时会发生什么。我的正则表达式在部分行上失败并跳过它。在这种情况下,我失去了一个事件。我在自定义分隔符上看到了这一点,它也可能发生在 \n 分隔符上。请赐教。