在 Logstash 中使用外部查找

Using external lookup in Logstash

我目前正在从事两个 logstash 项目,一个是监视 IIS 日志,另一个是防火墙。

现在 IIS 日志来自高使用率服务器,每个月生成大约 25GB 的日志,其中有几个。这里的问题是我们不想启用反向查找,不是在服务器上,也不是在 Logstash 中,而是从外部服务,因为我们可以在 logstash 中的 DNS 查找功能之外缓存。

我们希望通过与标准和非标准端口查找相关的防火墙项目解决的另一个问题。我们的防火墙只生成一个目标端口号,我们希望转换该端口号以使我们的 Kibana 仪表板更具可读性。防火墙有大约 10Gb/s 的流量,并产生大量的系统日志流量。

我们目前 运行 8-16 名工作人员在我们的 logstash 服务器上工作。是否有一种简单的(?)方法可以从 logstash 进行 API 调用,是否值得根据性能考虑?

我正在考虑的另一个选择是 "offline" 批处理,即 运行 将批处理作业直接用于 elasticsearch,但这很可能意味着我应该在之前有一个单独的 elasticsearch 或 redis 实例前端。

然而,最可能的最佳选择是在 Kibana 界面中进行翻译,作为脚本字段,但据我所知,这对我的用户案例不起作用?

dns{} 过滤器使用本地机器的分辨率,因此如果不创建新过滤器或拖放到 ruby{},您就无法将其与非 DNS 缓存集成。

根据您拥有的值的数量,您可以将它们发布到一个文件并使用 translate{},但我只建议将其用于专用网络查找之类的事情。

如果您的 DNS 数据在 elasticsearch 中,您可以在过滤期间查询它并以这种方式向您的事件添加字段。

对于您的防火墙端口问题,您没有提供原始值和所需值的示例,但请再次查看翻译{}或放到 ruby{}。