一、前言
在一个完整的的分布式系统中,日志平台必不可缺,它是我们排查问题,观测业务处理状况,系统运行状况的重要途径,实际项目中一般分为自建和云上,以下对两种选型做一个对比。
二、选型
-
自建平台
-
场景:
- 自定义需求:需要高度自定义的日志管理和分析功能。
- 数据隐私和安全:有严格的数据隐私和安全要求,不希望或不允许日志数据托管在第三方云服务上。
- 成本控制:如果本身具备充足的硬件资源,对于大规模日志数据处理,有时自建系统的长期成本更低。
- 复杂部署环境:需要在复杂的混合云或多云环境中部署,能够灵活适应各种环境。
- 开源偏好:偏好使用开源服务,想实现完全控制和管理。
-
优缺点
- 优点:
- 高度可定制化。
- 数据完全自主可控。
- 无需依赖外部服务,具备较高的灵活性。
- 缺点:
- 初期投入高,需要部署和维护。
- 需要专业团队进行管理和优化。
- 扩展性和弹性较难实现,需要自己管理硬件资源。
- 优点:
-
常见组合
- ELK:ES, LogStash, Kibana
- EFK:使用轻量级FileBeat代替内存占用比较大的LogStash
- Loki + Prometheus + Grafana(新一代更轻量级)
-
-
云平台
-
场景:
- 快速部署:简单快速,买好资源,按文档接入系统即可使用。
- 高可用和弹性:追求高可用和弹性扩展,能够稳定应对突发流量和大规模日志数据。
- 运营和维护简单:无需投入大量人力和时间在平台运维和管理上。
- 成本管理:按需付费,可以根据实际使用量进行成本控制,避免高昂的前期投入。
- 集成服务:需要与其他云服务(如监控、告警、分析等)无缝集成,提升整体效率。
-
优缺点
- 优点:
- 部署和使用简单快捷。
- 具备弹性扩展和高可用性。
- 集成其他云服务,提升整体效率。
- 无需专门团队进行运维,降低人力成本。
- 缺点:
- 数据隐私和安全性可能会受限于第三方服务。
- 定制化程度相对较低。
- 优点:
-
常见服务商
- 阿里云SLS, 腾讯云,华为云也有对应的服务
-
三、总结
通过以上对比,我们可以发现日志平台的选型需要针对具体的业务场景来做选择,在当下以微服务架构流行的云原生时代,在满足业务需求的情况下,个人建议尽量使用云服务以提高效率和稳定性,以使用阿里云SLS的经验来看,如果不是大流量业务,使用费用也不算高。就算某些场景相对于自建会多出一些,只要不是太多,也是值得的,服务稳定性和高可用性有所保障。
最后
① 感谢阅读~
② 如果对于文中所持观点有不同的看法,欢迎大佬指点,交流~