ElasticSearch FileBeat 或 LogStash SysLog 输入推荐
ElasticSearch FileBeat or LogStash SysLog input recommendation
我正计划从无法直接安装 beats 的各种网络设备接收 SysLog 数据,并试图找出解决此问题的最佳方法。我知道 Beats 正在被更多地利用,并且看到它支持接收 SysLog 数据,但还没有找到关于哪种配置是前进的最佳实践的图表或解释。 FileBeat 看起来很吸引人,因为一些网络设备采用了 Cisco 模块。将其分解为最简单的问题,配置应该是以下之一还是其他模型?
- 网络设备 > LogStash > Elastic
- 网络设备 > LogStash > FileBeat > Elastic
- 网络设备 > FileBeat > Elastic
- 网络设备 > FileBeat > LogStash > Elastic
当然,我们希望网络数据到达 Elastic,但我们也在考虑其他一些外部用途,例如可能将 SysLog 数据发送到单独的 SIEM 解决方案。我知道我们可以将 LogStash 配置为输出到 SIEM,但是您能以相同的方式从 FileBeat 输出吗?或者这是最终在某个时候发送到 LogStash 的原因吗?
提前致谢!
我们的 SIEM 基于 elastic,我们已经尝试了您描述的几种方法。最后,我们在设备和 elasticsearch 之间使用 Beats 和 Logstash。这就是为什么:
我们的基础设施庞大、复杂且异构。 Filebeat 系统日志输入仅支持 BSD (rfc3164) 事件和一些变体。使用提到的思科解析器也消除了很多。剩下的,仍然未解析的事件(在我们的例子中很多)然后由 Logstash 使用 syslog_pri 过滤器处理。最后,对于所有仍未解析的事件,我们都有 GROK。
除了系统日志格式之外,还有其他问题:事件的时间戳和起源。一些事件缺少任何时区信息,将由 hostname/ip 映射到特定时区,修复时间戳偏移。其他事件具有非常奇特的 date/time 格式(logstash 正在处理)。其他事件包含 ip 但不包含主机名。在这种情况下,我们在 logstash 中使用 dns 过滤器以提高消息的质量(和 thaceability)。
我个人认为,之后你应该在 filebeat 和 logstash 中尽可能地尝试 preprocess/parse。如果没有 logstash,则在 elasticsearch 中有摄取管道,在 beat 中有处理器,但两者加在一起并不像 logstash 那样完整和强大。如果您已经使用了 logstash,那么只会有一个新的 syslog 管道 ;)
编辑:
你的 SIEM 终于来了。使用 Beats,您的输出选项和格式非常有限。 Filebeat 还将您限制为单个输出。
在 Logstash 中,您甚至可以 split/clone 事件并使用不同的协议和消息格式将它们发送到不同的目的地。
我正计划从无法直接安装 beats 的各种网络设备接收 SysLog 数据,并试图找出解决此问题的最佳方法。我知道 Beats 正在被更多地利用,并且看到它支持接收 SysLog 数据,但还没有找到关于哪种配置是前进的最佳实践的图表或解释。 FileBeat 看起来很吸引人,因为一些网络设备采用了 Cisco 模块。将其分解为最简单的问题,配置应该是以下之一还是其他模型?
- 网络设备 > LogStash > Elastic
- 网络设备 > LogStash > FileBeat > Elastic
- 网络设备 > FileBeat > Elastic
- 网络设备 > FileBeat > LogStash > Elastic
当然,我们希望网络数据到达 Elastic,但我们也在考虑其他一些外部用途,例如可能将 SysLog 数据发送到单独的 SIEM 解决方案。我知道我们可以将 LogStash 配置为输出到 SIEM,但是您能以相同的方式从 FileBeat 输出吗?或者这是最终在某个时候发送到 LogStash 的原因吗?
提前致谢!
我们的 SIEM 基于 elastic,我们已经尝试了您描述的几种方法。最后,我们在设备和 elasticsearch 之间使用 Beats 和 Logstash。这就是为什么: 我们的基础设施庞大、复杂且异构。 Filebeat 系统日志输入仅支持 BSD (rfc3164) 事件和一些变体。使用提到的思科解析器也消除了很多。剩下的,仍然未解析的事件(在我们的例子中很多)然后由 Logstash 使用 syslog_pri 过滤器处理。最后,对于所有仍未解析的事件,我们都有 GROK。
除了系统日志格式之外,还有其他问题:事件的时间戳和起源。一些事件缺少任何时区信息,将由 hostname/ip 映射到特定时区,修复时间戳偏移。其他事件具有非常奇特的 date/time 格式(logstash 正在处理)。其他事件包含 ip 但不包含主机名。在这种情况下,我们在 logstash 中使用 dns 过滤器以提高消息的质量(和 thaceability)。
我个人认为,之后你应该在 filebeat 和 logstash 中尽可能地尝试 preprocess/parse。如果没有 logstash,则在 elasticsearch 中有摄取管道,在 beat 中有处理器,但两者加在一起并不像 logstash 那样完整和强大。如果您已经使用了 logstash,那么只会有一个新的 syslog 管道 ;)
编辑:
你的 SIEM 终于来了。使用 Beats,您的输出选项和格式非常有限。 Filebeat 还将您限制为单个输出。 在 Logstash 中,您甚至可以 split/clone 事件并使用不同的协议和消息格式将它们发送到不同的目的地。