项目介绍:Loggie
Loggie 是一款轻量级、高性能的云原生代理和聚合器,基于 Go 语言构建。它设计用来支持多种数据的管道传输、过滤、解析和告警,并通过 Kubernetes 的原生 CRD(CustomResourceDefinition)进行操作和管理。因此,Loggie 适用于构建大规模的云原生日志数据平台,提供生产环境所需的可观察性、可靠性和自动化特性。
核心功能
下一代云原生日志收集与传输
通过 CRD 构建管道
Loggie 提供了 LogConfig、ClusterLogConfig、Interceptor、Sink 等 CRD,用户可以通过简单的 YAML 文件配置,创建数据收集、传输、处理和发送的完整管道。
示例如下:
apiVersion: loggie.io/v1beta1
kind: LogConfig
metadata:
name: tomcat
namespace: default
spec:
selector:
type: pod
labelSelector:
app: tomcat
pipeline:
sources: |
- type: file
name: common
paths:
- stdout
- /usr/local/tomcat/logs/*.log
sinkRef: default
interceptorRef: default
多种架构支持
- 代理模式(Agent): 通过 DaemonSet 部署,无需为容器挂载卷,即可收集日志文件。
- 边车模式(Sidecar): 支持自动注入 Loggie 边车,无需手动添加到 Deployment/StatefulSet 模版。
- 聚合器模式(Aggregator): 可以作为独立中间机器部署,接收 Loggie 代理发送的聚合数据,消费和处理各种数据源。
无论选择何种部署架构,Loggie 内部设计都保持简洁直观。
高性能表现
通过与 Filebeat 的基准测试对比,Loggie 在配置相同资源条件下表现出更高效的 CPU 和内存使用率,以及更快的传输速率。
自适应消费并发
启用消费并发配置后,Loggie 可以自动调整下游数据发送的并行度,以充分利用下游服务器性能,同时避免影响其性能。
轻量级流数据解析与监控
利用 Loggie,用户可以实现日志的实时解析和转换,支持格式解析(如 json、grok、regex)和字段转换(如 add、copy、set),并可以根据条件实现逻辑处理(如 if、else)。
检测、识别与告警
帮助快速检测潜在的问题与异常,并及时发出告警,支持将通知发送至各类告警渠道。
日志数据聚合与监控
多样化的聚合器配置允许用户对日志数据进行统计与监控,例如计算访问日志中的 5xx 或 4xx 状态码数、qps 聚合等。
可观察性与快速故障处理
Loggie 提供丰富的可配置指标,并可以一键导入到 Grafana 仪表盘。此外,它还支持快速故障排查功能。
常见问题解答
对比其他流行的日志收集工具,如 Filebeat、Fluentd、Logstash、Flume,Loggie 在多管道、多输出、聚合和低资源使用等方面表现出色。
总之,Loggie 作为一个先进的云原生日志解决方案,通过其强大的功能和高性能特性,为用户提供了一个灵活可靠的日志管理平台。