Logstash 日志存储-无法打开<;文件路径>;拒绝许可
我使用logstash将所有文本日志从存储区推送到弹性搜索。 我的存储容量约为1 TB。首先,我已经开始将368GB数据(可能是几十万个文件)推送到弹性搜索,但logstash失败了,出现以下错误Logstash 日志存储-无法打开<;文件路径>;拒绝许可,logstash,Logstash,我使用logstash将所有文本日志从存储区推送到弹性搜索。 我的存储容量约为1 TB。首先,我已经开始将368GB数据(可能是几十万个文件)推送到弹性搜索,但logstash失败了,出现以下错误 {:timestamp=>"2014-05-15T00:41:12.436000-0700", :message=>"/root/share/archive_data/sessionLogs/965c6f46-1a5e-4820-a68d-7c32886972fc/Log.txt: fil
{:timestamp=>"2014-05-15T00:41:12.436000-0700", :message=>"/root/share/archive_data/sessionLogs/965c6f46-1a5e-4820-a68d-7c32886972fc/Log.txt: file grew, old size 0, new size 1557420", :level=>:debug, :file=>"filewatch/watch.rb", :line=>"81"}
{:timestamp=>"2014-05-15T00:41:12.437000-0700", :message=>":modify for /root/share/archive_data/sessionLogs/965c6f46-1a5e-4820-a68d-7c32886972fc/Log.txt, does not exist in @files", :level=>:debug, :file=>"filewatch/tail.rb", :line=>"77"}
{:timestamp=>"2014-05-15T00:41:12.441000-0700", :message=>"_open_file: /root/share/archive_data/sessionLogs/965c6f46-1a5e-4820-a68d-7c32886972fc/Log.txt: opening", :level=>:debug, :file=>"filewatch/tail.rb", :line=>"98"}
{:timestamp=>"2014-05-15T00:41:12.441000-0700", :message=>"(warn supressed) failed to open /root/share/archive_data/sessionLogs/965c6f46-1a5e-4820-a68d-7c32886972fc/Log.txt: Permission denied - /root/share/archive_data/sessionLogs/965c6f46-1a5e-4820-a68d-7c32886972fc/Log.txt", :level=>:debug, :file=>"filewatch/tail.rb", :line=>"110"}
共享是网络挂载的。我正在使用root用户启动logstash。用户应该拥有装载所需的所有访问权限。
共享目录具有以下访问权限
drwxr-xr-x 44根目录0 5月13日08:36共享
现在,我的日志文件是静态的,它们不会改变
因此,我的问题是-是否有必要让logstash知道,一旦它处理一个日志文件,就不要存储文件句柄。我认为出现上述错误是因为日志文件数量巨大
我已经提交了一个日志文件,并且logstash中存在一个bug,它说当日志文件的数量较多时,logstash的性能不好
我在这里看到一些重复的问题,但我想知道是否有人有过此类问题的经验?我认为,对于logstash 1.4.2,唯一的答案是:
- 从受监视的目录中移动或删除文件
- 重新启动日志存储
我认为没有任何其他方法可以将已处理且不再添加的日志的logstash发布文件句柄保存到日志中。您有多少个文件?您需要修改系统中的“最大打开文件数”!查找这个:因为它是日志存档,我想至少会有10万个。我会看看我是否能提高到那个水平,保持系统健康。我也有同样的问题。我有一个文件夹,里面有500000个JSON,有777访问权限。我也有同样的错误。Ben Lim的建议在增加打开文件句柄时有效,我将其增加到最大值,但50万太多,无法处理。我的建议是开发一个StaticFile插件,它可以读取和处理文件,然后忘记它,而不是在所有文件上保持打开的文件句柄。如果您的所有文件都在更改,即日志流,那么我认为唯一的选项是文件插件,但是Logstash必须想出一个处理此类用例的选项。现在,Logstash会打开它监视的所有文件的文件句柄。因为我的案例是日志存档,我必须保存所有日志,所以我编写了一个快速插件来处理这个案例,它复制文件,读取文件,然后删除原始文件的副本。它解决了我的问题。