线上问题排查神器!一款基于JAVA实现的零侵入、全链路跟踪的可视化分布式日志系统
·
- 💂 个人网站: IT知识小屋
- 🤟 版权: 本文由【IT学习日记】原创、在CSDN首发、需要转载请联系博主
- 💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦
简介
PlumeLog是一款基于Java语言实现的分布式日志聚合系统,专注于“零代码侵入”式接入,为微服务架构提供专业级链路级日志采集、存储与查询能力,适用于高吞吐、高并发的业务场景。系统支持调用链追踪与跨服务关联检索,彻底摆脱传统文件日志翻阅体验。
主要特点如下:
-
零代码入侵: 兼容主流日志框架如:log4j、log4j2、logback,仅需加依赖即插即用,支持Spring Cloud、Dubbo等框架
-
海量日志处理: 理论可支持百亿级日志采集与检索,适配大型互联网系统,快速定位线上问题
-
多存储方式选择: 可选Redis或Kafka作为消息队列,日志异步落盘至Elasticsearch,实现高性能写入与检索
-
链路分析能力: 设置全链路跟踪ID:traceId,支持跨线程、跨服务调用链日志追踪
-
免运维本地日志: 日志不保留在本地磁盘,不占应用程序本地磁盘空间,避免磁盘写入过大,系统轻装上阵
-
轻量化内嵌版(Lite): 无需部署外部组件,内嵌Redis + Lucene,中小型项目也能快速上手使用
架构
工作流程:

plumelog-core 核心组件包含日志搜集端,负责搜集日志并推送到kafka,redis等队列
plumelog-server 负责把队列中的日志日志异步写入到elasticsearch
项目结构:
├── plumelog-core // 日志核心模块,负责日志格式、传输等基础功能
├── plumelog-client-jdk6 // JDK6 客户端兼容包(嵌入 redis 配置等)
├── plumelog-example // 示例模块(演示如何接入、使用)
├── plumelog-http // 支持 HTTP 日志收集方式
├── plumelog-lite // 轻量级一体化部署版本,适用于单机环境
├── plumelog-lite-spring-boot-starter // Lite 版本 Spring Boot 启动器
├── plumelog-logback // Logback 适配器,采集日志到 PlumeLog
├── plumelog-log4j // Log4j 日志采集适配器
├── plumelog-log4j2 // Log4j2 日志采集适配器
├── plumelog-server // 日志服务端,负责接收日志、持久化与查询
├── plumelog-trace // 分布式链路追踪模块
├── plumelog-ui // 前端 UI 模块
├── plumelog-ui-front // 前端源码目录
├── plumelog-lucene // 基于 Lucene 的日志存储支持
├── plumelog-dubbo // Dubbo 服务日志扩展
├── logstash // Logstash 集成适配
├── homesite // 官网源码或文档
├── helm-charts/plumelog // Helm 部署脚本
系统个性模块:
plumelog-core:客户端agent,负责采集日志并推送至 Kafka/Redis
plumelog-server:消费队列,异步写入 Elasticsearch,形成查询索引
plumelog-ui(front + server):提供可视化日志查询与链路追踪界面
plumelog-lite:嵌入式模式,无需 Redis/ES,集成查询UI,适合轻量使用
常见部署模式
- 单redis小集群模式,适用大部分中小规模项目

- 多redis大型集群模式,如果项目量大而且个别服务量特别大,建议用此方案

- kafka集群模式

- redis和kafka混合部署模式

UI界面







开源地址&使用手册
点击下方的【IT学习日记】回复【资源】领取!
如果这篇文章对您有帮助,请一定帮我点个 “关注” 和 “点赞”,这对我非常重要。我将会继续推荐更多优质项目和新闻。

写在最后
1000+优质开源项目更新进度:265/1000。如需更多类型优质项目推荐,请在文章后留言。

更多推荐

所有评论(0)