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