企业总是设法寻找适用的工具满足需求,并让监控,日志记录和故障分析尽可能高效和快速。
Zebrium
你可能会优先考虑Prometheus(普罗米修斯)或ELK?但Zebrium却也能作为优先选项。
这家新成立的初创公司最近入选了“Gartner 2020年值得关注的25家企业软件初创企业”。
谈到优秀实践,Zebrium最近还帮助Sweetwater将事件跟踪时间从3小时减少到只有几分钟。Zebrium甚至可以发现以前未发现的隐藏问题。这是一项出色的功能,因为它可以帮助在问题影响客户之前发现问题。
那么,什么使Zebrium在竞争中脱颖而出?Zebrium使用人工智能来发现问题以及自动发现根本原因,而所有其他工具都依赖于用户手动添加规则。Zebrium也可以用作独立的日志管理平台,也可以与ELK Stack或其他日志管理器集成。
优点:易于启动;只需复制/粘贴自定义的HELM或kubectl命令;自动检测问题和根本原因,无需手动规则;可以用作独立的日志管理工具,也可以用作现有日志管理工具(例如ELK Stack)的机器学习附件。
缺点:免费计划限制为每天500 MB,保留3天;支持Kubernetes,Docker和大多数常见平台,但不支持Windows。
Sematext
用于日志管理和应用程序性能监控的解决方案。Sematex提供了系统状态的全栈可见性。
Sematext不仅限于Kubernetes日志,还可以监控和Kubernetes(基于度量标准和日志)。收集到的日志会自动针对几种不同的已知日志格式进行解析/结构化,并且用户还可以提供自定义日志的模式。它还公开了Elasticsearch API,因此也可以使用任何与Elasticsearch配合使用的工具,例如Filebeat和Logstash与Sematex。可以将其用作ELK的变体或与本机Sematext生态系统一起使用。该工具有助于创建特定规则,来监控特定情况并捕获异常。借助Sematex全面的实时仪表板,客户可以控制和监控所有服务。
优点:与其他Sematext云工具集成;可配置超限来阻止日志被接受从而控制成本;具有ELK的灵活性。
缺点:
Sematext小部件和Kibana不能在一个仪表板上混合使用;自定义解析需要在日志传送器中完成,Sematext仅在服务器端解析Syslog和JSON;跟踪功能较弱,但已经在计划进行改进。
Loki
Loki是一个受Prometheus启发的多租户和高度可用的日志聚合工具。这款工具有助于收集日志,但是用户将需要为其建立手动规则。Loki与Grafana,Prometheus和Kubernetes合作。Loki可以让内部流程更有效率。如,它节省了Paytm Insider 75%的日志记录和监控成本。Loki不会索引你的日志内容,而是仅索引每个事件流的一组标签,因此效率很高。
优点:拥有大型的生态系统;丰富的可视化功能;由于未索引日志内容而提高了效率。
缺点:未针对Kubernetes日志管理进行优化;大量的架构规则手工工作;缺少内容索引可能会限制搜索性能。
ELK Stack
ELK是很著名的日志管理开源工具。ELK是Elasticsearch,Logstash和Kibana的首字母缩写。每个组件负责日志记录过程的不同部分。Elasticsearch是一个功能强大且可扩展的搜索系统,Logstash聚合并处理日志,而Kibana提供了一个分析和可视化界面,可帮助用户理解数据。它们共同为Kubernetes提供了全面的日志记录解决方案。但ELK Stack还有许多其他变体,如EFK Stack,即Elasticsearch,Fluentd和Kibana组成。
ELK被Adobe,T-Mobile和沃尔玛等许多大公司使用,因此可以证明它的可生产性。所以ELK是一个可靠且经过验证的工具。但他会带来复杂性和工作所需的大量资源。
优点:ELK是众所周知的,并且拥有庞大的社区;非常广泛的平台支持;Kibana中丰富的分析和可视化功能;需要对日志和手动定义的警报规则进行复杂的分析。
缺点:维持规模难度大;需要很多调整,特别是对于大型环境;大量的资源需求;某些功能需要付费许可证。
Fluentd
Fluentd是一个跨平台的开源数据收集器,提供了统一的日志记录层,但它不是独立的日志管理器。作为颇受欢迎的工具,拥有Atlassian,微软和亚马逊等5000多个客户。看到这些大型客户,可印证其可靠性和性能。此外,Fluentd还创建了一个统一的日志记录层,可帮助更有效地使用数据并在软件上快速迭代数据。它可以帮助你每秒处理120000条记录。
优点:大型社区和插件生态系统;统一日志记录层;经过验证的可靠性和性能。可以在不到10分钟的时间内安装完毕。
缺点:难以配置;对转换数据的支持有限;不是完整的日志记录解决方案。
结语
你可能会问,为什么没有将Prometheus列入名单,因为本文专注于日志监控工具,而Prometheus处理指标不支持日志。
所以,如果你对手动搜索日志的不擅长,或者不愿意构建和管理警报规则,则应尝试使用基于机器学习算法的Zebrium。这可能会节省大量时间,并摆脱创建大量规则的繁琐任务。
如果你正在寻找更主流的东西,并且知道要创建哪些规则,可尝试使用Loki或Sematext,它们将是非常适合的高效工具。
此外,你希望在公有云中使用日志监控,则不妨使用云提供商提供的服务,比如AWS的CloudWatch,而他们仅对自家云中的业务的提供支持。
如果你的日志有多个或特殊的来源,则可尝试使用Fluentd及其统一的日志记录层,但是你仍然需要一个日志记录工具。