最近小折腾了一下 fluentbit

kubernetes 上的日志收集方案很多,有从容器主动发送到日志中心的,有和 OpenTelemetry 配合 LoKi 中心化的,最近发现 fluentbit 这个轻量的方案很 nice。

fluentbit 用 c 写的,内存占用极小,是 fluentd 的替代方案,配置能力很强,可以用 regex 写 log parser,支持 multiline parser,能很方便把日志(包括异常堆栈)给结构化成 json,自动发送到日志中心,比如 aws cloudwatch,效果像这样:

{
    "level": "INFO",
    "application": "hackertalk-monster",
    "traceId": "65521cff9b7428726e36bb4568ac24d8",
    "spanId": "b285f431045afe34",
    "thread": "http-nio-8080-exec-9",
    "class": "a.p.hackertalk.controller.TestController",
    "message": "Hello World!",
    "kubernetes": {
        "pod_name": "app-deployment-777cc12778-l6bcd",
        "namespace_name": "hackertalk",
        "container_name": "monster",
        "container_image": "hackertalk/monster:2023-11-13-12-18-11"
    }
}

单行日志解析为 json,配合 aws x-ray 可以方便实现分布式链路跟踪。

Note:fluentbit 默认会收集全部容器日志,需要配置 INPUT 避免 nginx 等无用日志收集。

logging
147 views
Comments
登录后评论
Sign In
·

学习和使用过Docker,没有接触过K8S,请教一下站长该如何学习入门

·

###henichuntiandoufengxiatianduoyu! 2023-12-5-16-57 MDUxZjEwMzZkNTA4MGRhMmJhYzJkZTA4ZjhiYzQxYmM4NGZhZjk1Y2QwYWQxMTRlYmZhMGI3ZThlZjc4YmZjMmUzYTBlYzI0NDdiODYzM2U2Nzc3NTViMDQ1ZmM1YmExZTIzNTRlYTQzNWFiNzc0Njg2NzNmODgwZWYyNjI4ZTdhMQ==#