分布式日志系统解决方案

2023-10-27

在这里插入图片描述

一、什么是PlumeLog

  • PlumeLog 是一款无入侵的分布式日志系统

    基于log4j、log4j2、logback搜集日志,设置链路ID,方便查询关联日志

    基于elasticsearch作为查询引擎.

    实现日志报错预警
    在这里插入图片描述

PlumeLog有什么优点

效率高 免维护 搭建快

高吞吐,查询效率高 全程不占应用程序本地磁盘空间,免维护 无需修改老项目,引入直接

开源项目地址 : http://www.plumelog.com/#/

二 、如何引入该项目

该项目(PlumeLog)与已有项目的结合逻辑:
将已有项目的日志数据位置指定到redis/kafka中,把redis/kafka当做一个中间件,该项目(PlumeLog)主动到指定的redis/kafka中拉取日志数据,对数据进行逐条处理后同步到elasticsearch中,供前端页面搜索展示。总体来说是将日志从原先的存储位置从磁盘文件换到elasticsearch中,更方便定位问题发现问题。同时也有相应的弊端,毕竟elasticsearch是以内存作为存储的引擎,但庞大的数据量的日志文件最终还是需要落地到磁盘文件,所以如皋想尽可能的扩大搜索范围就需搭建elasticsearch集群环境,这个看所处企业的数据量及日志规划。一般的企业,搜索范围15天内,一台elasticsearch 其余文件落地到磁盘压缩足以应对了。因为改项目(PlumeLog)有完善的日志报警功能,通知到个人手机、邮箱、微信、钉钉都可对接。

1、根据自己系统的日志插件的使用选择指定依赖放到原本系统中
2、以log4j为例子,
1)引入相应的jar包,修改xml文件,在标签内添加标签 ,同时在标签中也指定输出对象如下:

 <appender>
	<RedisAppender name="plumelog_demo" appName="liyu_test" redisHost="127.0.0.1" redisPort="6379"
                       logQueueSize="1000" runModel="1">

            <ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/>
      </RedisAppender>
   </appenders>
   
<root level="debug">
            <appender-ref ref="plumelog_demo"/>
</root>

2、根据日志量的大小选择redis或kafa作为中间件
1)、该项目(PlumeLog)主动从redis中拉取,源码中是while(true)+睡眠的机制实现,不知这种实现机制与spring boot带的定时任务有何区别是否在效率上或是内存占用是会什么不同
2)、以从redis中拉取日志信息为例
使用redis的pipeline 去拉取一条条数据会提高很多,因为redis的性能瓶颈不是硬件问题,而是网络传输,使用pipeline能够集中的将请求批量处理,减少重复的网络传输所产生的耗时

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

分布式日志系统解决方案 的相关文章

