【问题标题】:What would be the advantages of using ELK for log management over a simple python logging + existing database log table combo?与简单的 python 日志记录 + 现有数据库日志表组合相比,使用 ELK 进行日志管理有什么优势?
【发布时间】:2020-05-28 09:33:38
【问题描述】:
假设我在 Jenkins 等自动化服务器上运行了许多 Python 进程,假设我想使用 Python 的本机日志记录模块,除了写入 Jenkins 控制台或日志文件之外,我还想存储和集中在某处记录。
我曾想过为此使用 ELK,但后来我意识到我也可以在现有数据库中创建一个专用的日志表(我正在使用 Redshift),使用 Grafana 之类的东西进行日志仪表板/可视化并保存自己部署新系统的麻烦(我团队中的大多数人都熟悉 Redshift,但不熟悉 ElasticSearch)。
虽然这听起来很简单,但我觉得我并没有看大局,我会错过一些强大的功能,比如 Logstash 等组件一开始就是为这些功能编写的。这些功能是什么?使用 ELK 代替我的解决方案有什么优势?
谢谢!
【问题讨论】:
标签:
elasticsearch
logging
logstash
elastic-stack
【解决方案1】:
在过去的一年里,我在公司实施了完整的 ELK 堆栈。
该项目规模庞大,需要花费大量时间才能正确实施。使用 ELK 而不是实现我们自己的集中式日志记录解决方案的优点是:
- 无需重新发明轮子 - 已经有一款产品正在这样做。 (而且安装部分非常简单)
- 经过实战考验,可在短时间内承受大量原木。
- 随着您的业务和产品的增长和转变,您将需要解析更多具有不同结构的日志,这意味着数据库会在自建系统上发生变化。 logstash 将为您提供过滤和解析这些新格式化日志的无限可能性。
- 它具有集群和高可用性功能,您可以纵向和横向扩展您的日志系统。
- 非常容易维护和随时间变化。
- 它可以将所需的输出发送到各种产品,包括 Zabbix、Grafana、elasticsearch 等等。
- Kibana 让您能够查看日志、构建图表和仪表板、警报等...
ELK 的选择真的无穷无尽,我使用它的次数越多,我就越能找到它可以帮助我的新方法。不仅可以查看分布式远程服务器系统上的日志,还可以查看安全警报和 SLA 图以及许多其他见解。