亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        大規(guī)模軟件系統(tǒng)日志匯集服務平臺設計與實現(xiàn)

        2018-11-30 01:46:52湯網(wǎng)祥王金華赫凌俊李敏敬
        計算機應用與軟件 2018年11期
        關鍵詞:日志服務平臺調度

        湯網(wǎng)祥 王金華 赫凌俊 李敏敬

        (中國電子科技集團公司第三十二研究所 上海 201808)

        0 引 言

        隨著大數(shù)據(jù)技術發(fā)展、高速互聯(lián)網(wǎng)以及DevOps[1]的興起,大規(guī)模軟件[2]運行日志收集及維護系統(tǒng)得到快速的發(fā)展?;ヂ?lián)網(wǎng)界興起了一些專門針對日志提供存儲和分析服務的公司。這類公司搭建日志收集及分析平臺,為用戶提供各類數(shù)據(jù)采集的接口,讓用戶自行配置日志源或提交日志文件,提供針對日志內容的分析和查詢能力,可以給軟件運維帶來便利,也可以基于日志中獲得更深的業(yè)務價值[3-4]。

        這類系統(tǒng)是需要大量應用人員參與的系統(tǒng),大家各自管理維護自己的數(shù)據(jù)。但對一些專用的大規(guī)模復雜業(yè)務軟件系統(tǒng)來說,這類日志收集分析系統(tǒng)的數(shù)據(jù)采集方式難以提供采集和分析服務。應用軟件量大,部署范圍廣,軟件交互非常復雜,機器軟件組合成千上萬級。除了服務端以外,還需要采集終端應用的日志,現(xiàn)有的日志采集模式下需要大量的人力和時間去維護采集源,同時也需要相當多的技術人員來進行數(shù)據(jù)分析和系統(tǒng)維護。在一些封閉性要求比較高、使用人員技術能力較弱、維護人員少的環(huán)境下,這種數(shù)據(jù)接入方式難以使用。另外,很多軟件對自己的業(yè)務操作都有審計的需要,都需要針對這些信息設計并實現(xiàn)一套業(yè)務日志系統(tǒng)以供事后審計,在一個大型系統(tǒng)中造成重復設計和實現(xiàn)。同時,在這類環(huán)境下,對重要日志的存儲時間是較長的,但日志數(shù)據(jù)的存儲空間和計算資源是受限的,無法做到互聯(lián)網(wǎng)界商業(yè)模式下的存儲與計算資源的大量供應。

        本文針對這類大規(guī)模復雜軟件系統(tǒng)的日志采集和維護需求,結合當前的大數(shù)據(jù)存儲分析技術和分布式索引技術,設計了一套日志匯集服務平臺,提供基于集中控制模式的全系統(tǒng)日志數(shù)據(jù)采集與匯集能力,提供數(shù)據(jù)分析與查詢展現(xiàn)能力,為軟件研發(fā)過程和運維過程提供全過程支撐。

        1 相關技術

        本文的日志匯集服務平臺著眼于全局控制體系,在此基礎上集成優(yōu)秀的開源產(chǎn)品,主要包括Flume Agent、Kafka、HBase、Elastic Search等。Flume Agent是Flume[5]的一個數(shù)據(jù)采集組件,可以提供豐富的數(shù)據(jù)資源采集能力;Kafka[6]是一個分布式的消息系統(tǒng),便于橫向擴展,吞吐量高,可以保證消息的有序性和可靠性,可以為高速流數(shù)據(jù)的處理提供支持;HBase[7]是一個高性能、可擴展的分布式列式數(shù)據(jù)庫存儲系統(tǒng);Elastic Search是一個準實時的分布式搜索引擎,可以支持所有類型文檔的搜索。通過HBase與Elastic Search的整合[8],構建二級索引,可以處理PB級的數(shù)據(jù),同時保持很高的處理性能。

        2 軟件設計方案

        2.1 整體框架

        本文的大規(guī)模軟件系統(tǒng)日志匯集服務平臺,后續(xù)簡稱為日志服務平臺,其整體框架如圖1所示。

        圖1 日志服務整體框架圖

        日志服務平臺包含日志采集、日志匯集與存儲兩部分。基于分布式存儲、分布式列式數(shù)據(jù)庫、分布式索引服務、分布式消息服務等提供日志的采集服務和日志匯集與存儲服務,日志采集提供各類終端和服務器日志數(shù)據(jù)的采集能力;日志匯集與存儲提供匯集的集中控制功能,以及控制規(guī)則的數(shù)據(jù)定向匯集能力,涵蓋日志開發(fā)、收集、存儲、應用、銷毀的全生命周期服務,為基于日志的各類數(shù)據(jù)分析提供數(shù)據(jù)支撐。

        2.2 日志采集

        本文日志服務平臺日志采集包含兩類方式:專用日志采集、通用日志采集,數(shù)據(jù)處理流程如圖2所示。專用日志采集,通過擴展開發(fā)包進行采集,多用于終端日志采集和新建系統(tǒng)的日志采集,支持采集普通日志和業(yè)務日志,采集內容更加豐富;通用日志采集,是對現(xiàn)有軟件系統(tǒng)輸出日志數(shù)據(jù)的直接采集,不影響現(xiàn)有軟件系統(tǒng)運行,支持現(xiàn)有系統(tǒng)的多種數(shù)據(jù)源,包括文件、系統(tǒng)事件等[9-10]。兩種方式采集出的數(shù)據(jù)基于統(tǒng)一的標準格化式后進行緩存,也可以基于軟件選擇全解析,以支持本地信息復雜搜索、展現(xiàn),方便開發(fā)過程問題快速定位。

        圖2 日志采集數(shù)據(jù)處理流程圖

        專用日志擴展包針對現(xiàn)有常用日志開發(fā)包進行擴展,保留現(xiàn)有開發(fā)接口,增加業(yè)務類日志接口,記錄業(yè)務操作信息,統(tǒng)一內部日志級別定義,標準化內部數(shù)據(jù)格式,提供本地端口可靠提交能力。采用異步傳輸機制,降低日志網(wǎng)絡傳輸對屬主應用性能的影響,升級配置文件,通過配置文件的方式注入軟件日志信息。例如對于Java類應用程序,通過替換開發(fā)包,簡單修改配置文件,就可以實現(xiàn)日志的統(tǒng)一接入。

        日志數(shù)據(jù)直接采集針對不便于進行開發(fā)包替換的應用或系統(tǒng)的現(xiàn)有日志數(shù)據(jù)提供專用的日志數(shù)據(jù)采集能力,可以監(jiān)控這些應用或系統(tǒng)的日志輸出,自動采集新產(chǎn)生的日志數(shù)據(jù),進行解析處理,并使用標準化格式存入本地緩存系統(tǒng)。這一部分是目前商用日志系統(tǒng)進行采集的主要方式,可以有選擇地進行集成,融合進本文日志采集體系。該部分采集參數(shù)的配置提供本地可視化手段,并將配置控制納入遠程集中控制體系,開源軟件Flume,基于Java開發(fā),具有很好的平臺兼容性,是不錯的整合選擇。

        本地匯集服務提供本地默認采集端口服務,收集本地開發(fā)包提交的日志對收集到的數(shù)據(jù)進行初步解析處理,使用標準化格式存入本地緩存系統(tǒng),并提供基于日志級別和特征值的數(shù)據(jù)統(tǒng)計,支撐軟件性能數(shù)據(jù)的監(jiān)控和軟件運行問題的快速發(fā)現(xiàn)。同時可以減少大量日志內容的提交,降低網(wǎng)絡和服務端資源的開銷。在軟件研發(fā)過程中,結合選擇性的全解析能力,通過緩存查詢工具查看應用輸出的日志,進行日志過濾查看,快速獲取日志內容,進行日志分析,定位軟件問題。既可以輔助規(guī)范化日志的輸出,也可以輔助研發(fā)人員確定需要輸出哪些信息,有助于軟件運維過程中問題的定位,支撐實際運行過程中基于日志的軟件問題排查定位和操作審計。

        日志采集需要有廣泛的兼容性,本地匯集服務會面對各類復雜的使用場景,需要有很高的兼容能力:操作系統(tǒng)的兼容,物理平臺的兼容,獨立應用輸出與插件輸出的兼容,擴展開發(fā)包輸出信息和現(xiàn)有數(shù)據(jù)源直接采集信息的兼容,以及內部定義有差異的不同日志開發(fā)包進行擴展時的兼容。本日志服務平臺為各類接入的日志源定義了統(tǒng)一的日志級別,統(tǒng)一的數(shù)據(jù)格式,對不同的原始定義進行了調整和整合。

        日志級別相關規(guī)范信息如表1所示。

        表1 日志級別定義表

        用于集中存儲的統(tǒng)一規(guī)范的日志信息如表2所示。

        表2 主要日志屬性定義表

        很多軟件的日志輸出速度非常高,本地匯集要能對這類數(shù)據(jù)有相應的承載能力或應對能力。本文的匯集服務對數(shù)據(jù)的接收和處理過程使用內存處理模式,通過管道過濾器樣式進行設計,結合多線程并行模式,充分利用CPU的處理能力,大大提高數(shù)據(jù)處理速度。設計圖如圖3所示。

        圖3 本地數(shù)據(jù)接收與處理設計圖

        本地匯集服務需要具備磁盤使用控制能力,數(shù)據(jù)采集持續(xù)運轉,同時又要在本地保留一定量的存儲,支持本地的日志快速查詢,緩存數(shù)據(jù)的存儲和管控模式是關鍵。本文通過循環(huán)數(shù)據(jù)表的方式進行數(shù)據(jù)存儲,支持快速復雜查詢,通過循環(huán)存儲模式結合表定量模式,進行本地緩存數(shù)據(jù)量的磁盤空間控制??刂茍D如圖4所示。

        圖4 日志本地緩存控制圖

        2.3 日志匯集與存儲

        本文日志服務平臺的日志匯集提供日志匯集控制系統(tǒng),可對匯集進行全方位控制;采用分級匯集機制,降低系統(tǒng)資源最低需求,適應各類應用場景;采用異步處理模式,應對數(shù)據(jù)潮涌現(xiàn)象,同時可以提高業(yè)務處理速度;提供自主集群機制,分攤網(wǎng)絡帶寬和數(shù)據(jù)處理壓力,降低系統(tǒng)資源需求,同時提高系統(tǒng)的可用性;根據(jù)時間段分庫存儲,控制常規(guī)運行態(tài)所接觸的數(shù)據(jù)空間,保持全系統(tǒng)持續(xù)運行下的系統(tǒng)性能的穩(wěn)定性,不會因為數(shù)據(jù)持續(xù)積累導致系統(tǒng)的運轉速度的降低,使系統(tǒng)永遠保持年輕。功能設計如圖5所示。

        圖5 日志網(wǎng)絡匯集與存儲圖

        1) 匯集管控:本文日志服務提供日志內容匯集控制系統(tǒng),能夠對提交系統(tǒng)進行精確控制,可以控制是否要提交,全部提交還是指定某些計算機提交;可以指定提交的時間范圍,全時段提交,還是指定時間段提交,支持指定跨天時間段提交;可以指定提交內容,能夠指定匯集信息的計算機、軟件、時間段、日志級別,種類等要素,篩選或提取指定的日志內容;可以指定提交格式和提交目的地,除了處理全局數(shù)據(jù)的數(shù)據(jù)存儲服務集群之外,還可以為消息服務器集群、明細數(shù)據(jù)存儲與分析集群提交數(shù)據(jù),為準實時數(shù)據(jù)分析用、交互數(shù)據(jù)分析等各類數(shù)據(jù)分析提供全局管理支撐。另外,提供終端統(tǒng)計數(shù)據(jù)匯集控制機制,可以設置統(tǒng)計內容模式、統(tǒng)計間隔等,為無日志內容匯集下的軟件性能分析提供支撐。

        2) 數(shù)據(jù)調度與載入:通過集中控制的匯集管控管理功能構建分析用數(shù)據(jù)調度策略,確定數(shù)據(jù)傳輸通道和緩存空間構建機制,可以獲得分析任務所需的數(shù)據(jù)內容。將歷史數(shù)據(jù)和實時數(shù)據(jù)按照適當?shù)念l率調度到指定的數(shù)據(jù)緩存空間,為各類日志分析系統(tǒng)[11]提供數(shù)據(jù)支撐,包括準實時數(shù)據(jù)分析[12-13]、交互式數(shù)據(jù)分析[14]、批量數(shù)據(jù)分析[15]。目前常用的分析用數(shù)據(jù)緩存技術有hive、Kafka、Elastic Search等。這些技術可以映射現(xiàn)有數(shù)據(jù),或者是將數(shù)據(jù)進行分類且時序化存儲,或者提供數(shù)據(jù)索引,針對不同的數(shù)據(jù)分析需求采用不同的技術手段。調度與載入數(shù)據(jù)流圖如圖6所示。

        3) 異步分級匯集機制:日志服務是屬于輔助型系統(tǒng),不應該對業(yè)務系統(tǒng)有太大的影響,在必要時還需要能夠自動暫停部分能力為業(yè)務讓步。因此,日志數(shù)據(jù)在本地匯集和網(wǎng)絡集中匯集過程需要使用異步緩沖機制,降低系統(tǒng)前端的異常狀態(tài)對后續(xù)處理的影響,以及系統(tǒng)后端流程對前端業(yè)務的影響,例如經(jīng)常會出現(xiàn)的日志數(shù)據(jù)潮涌現(xiàn)象以及網(wǎng)絡斷連現(xiàn)象。本文日志服務平臺中比較典型的需要使用異步機制的地方有:開發(fā)包提交、本地匯集緩存、網(wǎng)絡匯集存儲等,通過異步機制,不但可以化解異常的傳遞,保證系統(tǒng)的平穩(wěn)運行,還便于引入更多計算資源,提高系統(tǒng)的整體性能。日志服務平臺會有保存較長時間日志的能力,但持續(xù)運行情況下中往往會面臨配給的集中存儲資源不足的問題,難以提供全部匯集所需相應的存儲空間,數(shù)據(jù)量龐大,后續(xù)處理系統(tǒng)無法及時應對。因此需要將日志數(shù)據(jù)分級處理,近期的全量日志保留在客戶端,只提交統(tǒng)計量和部分需要的數(shù)據(jù)提交到服務端,需要更詳細的日志數(shù)據(jù)時通過構建專用提取策略進行提取。比如:為了發(fā)現(xiàn)軟件問題,默認只提交警告級以上日志,詳細的日志后續(xù)再通過專用策略進行提??;為了業(yè)務分析,只提交操作類日志數(shù)據(jù)等。異步分級匯集數(shù)據(jù)流程如圖7所示。

        圖7 調度與載入數(shù)據(jù)流圖

        4) 集群擴展能力:為處理全局數(shù)據(jù)存儲的存儲服務提供集群化服務能力,多個服務處理節(jié)點能夠自行組合為服務集群,為全部數(shù)據(jù)接入點提供匯集服務,分攤數(shù)據(jù)處理壓力。基于自主集群機制,可以通過橫向擴展的方式增加數(shù)據(jù)處理能力,提高系統(tǒng)的整體性能;提供集群自動調度能力,能夠根據(jù)各服務節(jié)點的負載量、可用計算資源、處理速度、匯集速度,集中控制等因素自動調整數(shù)據(jù)匯集流向;充分利用計算資源,降低數(shù)據(jù)積壓,保障數(shù)據(jù)處理的及時性;能自動處理服務節(jié)點的接入和斷開,基于最小變化原則重新調整數(shù)據(jù)匯集方向,進行保障系統(tǒng)的平穩(wěn)運行。

        集群調度算法主流程如圖8所示。

        圖8 集群調度主要處理流程圖

        集群調度處理流程算法明細如下:

        (1) 提取活躍服務器清單數(shù)據(jù)、服務器處理能力數(shù)據(jù)、服務器積壓量數(shù)據(jù),以及服務器承擔功能模塊清單;

        (2) 提取活躍客戶機清單以及歷史平均提交速度數(shù)據(jù);

        (3) 將積壓量折算為處理能力數(shù)據(jù),將功能模塊折算為處理能力數(shù)據(jù);

        (4) 通過原始處理能力數(shù)據(jù)減去積壓量、功能模塊等折算的處理能力,獲得最終用于計算的各服務器的相對處理能力;

        (5) 個別服務器因承擔過重,被排除出待分配的服務器列表,最終形成用于調度的服務器清單;

        (6) 根據(jù)總相對處理能力和總提交量進行對比換算,形成各服務器的處理能力度量值,總度量值的和略超出提交量,各服務器的度量值與相對處理能力等比;

        (7) 通過各服務器根據(jù)度量值進行對當前服務器分配進行調整,優(yōu)先保留已有的提交量較大的終端,如果終端提交量超出了度量值,多出的終端放入統(tǒng)一調度清單,如果服務器當前負載不足,會形成負載空缺,留待統(tǒng)一分配;

        (8) 將統(tǒng)一調度清單中的終端根據(jù)提交量和服務器負載空缺量進行分配,也是優(yōu)先將提交量大的向負載空缺量大的服務器進行分配;

        (9) 最后剩余的個別無法分配出去的終端根據(jù)提交量大小和空缺大小進行強制分配,大的配大的,不考慮度量值超量問題。

        該算法雖然無法每次調度都做到絕對的負載均衡,但它的分配結果要比單純的數(shù)據(jù)包個數(shù)、機器個數(shù)、數(shù)據(jù)量等的簡單調度模式要合理很多,而且計算邏輯簡單,處理速度快,各類參考數(shù)據(jù)都是在隨著系統(tǒng)動態(tài)形成、持續(xù)變化,系統(tǒng)在持續(xù)運行中會形成一個動態(tài)的負載均衡。

        5) 分片存儲:日志數(shù)據(jù)具有天然的時效性,數(shù)據(jù)的使用也是基于時間的維度。日志的數(shù)據(jù)量相當龐大,即便是大數(shù)據(jù)平臺,超量的數(shù)據(jù)放在一張表中,數(shù)據(jù)查詢也會占用掉較多的時間,而且數(shù)據(jù)越舊,使用的機率就越低。為保證系統(tǒng)的持續(xù)高效運行,不會因為時間的關系變得緩慢,在使用分布式列式數(shù)據(jù)庫提高大數(shù)量數(shù)據(jù)存儲和管理性能的基礎之上,采用按月為粒度的分表存儲。各條日志數(shù)據(jù)都存入對應時間段的庫中,永遠保持系統(tǒng)常規(guī)處理數(shù)據(jù)量的有限態(tài)。日志數(shù)據(jù)內容具有較大的重復性,使用數(shù)據(jù)壓縮存儲的方式可以有效減少存儲空間;結合分布式列式數(shù)據(jù)庫數(shù)據(jù)分塊存儲方式和數(shù)據(jù)的使用模式,優(yōu)化rowkey的構建模型,提高數(shù)據(jù)使用效率。采用分布式索引系統(tǒng)對數(shù)據(jù)內容進行準實時索引,提高數(shù)據(jù)即時查詢能力,通過索引和數(shù)據(jù)內容的映射關系,索引采用同樣時間粒度的分庫機制,提高近期數(shù)據(jù)的處理效率,保持系統(tǒng)性能的穩(wěn)定型。

        6) 系統(tǒng)運行監(jiān)控:對系統(tǒng)各部分的運行狀態(tài)數(shù)據(jù)進行采集,并通過內部匯集機制進行匯總,提供可視化的圖表展現(xiàn)方式對內部運行狀態(tài)數(shù)據(jù)進行展現(xiàn)。被監(jiān)控數(shù)據(jù)主要有終端接收速度、處理速度、存儲速度、上存速度、緩存量、內部各服務狀態(tài)、服務端接收速度、積壓量、處理速度、存儲速度、內部各服務運行狀態(tài)等。運行監(jiān)控系統(tǒng)可以對系統(tǒng)運行狀態(tài)進行監(jiān)控,故障排查,并輔助系統(tǒng)性能調優(yōu)。

        3 結 語

        本文針對大規(guī)模軟件系統(tǒng)中日志的采集、匯集存儲和分析提出了全套的設計方案。覆蓋日志的全生命周期,可以對全系統(tǒng)的日志采集、調度、存儲、查看、分析進行統(tǒng)一管控,解決系統(tǒng)大規(guī)模部署下日志采集配置復雜,難以集中控制的問題,解決有限資源條件下數(shù)據(jù)處理和長時間存儲資源不足的問題。并針對眾多軟件日志集中管控的特點,提出了幾點日志分析方向,發(fā)掘日志的深入價值。

        本文設計的日志服務平臺目前已經(jīng)完成了日志數(shù)據(jù)的采集、調度和存儲體系。支持基于集中控制的策略將所需的日志數(shù)據(jù)調度到指定的位置進行存儲,提供日志統(tǒng)計分析能力和數(shù)據(jù)內容查看能力??梢钥v觀系統(tǒng)運行狀態(tài),發(fā)現(xiàn)哪些軟件什么時間段出現(xiàn)問題,可以提取和查看詳細日志內容,輔助研發(fā)人員進行故障診斷。圖9所示是日志統(tǒng)計分析縱覽圖,可以查看指定月、天、時的運行分析結果,結合折線點的明細數(shù)據(jù),確定異常日志來源于哪個軟件,分析軟件運行趨勢。

        圖9 統(tǒng)計分析結果展示圖

        本文下一步的工作是豐富日志數(shù)據(jù)分析能力。結合二次解析、深度學習、語義分析等手段從日志數(shù)據(jù)中發(fā)現(xiàn)更多的價值,為全系統(tǒng)運維提供強大且智能化的支撐。

        猜你喜歡
        日志服務平臺調度
        密碼服務平臺
        打造一體化汽車服務平臺
        一名老黨員的工作日志
        華人時刊(2021年13期)2021-11-27 09:19:02
        扶貧日志
        心聲歌刊(2020年4期)2020-09-07 06:37:14
        論基于云的電子政務服務平臺構建
        湖北農機化(2020年4期)2020-07-24 09:07:38
        《調度集中系統(tǒng)(CTC)/列車調度指揮系統(tǒng)(TDCS)維護手冊》正式出版
        一種基于負載均衡的Kubernetes調度改進算法
        虛擬機實時遷移調度算法
        基于云計算的民航公共信息服務平臺
        游學日志
        亚洲精品天堂在线观看| 亚洲av永久无码精品| 亚洲久热无码av中文字幕| 国产成人精品日本亚洲直播| 五十路在线中文字幕在线中文字幕| 国产在线视频一区二区天美蜜桃| 亚洲色国产欧美日韩| 亚洲男人精品| 国产精品成人黄色大片| 精品亚洲天堂一区二区三区| 麻豆影视视频高清在线观看| 欧美国产小视频| 精品国产乱码久久免费看| 中文字幕乱码亚洲无限码| 亚洲精品无amm毛片| 精品午夜久久网成年网| 精品亚亚洲成av人片在线观看| 免费 无码 国产精品| 人妻av在线一区二区三区| 人妻激情偷乱视频一区二区三区| 亚洲欧美日韩一区二区三区在线| 欧美日韩a级a| 国产免费人成视频在线观看 | 门卫又粗又大又长好爽| 日韩欧美人妻一区二区三区| 国产日韩亚洲欧洲一区二区三区| 亚洲色图第一页在线观看视频| 91久久精品国产综合另类专区| 久久夜色精品国产噜噜亚洲av| 国产视频网站一区二区三区| av在线一区二区精品| 色五月丁香五月综合五月| 男女超爽视频免费播放| 玩弄放荡人妻一区二区三区| 亚洲乱码av中文一区二区| 欧美大屁股xxxxhd黑色| 92精品国产自产在线观看48页| 中文字幕一区二区黄色| 中文字幕乱码亚洲精品一区| 国产成人啪精品| 一区二区亚洲熟女偷拍|