張計(jì)飛
[摘要]通用應(yīng)用日志監(jiān)管平臺(tái),是一款通用的企業(yè)應(yīng)用日志監(jiān)管軟件,它從采集、處理、存儲(chǔ)、監(jiān)控和管理分析五方面入手,采用標(biāo)準(zhǔn)采集協(xié)議、分布式處理、集中存儲(chǔ)等多種技術(shù)方案,實(shí)現(xiàn)了對(duì)應(yīng)用日志的統(tǒng)計(jì)分析、多維度查詢、實(shí)時(shí)報(bào)警,具有通用性強(qiáng)、操作簡(jiǎn)便等特點(diǎn),可滿足于不同行業(yè)、不同角色的監(jiān)管需求。
[關(guān)鍵詞]通用日志;監(jiān)管;軟件
doi:10.3969/j.issn.1673 - 0194.2017.02.089
[中圖分類號(hào)]TP311 [文獻(xiàn)標(biāo)識(shí)碼]A [文章編號(hào)]1673-0194(2017)02-0-03
1 應(yīng)用日志監(jiān)管平臺(tái)的概述
應(yīng)用日志是基于時(shí)間順序,記錄應(yīng)用程序所發(fā)生事件的數(shù)據(jù)。開發(fā)人員,可以根據(jù)應(yīng)用日志中的錯(cuò)誤和調(diào)試信息等數(shù)據(jù),跟蹤程序運(yùn)行、分析程序性能,這有利于提升程序質(zhì)量和開發(fā)效率;運(yùn)維人員,可以根據(jù)應(yīng)用日志中的運(yùn)行數(shù)據(jù),監(jiān)控程序狀態(tài)、定位排查故障、分析性能瓶頸等。因此,應(yīng)用日志的監(jiān)控和管理對(duì)程序開發(fā)和企業(yè)的運(yùn)維都有著重要作用。
本地存儲(chǔ),這種傳統(tǒng)的應(yīng)用日志的監(jiān)管方式存在很多問題,其碎片化嚴(yán)重;格式不統(tǒng)一,不利于數(shù)據(jù)分析和管理;易丟失,安全性差;監(jiān)管工具局限性大,應(yīng)用場(chǎng)景單一,功能簡(jiǎn)單。如何構(gòu)建一套通用的監(jiān)管平臺(tái),真正有效地挖掘并利用日志數(shù)據(jù)來(lái)助力企業(yè)發(fā)展,是企業(yè)迫切需要解決的問題。
2 應(yīng)用日志監(jiān)管平臺(tái)的功能說(shuō)明
通用應(yīng)用日志監(jiān)管平臺(tái)核心功能模塊分為日志采集模塊、日志處理模塊、日志存儲(chǔ)模塊、日志管理網(wǎng)站、日志監(jiān)控報(bào)警模塊和日志分析報(bào)表模塊。如圖1所示。
日志采集模塊,是平臺(tái)從應(yīng)用程序中收集日志數(shù)據(jù)的功能模塊。該模塊采用標(biāo)準(zhǔn)日志接入?yún)f(xié)議和分布式隊(duì)列接收技術(shù),可同時(shí)接入多個(gè)應(yīng)用程序,收集不同類型的日志數(shù)據(jù),即使海量的應(yīng)用日志數(shù)據(jù)也能被快速、完整的接收。
日志處理模塊,是對(duì)接入的應(yīng)用日志數(shù)據(jù)進(jìn)行處理的功能模塊。該功能模塊采用高集群技術(shù),不間斷地對(duì)日志數(shù)據(jù)進(jìn)行篩選、分組、格式優(yōu)化等處理。
日志存儲(chǔ)模塊,是存儲(chǔ)應(yīng)用日志數(shù)據(jù)模塊。對(duì)最新的日志和使用頻率高的數(shù)據(jù),采用Redis緩存集群存儲(chǔ)技術(shù),將數(shù)據(jù)存放在內(nèi)存中,可快速讀取數(shù)據(jù),提升分析效率。對(duì)使用頻率較低的數(shù)據(jù),采用Hbase分布式存儲(chǔ)系統(tǒng)存儲(chǔ),將數(shù)據(jù)分散存儲(chǔ)在多臺(tái)獨(dú)立的設(shè)備上,提高存儲(chǔ)的可靠性,可根據(jù)需要隨時(shí)擴(kuò)展存儲(chǔ);對(duì)使用頻率極低的數(shù)據(jù),采用HDFS分布式文件系統(tǒng)存儲(chǔ)方式進(jìn)行備份,成本低、容量大、易擴(kuò)展。
日志管理網(wǎng)站,是在線監(jiān)控應(yīng)用日志、配置管理的網(wǎng)站。該網(wǎng)站主要有日志檢索、權(quán)限管理、應(yīng)用管理、報(bào)警策略管理等功能。日志檢索是日志分析工作的重要內(nèi)容,通過(guò)日志產(chǎn)生時(shí)間、數(shù)據(jù)來(lái)源、信息類型、日志級(jí)別等不同維度,對(duì)數(shù)據(jù)進(jìn)行快速的過(guò)濾,精準(zhǔn)定位,簡(jiǎn)化應(yīng)用日志分析工作。權(quán)限管理,通過(guò)分配每個(gè)用戶的操作權(quán)限和數(shù)據(jù)訪問權(quán)限,既滿足不同管理角色的監(jiān)管需求,又能有效地避免信息交叉,防止信息泄露,保證日志內(nèi)容安全。應(yīng)用管理功能,可在線配置應(yīng)用程序的接入方式和接入?yún)?shù)等信息;報(bào)警策略管理,可配置監(jiān)控報(bào)警條件、報(bào)警推送方式、報(bào)警頻次等信息。
日志分析報(bào)表模塊,是應(yīng)用日志監(jiān)管數(shù)據(jù)可視化的分析工具。包含數(shù)據(jù)統(tǒng)計(jì)計(jì)數(shù)功能、求和功能、求最大值、最小值功能與數(shù)據(jù)對(duì)比功能等,支持折線圖、條形圖、餅狀圖等多種圖表格式,對(duì)日志數(shù)據(jù)進(jìn)行多維度的圖表展示。
日志監(jiān)控模塊,是日志監(jiān)管平臺(tái)中的“眼睛”???4小時(shí)不間斷地監(jiān)控日志數(shù)據(jù),節(jié)省人力,減少運(yùn)維成本。智能識(shí)別異常日志,在事件發(fā)生的第一時(shí)間,發(fā)送郵件和短信通知,便于企業(yè)快速采取措施,減少異常導(dǎo)致的損失。
3 應(yīng)用日志監(jiān)管平臺(tái)的軟件架構(gòu)
通用應(yīng)用日志監(jiān)管平臺(tái)軟件架構(gòu)是一套高性能、可擴(kuò)展的軟件框架。日志采集使用消息隊(duì)列集群技術(shù),可支持大的數(shù)據(jù)量的應(yīng)用日志接入。數(shù)據(jù)處理采用消息隊(duì)列發(fā)布、訂閱模式,異步處理數(shù)據(jù),緩解處理服務(wù)器的壓力。數(shù)據(jù)存儲(chǔ)采用三種存儲(chǔ)技術(shù),高頻率使用數(shù)據(jù)存儲(chǔ)使用Redis緩存集群,提供內(nèi)存及讀寫速度,提升數(shù)據(jù)讀寫性能。普通數(shù)據(jù)存儲(chǔ)使用HBase數(shù)據(jù)庫(kù),不僅能存儲(chǔ)大規(guī)模數(shù)據(jù),還能提供實(shí)時(shí)讀寫訪問。備份數(shù)據(jù)存儲(chǔ)采用HDFS分布式存儲(chǔ)技術(shù),可存儲(chǔ)大規(guī)模的存檔文件。如圖2所示。
架構(gòu)中采用的主要技術(shù)介紹如下。
分布式消息隊(duì)列是本架構(gòu)中的重要技術(shù),在日志處理模塊中負(fù)責(zé)接收采集數(shù)據(jù),保存數(shù)據(jù)內(nèi)容并發(fā)送下一節(jié)點(diǎn)進(jìn)行進(jìn)一步處理。該技術(shù)具有異步處理的特點(diǎn),能保存消息數(shù)據(jù),無(wú)需依賴發(fā)送端和接收端,解決了應(yīng)用程序的耦合,異步消息等問題,保證數(shù)據(jù)傳送的安全。
Redis緩存集群存儲(chǔ)技術(shù),是存儲(chǔ)模塊中高速讀寫數(shù)據(jù)的重要技術(shù)。當(dāng)平臺(tái)進(jìn)行大規(guī)模的數(shù)據(jù)訪問時(shí),磁盤I/O往往成為性能瓶頸,從而導(dǎo)致過(guò)高的響應(yīng)延遲,嚴(yán)重影響性能。Redis緩存集群存儲(chǔ)技術(shù)將高速內(nèi)存作為數(shù)據(jù)對(duì)象的存儲(chǔ)介質(zhì),數(shù)據(jù)以key/value形式存儲(chǔ),理想情況下可以獲得DRAM級(jí)的讀寫性能。為平臺(tái)提供高效的讀取數(shù)據(jù)的解決方案。
HBase是一個(gè)分布式的、面向列的開源數(shù)據(jù)庫(kù),支持大數(shù)據(jù)處理和分析,可在廉價(jià)服務(wù)器上搭建起大規(guī)模結(jié)構(gòu)化存儲(chǔ)集群,具有高可擴(kuò)展性,可實(shí)現(xiàn)彈性存儲(chǔ)。
HDFS分布式文件存儲(chǔ)技術(shù)是適合運(yùn)行在通用硬件上,具有高度容錯(cuò)性的分布式文件系統(tǒng)存儲(chǔ)技術(shù),支持大文件存儲(chǔ),適合存放大量數(shù)據(jù)。在本架構(gòu)中,負(fù)責(zé)存放海量的日志備份數(shù)據(jù),不但能有效保障數(shù)據(jù)的安全性,還能部署在普通服務(wù)器上,有效地控制存儲(chǔ)成本。
4 應(yīng)用日志監(jiān)管平臺(tái)的性能
下面是通用應(yīng)用日志監(jiān)管平臺(tái)部署示意圖,如圖3所示。
平臺(tái)性能測(cè)試如下。
(1)硬件環(huán)境:
①單臺(tái)服務(wù)器配置:CPU(雙核,2.4 GHz/2 397MHz),內(nèi)存(DDR4,8GB);
②3臺(tái)服務(wù)器組成日志處理服務(wù)器集群;
③2臺(tái)服務(wù)器組成Redis緩存服務(wù)器集群;
④2臺(tái)服務(wù)器組成存儲(chǔ)服務(wù)器集群;
⑤1臺(tái)日志管理網(wǎng)站服務(wù)器;
⑥1臺(tái)日志監(jiān)管服務(wù)器。
(4)測(cè)試結(jié)論:架構(gòu)支持每秒十萬(wàn)左右數(shù)據(jù)的接入,每秒
9.2萬(wàn)數(shù)據(jù)的處理,千萬(wàn)級(jí)數(shù)據(jù)查詢響應(yīng)的時(shí)長(zhǎng)不超過(guò)1秒。
綜上所述,通用應(yīng)用日志監(jiān)管平臺(tái)的軟件架構(gòu),支持高并發(fā)接入,高性能數(shù)據(jù),檢索結(jié)果秒級(jí)延時(shí),支持動(dòng)態(tài)擴(kuò)容,具有高性能、低延時(shí)、易擴(kuò)展等特點(diǎn)。
5 應(yīng)用日志監(jiān)管平臺(tái)的應(yīng)用場(chǎng)景
以下是通用應(yīng)用日志監(jiān)管平臺(tái)應(yīng)用場(chǎng)景示意圖,如圖4所示。
圖4通用應(yīng)用日志監(jiān)管平臺(tái)應(yīng)用場(chǎng)景示意圖
企業(yè)辦公軟件:實(shí)時(shí)監(jiān)管日志數(shù)據(jù),及時(shí)報(bào)警異常信息,大大節(jié)省運(yùn)維資源;同時(shí)在線分析軟件運(yùn)行狀態(tài),為企業(yè)優(yōu)化辦公流程提供依據(jù),提升辦公效率。
車聯(lián)網(wǎng)系統(tǒng):支持大量車輛數(shù)據(jù)高并發(fā)接入,實(shí)時(shí)采集日志信息,快速分析,同步存儲(chǔ),實(shí)現(xiàn)對(duì)系統(tǒng)異常的實(shí)時(shí)管控。
電子商務(wù):支持高并發(fā)、大流量的數(shù)據(jù)采集和分析,挖掘數(shù)據(jù)價(jià)值,分析用戶行為趨勢(shì),避免系統(tǒng)過(guò)載崩潰的風(fēng)險(xiǎn),安全運(yùn)行,保證系統(tǒng)高效用,降低運(yùn)營(yíng)風(fēng)險(xiǎn)。
金融服務(wù):實(shí)時(shí)分析系統(tǒng)日志,在線監(jiān)管系統(tǒng)安全,為金融企業(yè)規(guī)避風(fēng)險(xiǎn),保障資金安全。
云服務(wù):通過(guò)分析服務(wù)日志,在線展示服務(wù)使用報(bào)表,有利于解決不合理的資源配置,優(yōu)化服務(wù)性能。
移動(dòng)APP:移動(dòng)端和后臺(tái)服務(wù)產(chǎn)生的日志,實(shí)時(shí)接入監(jiān)管平臺(tái),運(yùn)營(yíng)管理可在線監(jiān)管運(yùn)行的狀況,配合報(bào)警功能,及時(shí)掌握異常信息,提高系統(tǒng)的穩(wěn)定性。
通用應(yīng)用日志監(jiān)管平臺(tái)的應(yīng)用場(chǎng)景較為廣泛,以上列舉的為典型的應(yīng)用場(chǎng)景,通常只要涉及應(yīng)用運(yùn)維監(jiān)控、業(yè)務(wù)統(tǒng)計(jì)分析、程序研發(fā)調(diào)試等業(yè)務(wù),都適于采用該平臺(tái)進(jìn)行分析和監(jiān)控。
6 結(jié)語(yǔ)
平臺(tái)通過(guò)標(biāo)準(zhǔn)日志采集協(xié)議,采集分散日志;集群化日志處理模塊,高效分析日志;日志存儲(chǔ)模塊,實(shí)現(xiàn)集中存儲(chǔ);日志管理網(wǎng)站提供在線檢索分析日志界面和權(quán)限控制;日志監(jiān)管報(bào)表功能,提供多維度數(shù)據(jù)統(tǒng)計(jì)分析報(bào)表,實(shí)現(xiàn)數(shù)據(jù)可視化;日志報(bào)警模塊,實(shí)時(shí)監(jiān)控有效數(shù)據(jù),及時(shí)報(bào)警。幫助軟件開發(fā)人員快速、高效地進(jìn)行問題定位,協(xié)助運(yùn)維人員及時(shí)掌握應(yīng)用系統(tǒng)運(yùn)營(yíng)的情況,提高企業(yè)軟件的穩(wěn)定性和可用性,解決企業(yè)日志的管理及利用問題。