多是东半球最简单的Java应用日志上云方案了

轻松输出Java应用日志到七牛云平台

背景

云计算发展至今,企业应用的方方面面都已经在云上或者准备上云了。不管是Iaas仍是Paas,应用开发的首选便是上云,由于云平台不只能够节约开发和部署流程中的时间,并且专业的云平台还会极大提高总体服务的稳定性,下降业务运维成本。git

方案

本篇主要介绍下如何利用七牛云大数据日志平台来无缝收集Java应用日志,方便后续的日志分析等工做。本质上,任何客户若是但愿接入七牛的大数据日志平台,均可以利用各个语言的SDK来完成这个工做,或者利用七牛提供的收集工具如logkit 或者 企业级logkitgithub

可是本方案强调的就是 业务代码无侵入性多线程

提供 业务代码无侵入性 接入的方案最基本的缘由就是:框架

  1. 客户已有的Java应用已经把日志存储到本地或者其余的地方了,支持新的输出方式须要修改业务代码,而大部分状况下客户不但愿这样作
  2. 客户但愿可以快速体验新的日志输出方案,但愿尽量少地影响现有的业务运行

因此最好存在一种方案,能够支持 可插拔 的方式来输出日志,这样Java应用代码不须要作更改,也就是达到 业务代码无侵入性 的目标。运维

因为大多数客户的应用都是采用Java来开发的,并且因为Java的生态发展的很是完善,不少客户都使用成熟的日志框架如log4j,slf4j,logback等来进行日志的输出。而这些框架在设计上面为咱们无缝输出日志到不一样的目的地提供了方便的接口。工具

因此,基于这些背景,咱们打算帮助客户实现Java应用日志的 无缝快速上云性能

不少人或许已经猜出了这个方案的核心技术就是开发支持各个日志框架的自定义Appender。大数据

对,就是这样。咱们目前优先选择支持Java最主要是由于Java语言的覆盖用户普遍,日志框架设计优良,方面扩展自定义的Appender。后续咱们也会根据客户需求继续支持其余的语言。云计算

这个方案除了自定义日志的Appender来将日志输出到云端外,还内部实现了多线程日志上传,日志缓冲(避免频繁推送大小很小的日志行影响业务性能),定时推送等功能,后续还会根据实际状况继续支持其余企业级需求。spa

使用

实际应用起来很是简单,无需修改一行业务代码,直接看图:
three-steps

从新启动服务后,日志会进行上报,能够在七牛云后台查看数据:

pandora-show-logs

实战

另外,为了让你们在应用到自身业务以前实际体验下,咱们还提供了两个开源软件的案例:

ElasticSearch日志收集案例

Apache Kafka日志收集案例

交流

若是您有兴趣了解更多实现细节,欢迎 Star项目:https://github.com/qiniu/qiniu-logging-plugin 或者加入QQ群讨论:675938456 。

相关文章
相关标签/搜索