与简单的 python 日志记录 + 现有数据库日志表组合相比,使用 ELK 进行日志管理有什么优势?



假设我在自动化服务器(如 Jenkins)上运行了许多 Python 进程,假设我想使用 Python 的本机日志记录模块,除了写入 Jenkins 控制台或日志文件之外,我还想在某个地方存储和集中日志。

我想过使用 ELK,但后来我意识到我可以在现有数据库中创建一个专用的日志表(我正在使用 Redshift),使用 Grafana 之类的东西进行日志仪表板/可视化,并省去部署新系统的麻烦(我团队中的大多数人都熟悉 Redshift 但不熟悉 ElasticSearch)。

虽然这听起来很简单,但我觉得我没有看到大局,而且我会错过一些强大的功能,而像 Logstash 这样的组件最初就是为此编写的。这些功能是什么,使用 ELK 而不是我的解决方案有何优势?

谢谢!

在过去的一年里,我已经在我的公司中实现了完整的ELK堆栈。

该项目规模庞大,需要花费大量时间才能正确实施。使用 ELK 而不实施我们自己的集中式日志记录解决方案的优点是:

  1. 不需要重新发明轮子 - 已经有一款产品正在做到这一点。(而且安装部分非常简单)
  2. 它经过实战测试,可以在短时间内承受大量原木。
  3. 随着您的业务和产品的增长和转变,您将需要解析更多具有不同结构的日志,这意味着自建系统上的数据库更改。 logstash 将为您提供过滤和解析这些新格式化日志的无限可能性。
  4. 它具有群集和 HA 功能,您可以垂直和水平扩展日志记录系统。
  5. 随着时间的推移,非常容易维护和更换。
  6. 它可以将所需的输出发送到各种产品,包括Zabbix,Grafana,elasticsearch等等。
  7. Kibana 将使您能够查看日志、构建图表和仪表板、警报等...

ELK 的选择真的是无穷无尽的,我使用它的次数越多,我就越能找到它可以帮助我的新方法。 不仅通过查看分布式远程服务器系统上的日志,还可以查看安全警报和 SLA 图表以及许多其他见解。

最新更新