omniture

浪潮:打卡了解Venus 詳解這款OpenStack日志管理項目

2021-05-24 17:06 5105

北京2021年5月24日 /美通社/ -- Venus是什么?初見還要追溯到去年11月召開的浪潮云海創(chuàng)新論壇2020。會上不僅分享了浪潮云海對于前沿科技的創(chuàng)新洞見以及扎實可靠的落地實踐,更重要的是TA,一個開源并貢獻(xiàn)社區(qū)的OpenStack日志管理項目,被稱為Venus。

伴隨OpenStack技術(shù)發(fā)展愈發(fā)成熟,全球75個公有云、數(shù)以千計的私有云都在使用,累計部署了超過1000萬個計算核心,確然成為行業(yè)大中型私有云建設(shè)的首選。

為應(yīng)對行業(yè)中大型云建設(shè)的剛需,主要表現(xiàn)為節(jié)點規(guī)模部署環(huán)境逐漸走向大規(guī)模,涉及到的功能模塊層出不窮,尤其是各種日志類型更是紛繁復(fù)雜?!昂A俊⒎倍唷⒎稚ⅰ瓱o論是格式還是位置都讓運維人員在服務(wù)器上很難通過日志排查發(fā)現(xiàn)問題?!崩顺痹坪Q邪l(fā)團(tuán)隊表示。

更重要的一點,當(dāng)系統(tǒng)發(fā)生故障或者出現(xiàn)性能瓶頸時,經(jīng)常需要各種類型日志通過串聯(lián)才能定位故障原因或者找出導(dǎo)致系統(tǒng)性能瓶頸的線索才行,但OpenStack平臺的調(diào)用多為分布式調(diào)用,日志的串聯(lián)簡直難出天際。綜合考量,浪潮云海實力推出統(tǒng)一日志管理項目Venus,主要還是取決于大規(guī)模部署條件下,針對OpenStack平臺在日志存儲、檢索、分析等方面的核心需求。

貢獻(xiàn)社區(qū)的Venus具體能做啥?

總體來說,Venus可以做到一站式滿足日志的采集、清洗、索引、分析、告警、可視化、生成報告等需求,幫助運維人員快速檢索問題,掌握平臺的運行健康度,并在未來計劃引用機(jī)器學(xué)習(xí)算法,快速定位IT故障及根因,提高運維效率以及平臺管理的水平。 簡單來說在檢索工作上,主要提供了簡單易用的檢索方式,可以做到檢索一切日志數(shù)據(jù),定位日志上下文;分析上主要實現(xiàn)日志關(guān)聯(lián)、字段數(shù)值統(tǒng)計,提供多場景、多維度的可視化分析報表;告警層面則將搜索轉(zhuǎn)化為主動告警,實現(xiàn)海量日志中錯誤的“大海撈針”;定位主要是通過建立知識圖譜和調(diào)用的鏈?zhǔn)疥P(guān)系,結(jié)合算法實現(xiàn)故障的快速定位。

以日志預(yù)處理為例。對于日志數(shù)據(jù),OpenStack社區(qū)從開始開發(fā)就制定了嚴(yán)格的日志規(guī)范,大部分模塊都遵守此規(guī)范,即社區(qū)規(guī)定的日志格式為<時間戳><日志等級><代碼模塊><Request ID><日志內(nèi)容><源代碼位置> 。對于此種日志很容易進(jìn)行預(yù)處理,拆分成多種維度進(jìn)行索引,如下圖所示。


通常OpenStack日志索引的維度主要包括時間維度、主機(jī)維度、用戶維度(用戶id)、租戶維度(租戶id)、級別維度(info、warning、error等)、組件維度(nova_api、nova_compute等)、python_module(neutron.wsgi、nova.osapi_comput.wsgi.server等)、日志文件名(nova、neutron等)、API status(200、404等)、API type(GET、POST等)、API time等,但也有部分原生模塊的日志記錄并不規(guī)范,浪潮的OpenStack對其全部進(jìn)行了規(guī)范化處理。
如此看來開源到OpenStack社區(qū)的Venus項目現(xiàn)已具備基本的日志分析處理功能,總結(jié)一下,主要功能為:

  • 全文/多維度檢索:針對全文或已索引維度進(jìn)行關(guān)鍵詞檢索(可模糊匹配)
  • 多維度統(tǒng)計/展示: 對已索引的一個或多個維度的日志條數(shù)進(jìn)行統(tǒng)計并展示
  • 典型錯誤分析: 集成典型的錯誤分析,例如mariadb連接錯誤等
  • 錯誤日志告警:當(dāng)周期內(nèi)錯誤日志條數(shù)超過閾值,進(jìn)行告警并通知
  • 調(diào)用鏈分析:對系統(tǒng)中的調(diào)用,根據(jù)global_requestid進(jìn)行流程分析
  • API執(zhí)行狀態(tài)/耗時:對記錄API調(diào)用狀態(tài)的模塊,可以統(tǒng)計API執(zhí)行的狀態(tài)和時間消耗

