閱讀420 返回首頁    go 群英


采集-日誌管理__最佳實踐_日誌服務-阿裏雲

以下是一個典型的場景:服務器(容器)上有很多應用產生的日誌數據、生成在不同的目錄

  1. 開發會部署、下線新的應用
  2. 服務器會根據需要水平擴展,例如在高峰時增加,低峰時減少
  3. 根據不同需求,日誌數據需要被查詢、監控、倉庫等,需求也在不同變化

display

過程中挑戰

1. 應用部署上線速度快、日誌種類越來越多

每個應用有訪問日誌(Access)、訪問日誌(OpLog)、業務邏輯(Logic)和錯誤(Error)等種類。當新增應用、應用與應用之間有依賴時,日誌數目也會爆發。

以下是一個外賣網站的例子:

分類 應用 日誌名
Web nginx wechat-nginx (微信服務器nginx日誌)
nginx alipay-nginx (支付寶服務端nginx日誌)
nginx server-access(服務端Access-Log)
Web-Error nginx-error alipay-nginx (nginx錯誤日誌)
nginx-error
Web-App tomcat alipay-app (支付寶服務端應用邏輯)
tomcat
App Mobile App deliver-app (送貨員app狀態)
App-Error Mobile App deliver-error (錯誤日誌)
Web H5 web-click (H5頁麵點擊)
server server 服務端內部邏輯日誌
Syslog server 服務器係統日誌

2. 日誌被多個需求消費

例如AccessLog可以被用來計量計費、用戶下載;OpLog需要被DBA查詢,需要做BI、以及全鏈路監控等

consumer2

3. 環境與變化

互聯網節奏非常快,在現實過程中,我們需要麵對業務和環境的變化:

  • 應用服務器擴容
  • 服務器當機器
  • 新增應用部署
  • 新增日誌消費者

一個理想管理架構有哪些需求

  • 架構清晰,低成本
  • 穩定高可靠、最好是無人值守(例如自動處理增減機器)
  • 應用部署能夠標準化,不需要複雜配置
  • 日誌處理需求能夠被很容易滿足

日誌服務如何做?

日誌服務LogHub功能在日誌接入上定義如下概念,通過Logtail方便管日誌應用采集:

這些概念關係如下:

  1. 一個項目包括多個logstore,machineGroup,config,通過不同項目滿足不同業務間需求
  2. 一個應用可以有多種日誌,每一種日誌一個logstore,每種日誌有一個固定的目錄產生(config相同)
    1. app --> logstore1, logstore2, logstore3
    2. app --> config1, config2, config3
  3. 一個應用可以部署在多個機器組上,一個機器組可以部署多個應用
    1. app --> machineGroup1, mahcineGroup2
    2. machineGroup1 --> app1, app2,app3
  4. 將配置(config)定義的收集目錄、應用到機器組上,收集到任意logstore
    1. config1 * machineGroup1 --> Logstore1
    2. config1 * machineGroup2 --> logstore1
    3. config2 * machineGroup1 --> logstore2

    除此之外有哪些優勢?

  • 便捷:提供WebConsole/SDK等方式進行批量管理
  • 大規模:可以管理百萬級機器*百萬級應用
  • 實時:收集配置分鍾內生效
  • 彈性:
  • 穩定可靠:無需人工幹預
  • 日誌處理中實時計算、離線分析、索引等查詢功能,參見服務簡介
    • 日誌中樞(LogHub):實時采集與消費。通過30+方式實時采集海量數據、下遊實時消費
    • 日誌投遞(LogShipper):穩定可靠日誌投遞。將日誌中樞數據投遞至存儲類服務(OSS/MaxCompute/OTS)進行存儲與大數據分析
    • 日誌查詢(LogSearch):實時索引、查詢數據。日誌統一查詢,不用關心線上服務器日誌位置logsearch

最後更新:2016-11-24 11:23:49

  上一篇:go 采集-多渠道數據__最佳實踐_日誌服務-阿裏雲
  下一篇:go 采集-公網數據__最佳實踐_日誌服務-阿裏雲