日志中心是一個統一的日志管理平臺,全面收集、管理和分析云平臺日志數據。本期智匯華云,為大家介紹日志中心的基礎架構和業務流程。
背景
平臺或資源出現異常或故障時,管理員可通過運維門戶的日志功能,在線查詢、搜索日志異常的原因,快速的進行問題定位,無需登錄云管后端或來回切換到每一個節點的后端查詢日志。也為了方便對日志統一存儲、實時檢索、查詢和分析、監控告警,因此需要建立一個統一管理,可動態配置的多集群日志采集服務——logcenter。
功能
聚合華云云管理平臺(含k8s等高級組件)、納管集群的系統日志、資源日志進行統一管理,可視化展示支持根據自定義時間段進行單關鍵字、組合關鍵字全局(文)搜索能力
可選擇在指定集群、節點、單資源、單服務范圍等對日志進行搜索支持對對關鍵字、時間搜索保存
作為預置搜索項可根據日志的嚴重性進行篩選,如:緊急、警報、錯誤、信息等
支持對自定義時間內的相同異常日志數量、類型進行統計,繪制走勢圖
架構
整體架構在ELK Stack開源框架的基礎上,增加logcenter微服務來統一管理每個集群中filebeat的采集配置,云管理平臺后端服務的采集配置是有初始模板的,并且可以在功能頁面上編輯不同微服務的模板來動態修改采集的日志數據,新建或者導入的K8S集群采集配置需要每次調接口生成。對filebeat做了二次開發,使其通過定時調用logcenter接口來獲取采集配置,配置在初始化之后都是存儲在分布式緩存etcd中,來保證多集群環境下采集配置同步。
在云管理平臺、超融合、裸金屬服務器環境中,filebeat都是通過docker容器的形式運行,通過將宿主機中的日志目錄掛載到容器中來讓filebeat得到要采集的數據源,而在K8S集群中,filebeat是通過DaemonSet的形式部署的,確保全部Node 上運行一個 Pod 的副本。
filebeat采集的日志通過網絡傳輸給logstash,logstash會對數據做處理之后再傳輸到elasticsearch保存。
流程
通過流程可以發現,日志中心是集群日志采集方案的核心,所有的采集配置都是通過日志中心創建并維護,filebeat拉取配置的定時任務每隔5秒執行一次,用戶在平臺功能頁面更新指定配置,日志中心服務會更新緩存數據,基于緩存的存儲可以更快的響應filebeat拉取配置的請求。
采集配置中不僅有采集規則,還有一些業務配置,比如日志的最大保存時間和最大保存容量,所以在日志中心中有定時任務定時去清理elasticsearch中的日志數據,減少系統內存的占用。同時也有日志告警相關的設計,保證一些重大的故障可以盡早發現。
用戶在檢索日志的時候也是通過調日志中心的接口,日志中心根據請求參數去elasticsearch拉取數據并整理方便查看的日志格式返回。
總結
日志中心解決了多集群環境下需要統一收集日志數據,動態配置采集內容的場景,幫助用戶提升運維、運營效率,快速查找和定位問題,采用高可擴展性的分布式系統架構設計,可以很靈活的開啟和關閉指定集群的日志采集。
頁面查詢只需要使用簡單的查詢語法,通過可視化界面配置分析報表,降低用戶使用門檻。