在logstash中记录日志

时间:2016-06-29 06:28:23

标签: logstash elastic-stack logstash-configuration filebeat logstash-file

我使用文件作为logstash中日志的输入。我的日志文件每天都会轮换,所以我想问一下如何配置logstash的文件插件,以便它可以处理每天轮换的文件。除此之外,日志旋转也可用于文件节拍。

1 个答案:

答案 0 :(得分:3)

我试图部分回答你的问题。

首先 - 记录旋转。

来自文档:

  

请注意,旋转的文件名将被视为新文件,因此如果   start_position设置为开始旋转的文件   再加工。

https://www.elastic.co/guide/en/logstash/current/plugins-inputs-file.html

这意味着,如果您在文件轮换中重命名,则可能会使文件翻倍(除非路径排除了我认为的重命名文件)。

如果您的路径排除了重命名的文件,那么它应该没问题。

我以不同的方式解决了这个问题(相应地在java和python中)。

我禁用文件重命名,而是使用日期前缀命名日志文件。所以对我来说,在我的java应用程序中,文件名是:

my-server-log-%h-%d.log

由于我在分布式环境中工作,因此我将主机名合并到我的日志文件名中。

%h =主机名 %d =日期

这最终在我的文件中被命名为:

my-server-log-pandaadb-2016-06-20.log

永远不会重命名此文件。我修改了我的旋转算法,只是不重命名,而是在午夜创建一个新文件并保持上一个文件不变。 这具有logstash(正确)知道它已读取前一个文件中的所有行的效果。因为我在输入中使用通配符,所以它会获取新文件。没有日志重复。

顺便说一句,这与rsync结合使用效果也很好。

我希望有所帮助,

Artur

编辑:到目前为止我还没有使用过filebeat,所以我无法对该部分发表评论。