我也遇到了Logstash 1.3.3的问题。Logstash Jira上的相关错误报告是LOGSTASH-429 File Input-
Windows上的.sincedb文件已损坏。Boyd
Meier还创建了一个补丁。
该补丁也已经被拉入Jordan Sissel的ruby-filewatch git存储库中,以便包含在以后的版本中,但是它尚未发布。
问题来自Logstash,使用文件inode在Windows上始终返回0。博伊德·迈耶(Boyd
Meier)使用文件ID获取文件的标识符,以绕过该问题。从卷中删除文件之前,此文件ID保持不变。
如果您愿意进行一些修补,则可以从Jordan Jordan Sissel的ruby-filewatch
git存储库中修补更改。对于我刚刚打过补丁的1.3.3,并且正在针对测试日志文件进行测试的步骤如下:
- 从Github下载ruby-filewatch zip文件:Jordan Sissel的ruby-filewatch git存储库
- 将下载的zip文件解压缩到新目录
- 我必须对Ruby-filewatch lib filwatch tail.rb文件进行更改->第10行,其内容要求为“ JRubyFileExtension.jar”。我必须更改为要求使用“ java / JRubyFileExtension.jar”,否则我将收到一个错误,它在尝试读取文件时无法找到jar文件。作为参考,使整行显示为:
require "java/JRubyFileExtension.jar" if defined? JRUBY_VERSION
- 在7-Zip中打开logstash-1.3.3-flatjar.jar文件
- 将java目录从ruby-filewatch拖放到7-Zip的根文件夹中
- 将所有文件从ruby-filewatch lib filewatch文件夹拖放到7-Zip中的filewatch文件夹中,覆盖所有现有文件
现在,当您对多个日志文件运行它时,您应该发现sincedb包含多个条目,并且这些条目的显示类似于1717916447-2604966-851968 0
2428312038。如果您在查找sincedb文件时遇到麻烦并且未设置sincedb_path在您的配置文件中,可以在运行jar的用户的主目录中找到它。如果您是您的用户,则可以使用Windows键+运行->%USERPROFILE%->确定轻松访问它。
与往常一样,打补丁时要小心,并在部署到生产系统之前进行全面测试。



