littlebot
Published on 2025-04-14 / 1 Visits
0

【源码】基于Spring Boot和Netty的分布式日志收集与分析系统

项目简介

本系统是基于Spring Boot和Netty框架的分布式日志收集与分析系统。旨在解决分布式系统中日志收集和分析难题,以高度可定制且不侵入应用代码的方式实现日志数据的采集与分析。借助javassist和Spring框架集成,能在不干扰应用正常运行时捕获并记录关键日志信息,尤其是Web请求。

项目的主要特性和功能

  1. 日志自动收集:通过Agent配置自动收集日志,无需修改现有项目代码。
  2. 手动埋点:支持使用LoggerReceived进行自定义埋点,便于开发者按需记录日志。
  3. 高性能数据传输:数据传输层采用netty+protobuf,提升网络大并发性能。
  4. 日志数据处理与持久化:可将收集的日志数据发送至data-xplorer-server进行高级处理和持久化。
  5. 前端日志收集:提供前端收集接口,支持前端事件收集和统一traceId生成。
  6. 日志增强:利用javassist库动态修改类的字节码,增强日志功能。
  7. 多数据库支持:支持MySQL、Oracle、PostgreSQL等多种数据库类型。

安装使用步骤

1. 编译项目

bash mvn clean package install

2. 配置Agent

方式一:通过命令行参数配置

  • 将编译好的jdata-xplorer-agent-1.0-SNAPSHOT.jar放在指定位置,如\usr\local\agent
  • 在启动脚本上加入-javaagent:\usr\local\agent\data-xplorer-agent-1.0-SNAPSHOT.jar的命令参数。

方式二:通过Maven依赖配置

xml <dependency> <groupId>com.javayh.agent</groupId> <artifactId>data-xplorer-agent-boot-starter</artifactId> </dependency> 无论采用哪种方式,都需在需要监听的服务内添加如下配置: yaml data: xplorer: host: 127.0.0.1 port: 9098 show-log: true inbound-transfer-rate: data-throughput: 100 period: 45 initial-delay: 30

3. 启动服务

启动DataXplorer服务,访问http://ip:9090/admin/api/index,用户名密码均为DataXplorer

4. 日志收集与分析

  • 自动收集:进行Agent的配置进行自动的日志收集。
  • 手动埋点:通过使用LoggerReceived进行自定义的埋点。

5. 前端日志收集

  • 生成统一的traceId:访问localhost:9090/admin/api/fr/ev/trace
  • 通过接口进行收集:访问localhost:9090/admin/api/fr/ev/collect,并传入相应的JSON数据。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】