多是東半球最簡單的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 。

相關文章
相關標籤/搜索