网易开源云原生日志收集工具 Loggie 入门指南

网易开源云原生日志收集工具 Loggie 入门指南

来源:admin 发布时间:2022-08-16 10:24:48 点击数:


长治网络安全等级保护,长治等保,长治网安备案,网站制作,网站建站,网站运维,Linux系统运维,Windows系统运维,服务器运维,环境部署,环境搭建,私有云存储

Loggie 是网易和中国工商银行联合发起的一个基于 Golang 的轻量级、高性能、云原生日志采集 Agent和中转处理 Aggregator 开源项目,支持多 Pipeline 和组件热插拔,提供了:


  • 一栈式日志解决方案:同时支持日志中转、过滤、解析、切分、日志报警等

  • 云原生的日志形态:快速便捷的容器日志采集方式,原生的 Kubernetes动态配置下发

  • 生产级的特性:Loggie 吸收了我们长期的大规模运维经验,形成了全方位的可观测性、快速排障、异常预警、自动化运维能力


长治网络安全等级保护,长治等保,长治网安备案,网站制作,网站建站,网站运维,Linux系统运维,Windows系统运维,服务器运维,环境部署,环境搭建,私有云存储



结合网易数帆长期的业务实践,Loggie形成了如下几大特点:


  • 可扩展、热插拔:配置不同的 Source/Interceptor/Sink,拥有中转、过滤、解析、切分、日志报警等能力,可使用 Golang 快速自研插件

  • 强隔离:多 Pipeline 设计,减少互相干扰,可同时发送多个不同数据源

  • 轻量级、高性能:基于 Golang,极少的资源占用,强大的吞吐性能

  • 可靠性保障:完善的日志可观测性,原生 Prometheus metrics 支持,还有限流等 Interceptor

  • 云原生:配置中心集成 Kubernetes,创建 CRD 实例即可采集容器日志


同时,基于Loggie的流式数据传输设计,我们可以灵活使用 Loggie 的Pipeline。


从使用形态上可划分为:


  • Agent 形态:每个节点一个或者每个Pod一个,用于采集日志或者其他数据

  • Aggregator 形态:用于中转、转发和处理,可独立部署成集群


可以应用在:


  • 数据采集:采集容器日志、节点日志,采集Prometheus metrics、Kubernetes Events 等

  • 数据中转:作为中转机去做数据的聚合、转发、分流

  • 数据处理:进行流式数据的切分、转换、处理

  • 日志报警:进行异常日志的检测与报警

  • ......


此外,利用 Loggie 的设计,用户也可以快速开发一个 Source、Sink 或Interceptor 组件,复用Loggie的能力,避免大量重复的开发工作。

下图是 Loggie 和其他日志采集工具的功能对比:

长治网络安全等级保护,长治等保,长治网安备案,网站制作,网站建站,网站运维,Linux系统运维,Windows系统运维,服务器运维,环境部署,环境搭建,私有云存储


下面我们演示在一个 Kubernetes 集群中,通过创建 LogConfig CRD 快速采集 Pod 的日志。


首先部署 Loggie DaemonSet,可以选择使用 Helm Chart 进行安装。



helm pull https://github.com/loggie-io/installation/releases/download/v1.0.0/loggie-v1.0.0.tgz && tar xvzf loggie-v1.0.0.tgzhelm install loggie ./loggie -nloggie --create-namespace

也可以直接部署:


helm install loggie -n loggie --create-namespace https://github.com/loggie-io/installation/releases/download/v1.0.0/loggie-v1.0.0.tgz

接下来就可以采集日志了,Loggie 定义了 Kubernetes CRD LogConfig,一个 LogConfig 表示采集一类 Pods 的日志采集任务。比如现在我们有一个 nginx 应用需要被采集日志:


kubectl create deploy nginx --image=nginx


先要定义输出源 Sink,使用 Loggie 定义的 Sink CRD 来定义,表明日志发送的后端。为了方便演示,这里我们将日志发送至 Loggie Agent 自身的日志中并打印。











cat << EOF | kubectl apply -f -apiVersion: loggie.io/v1beta1kind: Sinkmetadata:  name: defaultspec:  sink: |    type: dev    printEvents: trueEOF

可以通过 kubectl get sink 查看到已创建的 Sink。接下来就需要定义采集任务了,使用 Loggie 定义的 LogConfig 这个 CRD,表示一个日志采集任务,我们创建一个 LogConfig 示例如下所示:




















cat << EOF | kubectl apply -f -apiVersion: loggie.io/v1beta1kind: LogConfigmetadata:  name: nginx  namespace: defaultspec:  selector:    type: pod    labelSelector:      app: nginx  pipeline:    sources: |      - type: file        name: mylog        paths:        - stdout    sinkRef: defaultEOF


创建完之后,我们可以使用 kubectl get lgc 查看到创建的 CRD 实例。同时,我们还可以通过 kubectl describe lgc nginx 查看 LogConfig 的事件,以获取最新的状态。





Events:  Type    Reason       Age   From                       Message  ----    ------       ----  ----                       -------  Normal  syncSuccess  52s   loggie/kind-control-plane  Sync type pod [nginx-6799fc88d8-5cb67] success


上面的 nginx LogConfig 通过其中的 spec.selector 来匹配采集哪些 Pod 的日志,这里我们使用 app: nginx 选择了刚才创建的 nginx Pod。spec.pipeline 则表示 Loggie 的 Pipeline 配置,我们只采集容器标准输出的日志,所以在 paths 中填写 stdout 即可。


现在我们就可以来查看日志了,首先找到所在的nginx pod节点:


kubectl get po -owide -l app=nginx


然后我们找到该节点的 Loggie:


kubectl -nloggie get po -owide |grep ${node}


可以通过:


kubectl -nloggie logs -f ${logge-pod}

然后就可以查看 Loggie 打印出的日志,正常里面展示了采集到的 nginx 标准输出日志。


关于 Loggie 的更多使用可以查看官方文档了解更多 https://loggie-io.github.io/docs/

仓库地址:https://github.com/loggie-io/loggie


本文转载自:「Github爱好者」,原文:https://tinyurl.com/jmdw43d,版权归原作者所有。


长治等保,等保,网络安全,网络等保,等级保护,网络安全等保,网络安全等级保护,长治网络安全等级保护,等保公司,等保测评,等级保护2.0,定级,定级备案,等保备案,长治等保备案,山西等保备案,系统测评,系统备案,网安备案,等保备案服务,等保咨询,公安局备案,二级等保,三级等保,三级测评,系统整改,做等保的公司,网站建设,企业网站建设,企业网站开发,企业网站运维,Linux系统运维,Windows系统运维,服务器运维,环境部署,环境搭建,私有云存储

Powered by 园鉴科技 ©2021-2024  www.anycastyun.com

首 页
产 品
方 案
客 服