999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

大規模軟件系統日志匯集服務平臺設計與實現

2018-11-30 01:46:52湯網祥王金華赫凌俊李敏敬
計算機應用與軟件 2018年11期
關鍵詞:服務能力系統

湯網祥 王金華 赫凌俊 李敏敬

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

0 引 言

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

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

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

1 相關技術

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

2 軟件設計方案

2.1 整體框架

本文的大規模軟件系統日志匯集服務平臺,后續簡稱為日志服務平臺,其整體框架如圖1所示。

圖1 日志服務整體框架圖

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

2.2 日志采集

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

圖2 日志采集數據處理流程圖

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

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

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

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

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

表1 日志級別定義表

用于集中存儲的統一規范的日志信息如表2所示。

表2 主要日志屬性定義表

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

圖3 本地數據接收與處理設計圖

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

圖4 日志本地緩存控制圖

2.3 日志匯集與存儲

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

圖5 日志網絡匯集與存儲圖

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

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

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

圖7 調度與載入數據流圖

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3 結 語

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

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

圖9 統計分析結果展示圖

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

猜你喜歡
服務能力系統
消防安全四個能力
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
服務在身邊 健康每一天
今日農業(2019年12期)2019-08-15 00:56:32
服務在身邊 健康每一天
今日農業(2019年10期)2019-01-04 04:28:15
服務在身邊 健康每一天
今日農業(2019年16期)2019-01-03 11:39:20
大興學習之風 提升履職能力
人大建設(2018年6期)2018-08-16 07:23:10
你的換位思考能力如何
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
主站蜘蛛池模板: 日韩东京热无码人妻| 2019国产在线| 毛片大全免费观看| 久久久亚洲色| 77777亚洲午夜久久多人| 香蕉精品在线| 另类欧美日韩| 老司机精品99在线播放| 国产精品伦视频观看免费| 成人午夜久久| 国内精品91| 国产人成网线在线播放va| www精品久久| 国产精品手机在线播放| 成人亚洲天堂| 色天堂无毒不卡| 午夜欧美理论2019理论| 欧美另类第一页| 香蕉国产精品视频| 欧美精品成人一区二区在线观看| 人妻一区二区三区无码精品一区 | 亚洲一区免费看| 中国成人在线视频| 国产日韩丝袜一二三区| 在线国产91| 91精品国产情侣高潮露脸| 亚洲国产天堂久久综合226114| 国产精品9| 亚洲成人动漫在线| 国产精品成人一区二区不卡 | 久久婷婷五月综合97色| 亚洲不卡无码av中文字幕| 91国内视频在线观看| 亚洲国产一成久久精品国产成人综合| 国产在线欧美| 亚洲精品图区| 亚洲日韩国产精品综合在线观看| 成年女人a毛片免费视频| 国产女人喷水视频| 97在线观看视频免费| 精品国产一二三区| 中字无码av在线电影| 亚洲精品亚洲人成在线| 91毛片网| 国产va视频| 亚洲天堂视频在线免费观看| 国产日本欧美亚洲精品视| 天堂av综合网| 无码一区二区波多野结衣播放搜索| 欧美国产另类| 国产欧美日韩在线一区| 国产精品永久久久久| 欧美另类图片视频无弹跳第一页| 日本不卡视频在线| 亚洲成在人线av品善网好看| 久久香蕉欧美精品| 美女国产在线| а∨天堂一区中文字幕| 欧美日韩一区二区三| 国产91av在线| www.精品视频| 日本亚洲成高清一区二区三区| 在线观看免费AV网| 国产69精品久久| 国产精品3p视频| 亚洲Av激情网五月天| 国产高清免费午夜在线视频| 国产真实乱子伦精品视手机观看| 99re精彩视频| 国产在线97| 国产簧片免费在线播放| 欧美色亚洲| 99re视频在线| 欧美国产中文| 91精品国产91久无码网站| 国产综合精品一区二区| 免费国产不卡午夜福在线观看| 玖玖免费视频在线观看| 无码精品福利一区二区三区| 亚洲成人网在线播放| 亚洲日本一本dvd高清| 国内丰满少妇猛烈精品播|