【Agent无侵入式日志采集方案解决】

背景

企业以springboot框架作为一个业务开发的脚手架,随着业务的迭代,以及访问量提升,服务实例递增,会导致海量日志产生;无规则的海量日志会存在以下问题 1、日志与日志之间缺少关联关系 (如果找到用户一次请求的所有日志)2、日志信息不全(该打印的时候没有打印,不该打印的打印)如果业务发生异常,开发者第一时间很难从海量的日志,第一时间定位相关问题,3、日志难以清洗,BPM插件就是解决以上问题,并且可以提供以开发视角的定义业务异常从而业务报警

什么是bpm

bpm 是 Business Performance Management 缩写,log-agent-framework是bpm 的实现,它是一款日志中间是一款基于java agent 的日志插件,用于结构化输出日志数据,便于后期的问题排查,以及业务的报警;通过maven接入,将spring 项目的日志以json输出。

产品定位

类型 用途 代表
NPM 用于监控设施的基础信息,如网络、io、cpu 等,一般运维使用 prometheus
APM 用于监控应用的数据链路,日志数据大,且详细,一般运维使用 pinpoint、SkyWalking
BPM 用于监控重要业务,日志量少,且精确,一般开发人员使用

优点

  • 对于项目维护:采用无侵入方式,较少冗余的代码
  • 对于程序开发:提供公共位置的日志收集,加快开发进度
  • 对于问题排查:采用标准的日志格式,可根据类型快速过滤排查
  • 对于项目预警:采用模块化+api,可自定操作

什么是日志数据

它是刻意产生,并且有目的搬运、清洗、存贮,最终消费的信息流,为用户提供更好的服务;并不是所有的日志都是日志数据,对用户有意义的日志,并且耗费精力维护,才能称为日志数据。

什么时候用

  • 后端开发人员排查bug,定位问题
  • 前端人员开发优化资源加载性能
  • leader 需要重要报表数据,提供决策
  • 异常报警

如何构建日志系统

  • 日志生产:规定日志规范json,以及实现
  • 日志搬运:sdk、filebeat、日志汇总、阿里日志服务、oss
  • 日志清洗:logstash、json、脚印、柯南系统、es
  • 日志存贮:hive、es、mysql
  • 日志消费:kibana、grafa、报警、报表

日志级别选型

建议 日志级别 保留时间
不建立,或者自建elk 小型或者微型 日志保留时间建议
自建elk,或者阿里 elk 或者阿里日志服务 中型 小于1天
阿里日志服务 大型 小于3天

Bpm日志数据结构

日志层次划分

层次 例子 日志type
入口日志 controller、httpServlet ACCESS
出口日志 http、hession THIRD
用户自定义日志 service、自定义log SERVICE

日志aop 切面

切面 例子
类上的注解切面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值