ElasticSearch FileBeat 或 LogStash SysLog 输入推荐

标签 elasticsearch logstash filebeat

我计划从无法直接安装 beats 的各种网络设备接收 SysLog 数据,并试图找出解决问题的最佳方法。我知道 Beats 正在被更多地利用,并且看到它支持接收 SysLog 数据,但还没有找到图表或说明哪种配置是前进的最佳实践。 FileBeat 看起来很吸引人,因为其中一些网络设备是 Cisco 模块。将其分解为最简单的问题,配置应该是以下之一还是其​​他模型?

  • 网络设备 > LogStash > 弹性
  • 网络设备 > LogStash > FileBeat > 弹性
  • 网络设备 > FileBeat > 弹性
  • 网络设备 > FileBeat > LogStash > 弹性

  • 当然,我们希望网络数据到达 Elastic,但我们也在考虑其他一些外部用途,例如可能将 SysLog 数据发送到单独的 SIEM 解决方案。我知道我们可以将 LogStash 配置为输出到 SIEM,但是您可以以相同的方式从 FileBeat 输出,还是这会成为最终在某个时候发送到 LogStash 的原因?

    先感谢您!

    最佳答案

    我们的 SIEM 基于弹性,我们尝试了您也描述的多种方法。最后,我们在设备和 Elasticsearch 之间使用 Beats 和 Logstash。这就是为什么:
    我们的基础设施庞大、复杂且异构。 Filebeat syslog 输入仅支持 BSD (rfc3164) 事件和一些变体。使用提到的 cisco 解析器也消除了很多。然后,Logstash 使用 syslog_pri 过滤器处理剩余的、仍未解析的事件(在我们的例子中很多)。最后,对于所有仍未解析的事件,我们都有 GROK。

    除了 syslog 格式之外,还有其他问题:事件的时间戳和起源。某些事件缺少任何时区信息,并将通过主机名/IP 映射到特定时区,从而修复时间戳偏移。其他事件具有非常奇特的日期/时间格式(logstash 正在处理)。其他事件包含 ip 但不包含主机名。在这种情况下,我们在 logstash 中使用 dns 过滤器,以提高消息的质量(和 thaceability)。

    我认为,您应该尝试在 filebeat 和 logstash 之后尽可能多地进行预处理/解析。没有logstash,elasticsearch中有摄取管道,beats中有处理器,但它们都不像logstash那样完整和强大。如果您已经有 logstash 值类,那么只会有一个新的 syslog 管道;)

    编辑 :

    最后是您的 SIEM。使用 Beats,您的输出选项和格式非常有限。 Filebeat 还将您限制为单个输出。
    在 Logstash 中,您甚至可以拆分/克隆事件并使用不同的协议(protocol)和消息格式将它们发送到不同的目的地。

    关于ElasticSearch FileBeat 或 LogStash SysLog 输入推荐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59650122/

    相关文章:

    elasticsearch - Elasticsearch-过滤条件顺序

    elasticsearch - 如何获取 PIG 中一组字段的 DISTINCT 值?

    c# - 聚合上的 Elastic NEST 过滤器

    spring - 意外字符('-'(代码45)):期望的空格用于分隔根级别值

    elasticsearch - Grok模式在Kibana Grok调试器上可以正常工作,但不能与Logstash一起使用

    elasticsearch - Logstash输出以Elasticsearch连接为条件

    spring - Elasticsearch和Spring兼容性(2019年3月)

    ssl - SAN 在 SSL 证书中被清除

    azure - 如果我想通过 azure 函数查看 Kibana 日志,我应该在哪里安装 Filebeat?

    elasticsearch - Elastic HeartBeat配置为捕获更改状态