0

我目前正在使用 logstash 将来自不同 webapps 的数十个日志文件导入 Graylog。它工作得很好,文件被标记了,所以我知道它们来自哪个 webapp。

我无法更改 webapp,因此无法将 GELF appender 添加到 webapp 的 log4j conf 中。这个想法是定期检索日志文件,解析它们并使用logstash将它们导入Graylog。

我的问题是如何确保不导入已导入的日志事件。例如,我有一个日志文件,它的日志模式会递增:log.1、log.2 等。所以当我重新导入时,我将有可能在 log.1 第一次和 2 周后出现的日志事件他们可能会在 log.3 中。恐怕我无法用logstash的文件输入“sincedb_path”和“start_position”来处理这个问题。

所以这里有一些我收集的选项,如果有人遇到同样的问题,我希望你能提供关于它们的意见:

  • 使用logstash过滤器删除某个日期之前的所有事件,需要保留每个导入文件的最后一个日志日期的索引(可能50+)和大量的配置写入
  • 在 GrayLog 中使用 drool 规则来拒绝带有时间戳的日志,该时间戳早于给定类型收到的最后一个日志
  • 要求将日志模式更改为类似 log.date 而不是重命名文件的日志模式(但我宁愿避免这种模式)
  • 还有什么想法吗?
4

0 回答 0