ELK - 当系统每个日志输出一个文件时如何收集日志?

时间:2021-04-23 15:38:10

标签: logstash elastic-stack filebeat elk

假设我有一个系统,它不是在给定的日志文件上附加日志行,而是为每个“日志事件”输出单独的文件。这些文件具有通用名称模式,但包含时间戳和另一个可变参数。

./log/202104231115012_SYSTEM_FOO.out
./log/202104231116452_SYSTEM_BAR.out
./log/202104231117568_SYSTEM_BAZ.out
./log/202104231120711_SYSTEM_FOO.out

Filebeat 或 Logstash 中是否有任何标准功能或配置来收集这些日志,或者我首先需要另一个后台进程(即 bash 脚本)将所有这些文件连续附加到一个全局 .log 文件中吗?

2 个答案:

答案 0 :(得分:1)

您可以在 file 模式下使用 read 输入。请注意,默认操作是读取文件后将其删除,但您可以将其更改为仅记录已读取文件。

filebeat 也可以基于通配符模式读取。它比 logstash 重量更轻,因此如果您不在管道中进行其他处理,您可能更喜欢这样做。

答案 1 :(得分:0)

有两种选择:

使用 Logstash 也会在输出格式方面为您提供最灵活的解决方案,但正如 Badger 所说的那样,它对资源的占用会更大。