用serilog直接写日志到elasticsearch是个好主意吗

Cha*_*lie 7 elasticsearch serilog elastic-stack

我正在评估有关分布式日志服务器的不同选项。

在Java世界,我看到的最流行的方案是filebeat + kafka + logstash + elasticsearch + kibana。

但是,在 .NET 世界中,有一个 serilog 可以将结构日志直接发送到 elasticsearch。所以唯一需要的组件是elasticsearch + kibana。

我搜索了很多,但是关于这个解决方案在生产中的信息并不多。我不知道它是否足以处理大量日志。

谁能给我一些建议?谢谢。

Gre*_*een 3

我也有同样的问题。我们的系统使用“经典”elk-stack架构,即 FileBeat -> LogStash -> Elastic (->Kibana)。但正如我们在具有大量日志的大型项目中发现的,Serilog是更好的解决方案,原因如下:

  1. CI\CD - 当您有不同类型、不同结构的日志并且您想要不同类型时,Serilog权力就会派上用场。您LogStash需要创建一个不同的过滤器来根据模式分解消息。这意味着日志结构方面和方面之间存在很大的耦合LogStash- 非常容易出现错误。
  2. 维护 - 由于易于 CI\CD 和单点更改,因此更容易维护大量日志。
  3. 可扩展性 -FileBeat由于注册表文件有“爆炸”的倾向,因此在处理大数据块时存在问题 - 参考个人经验堆栈溢出流问题 弹性论坛问题
  4. Filebeat更少的故障点 - 使用 Serilog,当您必须通过路径时,日志会直接发送到弹性LogStash。又一个失败的地方。

希望对您的评估有所帮助。