前言
日志 对于开发者来说并不陌生,对于排查BUG、输出异常、关注重要业务节点数据参数等,都起着重要作用。而如何写好日志,如何排查日志,如何记录日志等对于开发者而言,往往是一个需要在项目初期就要全面考虑的事情,而本文主要终点介绍 如何记录日志。
常见的日志记录方式:
- ELK(Elasticsearch+logash+kibana)
- 数据库
- redis
- 本地磁盘文件记录
- 直接控制台输出
以上都是比较常见的日志记录方式,各个方式各有千秋,有好有坏,在此不做展开讲。
今天要介绍的一种和上面不同的日志记录方式: Logback + Fluentbit + Openobserve
何为Openobserve
OpenObserve 是一个云原生的观测性平台,专为处理 PB 字节级规模的日志、指标、跟踪和分析而设计。它不仅易于操作,而且能够极大地降低存储成本、提升性能。
主要特点和功能:
- 简单易用:与Elasticsearch相比,OpenObserve的操作非常简单,几乎不需要理解和调整大量参数即可快速上手。您只需花费不到2分钟的时间,即可开始使用OpenObserve。
- 降低存储成本:通过使用OpenObserve,您可以将日志存储成本降低约140倍,相比于Elasticsearch,这是一个巨大的节省。
- 高性能:OpenObserve提供高性能的日志、指标和跟踪处理能力,能够处理宠字节级规模的数据,满足大规模应用的需求。
- 丰富的功能:OpenObserve提供了多种功能,包括日志、指标、跟踪的处理、警报和仪表盘等。它还提供了丰富的内置功能,如数据增强、数据脱敏、日志压缩等,无需学习额外的查询语言。
- 开源兼容:OpenObserve是一个开源项目,您可以自由地修改和定制,满足自己的特定需求。
何为Fluentbit
是一个开源的、轻量级的日志数据收集器(log collector)和 转发器(log forwarder),旨在高效地收集、处理和转发日志数据。它是Fluentd项目的一个子项目,旨在解决日志收集和处理的特定需求。
主要特点和功能:
- 轻量级:FluentBit被设计为轻量级的日志收集器,具有较小的资源占用,适用于在资源受限的环境中运行,例如边缘设备或嵌入式系统。
- 高性能:由于其轻量级设计,FluentBit能够在高吞吐量的场景下表现出色,可以处理大量的日志数据。
- 多种输入和输出插件:FluentBit支持多种输入和输出插件,使其能够从不同的数据源收集日志,并将日志转发到多种目标。
- 可扩展性:FluentBit可以通过插件进行扩展,用户可以根据需求编写自定义插件来实现特定功能。
- 支持多种日志格式:FluentBit支持解析和处理多种日志格式,如JSON、Grok、Syslog等。
- 容器友好:FluentBit特别适用于容器化环境,可以与容器编排工具(如Kubernetes)和容器运行时(如Docker)集成,以收集容器日志。
- 跨平台:FluentBit支持多个操作系统平台,包括Linux、Windows、macOS等。
安装Openobserve
前提保证已经安装docker和docker-compose。然后我们使用docker-compose方式安装
1、docker-compose.yml 文件内容如下
1 | version: "3" |
2、然后输入启动 docker-compose 命令
1 | docker-compose up -d |
3、启动完毕后就可以打开openobserve 控制台页面
- 浏览器输入:ip:5080
- 登录账号:docker-compose配置中的ZO_ROOT_USER_EMAIL
- 登录密码:docker-compose配置中的ZO_ROOT_USER_PASSWORD
控制台主页截图
4、详细官方文档地址:https://openobserve.ai/docs/
安装Fluentbit
前提保证已经安装docker和docker-compose。然后我们使用docker-compose方式安装
1、docker-compose.yml 文件内容如下
1 | version: '3' |
2、fluent-bit.conf 配置文件
1 | [SERVICE] |
3、各个部分参数解释
- [SERVICE] + [INPUT] 这两个部分为默认写死配置。
- [OUTPUT] 为 openobserve 平台提供的参数,直接可以在平台配置中复制粘贴
4、详细官方文档地址:https://docs.fluentbit.io/manual
[OUTPUT] 在 openobserve 平台的位置截图
Logback配置
logback.xml配置文件
1 |
|
结言
至此整个链路流程配置已全部完成,然后运行 logback 所在的项目,启动项目后就可以自动将日志上传收集到 Openobserve 平台。
实战项目: https://github.com/Snykta/forge-fast-boot (一个可快速开发的spring单体项目脚手架)