随机推荐

  • 2022年软件测试面试题大全【含答案】

    一 面试基础题 简述测试流程 1 阅读相关技术文档 如产品PRD UI设计 产品流程图等 2 参加需求评审会议 3 根据最终确定的需求文档编写测试计划 4 编写测试用例 等价类划分法 边界值分析法等 5 用例评审 主要参与人员 开发 测试
  • mysql drivermanager_jdbc详解:2、DriverManager管理多个数据库驱动

    先上代码 static String driverName com mysql jdbc Driver static String url jdbc mysql 127 0 0 1 3306 mysql static String user
  • react+ts+vite

    项目结构初始 1 使用vite构建项目 2 script常见用法 host 显示地址 port 端口号 设置端口号 open 编译后自动打开 3 配置 路径 项目路径别名的配置 ts对 指向src的目录提示是不支持的 所以需要手动配置 符号
  • Anaconda 打开时卡在Initializing(打不开)

    找到的一种说法是anaconda有个广告载入功能 这个功能需要联网 但国内网络环境有时候连不上目标网络 所以打开anaconda navigator的时候会因为网络问题一直卡在Initializing 解决的方法 方法一 把网络断开 没有了
  • 进入虚拟机 networkManager is not running 问题

    运行 systemctl restart NetworkManager命令 重启网络管理
  • java--基础--23--接口组成更新

    java 基础 23 接口组成更新 代码 https gitee com DanShenGuiZu learnDemo tree mysql mybaties DB jdk8 learn 1 接口组成更新 常量 public static
  • 每日学术速递5.3

    CV 计算机视觉 ML 机器学习 RL 强化学习 NLP 自然语言处理 Subjects cs CV 1 Learning Locally Editable Virtual Humans 标题 学习本地可编辑虚拟人 作者 Hsuan I H
  • 详解Seaborn,看这一篇就够了

    转载 Seaborn常见绘图总结 Seaborn是一个比Matplotlib集成度更高的绘图库 在科研和数据分析中我们常常看到一些画的非常高大上的图 这往往就是Seaborn绘制的图形 因此我们就使用短短的半天时间来学习一下Seaborn的
  • lsun数据集下载、转换、使用

    最近复现SAGAN用到了lsun数据集 1 下载地址 http dl yf io lsun scenes 我下载了church outdoor train lmdb zip 中间还安装了lmdb库 2 转换 一般下载的data py 转换代
  • Git 常用命令 --- git push命令

    git push的一般形式为 git push lt 远程主机名 gt lt 本地分支名 gt lt 远程分支名 gt 例如 git push origin master refs for master 即是将本地的master分支推送到远
  • IMP-00003: 遇到 ORACLE 错误 959 ORA-00959: 表空间 '' 不存在

    描述 在使用imp命令将dmp文件导入oracle中时 遇到如下错误 IMP 00003 遇到 ORACLE 错误 959 ORA 00959 表空间 TBS CDUSER 不存在 IMP命令如下 IMP cduser cduser123
  • Java Stream流详解

    本文目录 学习目标 中间操作 Filter 过滤 Map 转换 Sorted 排序 Distinct 去重 Limit 限制 Skip 跳过 Peek 展示 终止操作 forEach 循环 Collect 收集 Count 计数 Reduc
  • 软件测试基础理论知识—用例篇

    什么是测试用例 测试用例 Test Case 是为了实施测试而向被测试的系统提供的一组集合 这组集合包含 测试环境 操作步骤 测试数据 预期结果等要素 需求的概念 满足用户期望或正式规定文档 合同 标准 规范 所具有的条件和权能 包含用户需
  • 【整理】QT .pro文件中的变量说明

    注释 以 开始的行 直到结束 模板变量 告诉qmake生成哪种makefile TEMPLATE app 其中 app 表示该工程建立一个应用程序的makefile 这是默认值 所以如果模板没有被指定 这个将被使用 lib 表示该工程建立一
  • 第一个servlet程序、配置web.xml以及使用html表单给服务器传输数据

    一 Serlvet简介 serlvet是一个服务器小程序 它可以对用户的请求 request 作出响应 response 举个例子 当我们在html页面填写一个表单时 我们点击提交 这就能发送一个请求 服务器可以接收到我们的请求然后执行相应
  • 【Ceph】1 pools have many more objects per pg than average

    公司 Ceph 集群从 v12 升级到 v14 后 今天某个 CephFS 的集群收到一个 HEALTH WARN 的告警 具体的 Warning 的信息为 1 pools have many more objects per pg tha
  • vue3组件内判断是否进行路由跳转

    import onBeforeRouteLeave from vue router import ElMessageBox from element plus onBeforeRouteLeave to from next gt if fo
  • 【毕业设计】机器视觉停车位识别检测系统 - python 深度学习

    文章目录 1 简介 2 检测效果 3 实现方式 3 1 整体思路 3 2 检测空车位 3 3 车辆识别 4 最后 1 简介 Hi 大家好 这里是丹成学长的毕设系列文章 对毕设有任何疑问都可以问学长哦 这两年开始 各个学校对毕设的要求越来越高
  • PHP7 连oracle 11g 可能出现的pdo_oci_handle_factory,Check the character问题和解决方法

    错误代码 SQLSTATE HY000 pdo oci handle factory Error while trying to retrieve text for error ORA 12541 错误代码 SQLSTATE HY000 O
  • 分布式日志系统解决方案

    一 什么是PlumeLog PlumeLog 是一款无入侵的分布式日志系统 基于log4j log4j2 logback搜集日志 设置链路ID 方便查询关联日志 基于elasticsearch作为查询引擎 实现日志报错预警 PlumeLog