日志系统
备注
本文目前是日志系统的调研资料搜集,实际上有多种日志系统,有的专注于传统的日志记录和存储,有的侧重日志查询和分析,有的则在日志分析基础上衍生出告警监控。总之,适合不同的业务场景以及开发维护日志系统的技术储备,可以选择不同的日志系统,并没有绝对的唯一。
我准备不断更新和改进这篇综述,并融合自己的实践经验,并且力争实现全面的日志基础设施。
现代日志(管理)系统包含了日志数据存储、处理、分析和可视化,是分布式集群运维管理的关键基础设施,也是现代可观测系统(logs, metrics, traces)的重要组成部分。
OpenObserve
GitHub: openobserve 是 OpenObserve.ai 开源的日志观测系统:
和 Loki 日志聚合系统 类似,没有采用 Elasticsearch 全文索引,所以也就具备了 "低存储成本、高速查询" 的
优势
集成提供了
logs, metrics, traces, analytics
来替代 Elasticsearch / Prometheus监控 / Jaeger分布式跟踪系统 / Grafana通用可视分析平台 (对于中小型公司,这种All In One系统有吸引力,但对于具备二次开发和已经有技术选型的公司而言,缺乏融合到现有平台的灵活性)支持SQL查询日志, PromQL 查询指标 (可以说这是一个模仿并再造 Elasticsearch 和 Prometheus监控 并力求和用户现有使用习惯一致)
使用 Rust 开发
提供内置报警机制(类似 Alertmanager )可以将告警发送到 slack, Microsoft Teams等渠道
备注
OpenObserve
可以说是对现有可观测系统不同开源项目的一个综合再造,从理念来说不算创新,但是集成了众多开源项目(再造)功能,成为一个功能全面的日志观测平台(并且不局限于日志)
Loki
Loki 日志聚合系统 是 Grafana通用可视分析平台 Labs团队的开源项目,但是和十项全能型日志系统 Elasticsearch 不同,是简化版的日志聚合系统: Loki日志聚合系统快速起步 综合介绍工作原理和特点。
SigNoz
SigNoz监控 也是一个全面集成 logs, metrics, traces, analytics
的监控系统: SigNoz简介 介绍原理和特点
Graylog
graylog 开源了 github: graylog2-server ,采用java开发,根据 Graylog Docs > Installing Graylog 可以初略了解graylog的架构:
后端基于 Elasticsearch 或者 OpenSearch (目前看
OpenSearch
是发展趋势)使用Java开发的日志管理系统,可以视为 Elasticsearch 或者 OpenSearch 的管理增强(使用MangoDB存储用户信息、流配置等元数据;日志数据完全存储在 Elasticsearch 或者 OpenSearch )
备注
初略查看了Graylog资料,看起来这个LMS是 Elasticsearch 或者 OpenSearch 的再包装版本,不是很看好。毕竟对于大型企业,完全有能力自己维护 Elasticsearch 或者 OpenSearch ,核心功能具备后自己定制并非难事。
syslog-ng
syslog-ng服务 是传统的日志采集系统的现代化发展: 实际上核心的syslog-ng日志采集系统已经成熟发展了很多年,一度是很多Linux发行版默认或推荐的日志采集系统:
很久以前,蚂蚁金服还叫 "支付宝公司" 的时候,生产环境使用的Red Hat Enterprise Linux还都是使用
syslog-ng
来采集日志(现在已经全部改为阿里云的SLS,类似 Elasticsearch )配置语法有些特别,需要花时间学习,但是后续 RedHat Linux 全系列转换为 rsyslog服务 所以逐渐退出了主流
看起来有商业公司收购和重新支持起 syslog-ng
准备打造成全系列的底层日志采集系统。我仅观察并在必要的遗留系统中维护 syslog-ng服务
Highlight.io
highlight.io 是一个非常年轻的开源日志监控系统,最早开始于2020年12月1日(以GitHub首次提交),也是采用 Elasticsearch 作为后端的搜索分析平台,主要增强在于:
不仅提供日志管理,还提供会话重放和错误监控(基于日志设置告警阀值和频率,支持不同渠道通知)
使用 ClickHouse 进行数据存储和检索
提供多种语言框架SDK
这是一个相对较为年轻的开源项目,可能还没有得到广泛的验证
Circonus
circonus3 是 circonus.com 公司的 logs, metrics, traces, analytics
产品:
基于 Elasticsearch 并集成 OpenTelemetry (例如 Jaeger分布式跟踪系统 或
Zipkin
) 和 Metrics (采用自己的Circonus Unified Agent)Circonus集成了很多第三方库 提供深入的功能,例如 Intel Resource Director Technology(RDT) 库 Circonus 3.0 Liberty: Intel RDT 是一种比较好的全面参考方案(你可以了解如何使用Intel RDT Software Package来获取pqos信息)
思考
目前看来突出 低成本和高速 的日志系统( 典型如
OpenObserve
和 Loki 日志聚合系统 )都是舍弃了全文索引,采用 Label 聚合查询的方式,对于特定应用是有优势的,但同时也具有局限性产品化的日志管理系统大多数基于 Elasticsearch 构建,并集成 OpenTelemetry (例如 Jaeger分布式跟踪系统 或
Zipkin
) 和 Metrics (可能会直接使用 Prometheus Exporters 也可能直接提供自己的Agent)架构大同小异,所以可以精研其中的典型解决方案来了解和掌握这种日志分析基础架构