從實踐層面看,浪潮云海每年都會對自研OpenStack產(chǎn)品進(jìn)行為期1個月到2個月的大規(guī)模測試,這是一個測試、調(diào)優(yōu)、測試環(huán)節(jié)不斷循環(huán)的過程,而支撐這個過程快速完成的除了監(jiān)控系統(tǒng),還有日益成熟的日志系統(tǒng),以2020年1000節(jié)點大規(guī)模測試為例:

測試過程中,報錯LOG可視化快速展現(xiàn),從而了解各組件的報錯信息,具體如下:


測試過程中出現(xiàn)過RABBITMQ掛掉的情況,可通過RABBITMQ的連接錯誤告警,可以做進(jìn)一步的數(shù)據(jù)分析,詳情如下:


表現(xiàn)出挑的Venus,整體的技術(shù)架構(gòu)又如何?

浪潮云海技術(shù)研發(fā)團(tuán)隊稱,日志管理模塊Venus以efk為基礎(chǔ),總體架構(gòu)如圖:


  • 采集端:開發(fā)了基于fluentd的采集任務(wù),針對OpenStack、操作系統(tǒng)、平臺服務(wù)等日志開發(fā)了讀取、過濾、格式化、發(fā)送等插件,并且用戶可以按需配置
  • 日志存儲:采集并格式化后日志索引至elasticsearch集群中,ES提供副本機(jī)制,即使在某些服務(wù)器宕機(jī)后仍能正常工作,提高數(shù)據(jù)可用性
  • Ivenus_api:api、restapi服務(wù),提供更簡潔、全面認(rèn)證的接口。將上層調(diào)用轉(zhuǎn)化為底層Elasticsearch的查詢,并對查詢的多維度索引數(shù)據(jù)進(jìn)行簡單處理,同時將結(jié)果返回
  • Ivenus_manager:內(nèi)部定時任務(wù)模塊,開發(fā)了可配置的定時任務(wù),主要包括:
    • 錯誤分析任務(wù):各模塊錯誤、mariadb連接錯誤、rabbitmq連接錯誤等縫隙任務(wù)
    • 通知告警任務(wù):針對不同時間、不同模塊的錯誤日志條數(shù)設(shè)置閾值并提供告警服務(wù)和通知服務(wù)
    • 調(diào)用鏈任務(wù):根據(jù)global_requestid串聯(lián)開發(fā)操作的調(diào)用鏈分析功能,可以展示調(diào)用的執(zhí)行順序、時間、錯誤信息等并提供導(dǎo)出操作
    • 配置管理任務(wù):根據(jù)告警閾值設(shè)置、定時任務(wù)管理、日志保存時間設(shè)置等配置管理任務(wù)

未來的Venus,我們期望是這樣的!

Venus項目旨在打造一個開放的OpenStack日志管理平臺,集合廣大用戶在日志領(lǐng)域的需求和實踐,提供各場景日志分析并集成算法和知識圖譜實現(xiàn)故障的快速定位,構(gòu)建完備的日志運維場景,未來Venus計劃如下:

  • 采集:除了fluentd,集成其他采集插件,例如logstash、flume等
  • 分析:探索更多運維場景,對各場景關(guān)鍵數(shù)據(jù)進(jìn)行統(tǒng)計分析和告警
  • 展現(xiàn):將venus的配置功能、分析功能、告警功能以插件形式集成到horizon
  • 定位:聚類日志、構(gòu)建知識圖譜;集成算法類庫,對故障進(jìn)行根因定位

一直以來,浪潮云海都通過對開源開放技術(shù)的攻堅,突破開源版本在性能、大規(guī)模管理能力方面的瓶頸,秉承“源于開源、饋于開源”的理念助力業(yè)界共同構(gòu)建開放統(tǒng)一的智能基礎(chǔ)設(shè)施,未來定會在此領(lǐng)域更多發(fā)力創(chuàng)造更多驚喜、取得更多成績。

消息來源:浪潮
China-PRNewsire-300-300.png
全球TMT
微信公眾號“全球TMT”發(fā)布全球互聯(lián)網(wǎng)、科技、媒體、通訊企業(yè)的經(jīng)營動態(tài)、財報信息、企業(yè)并購消息。掃描二維碼,立即訂閱!
collection