利用StackStorm實(shí)現(xiàn)故障智能診斷

攜程旅行網(wǎng)是國(guó)內(nèi)領(lǐng)先的在線旅游服務(wù)公司作箍,也是國(guó)內(nèi)規(guī)模較大的互聯(lián)網(wǎng)公司之一乌叶。隨著近年來業(yè)務(wù)的迅猛增長(zhǎng),支撐網(wǎng)站的技術(shù)和系統(tǒng)的復(fù)雜性和規(guī)模也隨之呈跳躍性的攀升汉矿。要迎接網(wǎng)站規(guī)模和復(fù)雜性提升帶來的各種挑戰(zhàn),運(yùn)維部門首當(dāng)其沖阵苇。運(yùn)用新技術(shù)壁公,新思維來應(yīng)對(duì)各種出現(xiàn)的新問題是運(yùn)維技術(shù)人員天天都要面對(duì)的工作。本文中將介紹我們?nèi)绾螒?yīng)對(duì)新場(chǎng)景下的排障工作绅项。

問題描述

當(dāng)運(yùn)維自動(dòng)化程度提高后紊册,對(duì)于自動(dòng)化服務(wù)的請(qǐng)求數(shù)量不斷增長(zhǎng),業(yè)務(wù)規(guī)則和流程的復(fù)雜性日益加大快耿。用戶對(duì)自動(dòng)化服務(wù)越來越依賴囊陡,因此對(duì)服務(wù)標(biāo)準(zhǔn)的要求也在提高,尤其表現(xiàn)在對(duì)服務(wù)可靠性的高要求润努。而另一方面关斜,開發(fā)周期短示括,外部依賴多铺浇,不可控因素多等原因又使得工具和系統(tǒng)的缺陷在所難免。因此垛膝,在出現(xiàn)故障后能夠快速定位問題鳍侣,快速解決問題,把對(duì)用戶的影響降到最低吼拥,就成了一個(gè)直接關(guān)系到產(chǎn)品成敗的非功能性需求倚聚。

以攜程運(yùn)維工作流平臺(tái)(攜程運(yùn)維工作流平臺(tái)是一個(gè)運(yùn)行攜程核心運(yùn)維流程,如服務(wù)器凿可,網(wǎng)絡(luò)惑折,應(yīng)用等上線/下線/變更等工作流的系統(tǒng)平臺(tái))為例,一臺(tái)服務(wù)器的上線流程從提交請(qǐng)求到服務(wù)器交付需要控制在半小時(shí)之內(nèi)枯跑,而流程由近十個(gè)環(huán)節(jié)惨驶,和近十個(gè)工具或系統(tǒng)交互,任何一個(gè)環(huán)節(jié)出現(xiàn)微小故障或者不穩(wěn)定都可能造成流程中斷敛助。因此粗卜,需要我們能盡早發(fā)現(xiàn)每個(gè)環(huán)節(jié)的問題,修復(fù)問題纳击。

傳統(tǒng)策略和它的問題

傳統(tǒng)方式下续扔,我們使用黑盒策略,只監(jiān)控流程的外在表現(xiàn)焕数。監(jiān)控流程中的每個(gè)步驟纱昧,給流程的每個(gè)步驟設(shè)置SLA,一旦SLA超時(shí)堡赔,就發(fā)郵件提醒相關(guān)人員及流程組识脆。告警郵件發(fā)出后,運(yùn)維人員需要接收到告警,登錄系統(tǒng)存璃,分析告警仑荐,定位診斷,修復(fù)故障纵东。

上述策略存在明顯的問題:

1) ? ?時(shí)間延誤:運(yùn)維人員不能及時(shí)響應(yīng)告警粘招,造成響應(yīng)及處理時(shí)間不可控

2) ? ?人力成本:人工調(diào)查故障需要消耗大量的人力成本,而且經(jīng)驗(yàn)積累過程緩慢(因?yàn)橥粋€(gè)處理人員處理同一個(gè)問題的間隔時(shí)間可能比較長(zhǎng)偎球,不能快速利用上次的排障經(jīng)驗(yàn))

3) ? ?有價(jià)值的歷史數(shù)據(jù)沒有保存洒扎,無法統(tǒng)計(jì)告警現(xiàn)狀及解決方案。如果有保存和分類的歷史數(shù)據(jù)衰絮,我們可以了解系統(tǒng)的主要故障區(qū)域有哪些袍冷,以便進(jìn)行針對(duì)性的改良設(shè)計(jì)。

4) ? ?引入人為錯(cuò)誤:人工處理過程還有可能引入人為錯(cuò)誤

解決思路

為了全面掌握當(dāng)前系統(tǒng)中故障的分布情況猫牡,我們先進(jìn)行了第一步工作:建立一個(gè)排障系統(tǒng)對(duì)故障進(jìn)行自動(dòng)記錄和分類胡诗。我們?cè)诹鞒唐脚_(tái)中的關(guān)鍵環(huán)節(jié)進(jìn)行埋點(diǎn),將最能反映故障和異常的特征參數(shù)隨著故障警告一起輸送出來淌友,在系統(tǒng)中根據(jù)這些特征參數(shù)對(duì)故障和人工分析的結(jié)果進(jìn)行分類煌恢。

經(jīng)過一段時(shí)間的人工處理,統(tǒng)計(jì)出如下報(bào)表:

從報(bào)表中震庭,我們可以看到幾個(gè)結(jié)果:

有很大一部分是無需干預(yù)的瑰抵。

告警數(shù)量雖然很多,但是類別卻不多器联,大量告警可以被診斷為同一問題二汛,使用同樣的修復(fù)方式。

絕大部分的故障可以通過告警中帶有的特征參數(shù)進(jìn)行自動(dòng)分類或者利用簡(jiǎn)單的邏輯進(jìn)行自動(dòng)分類 – 自動(dòng)診斷問題是可行的拨拓。

根據(jù)告警落地后的分析報(bào)告肴颊,很清楚地可以看到自動(dòng)診斷流程是可行的,并且可以節(jié)省大量人力成本千元,并且大幅縮短排障時(shí)間和消除人為錯(cuò)誤苫昌。

故障自動(dòng)診斷方案

既然所有的問題的答案最終都指向自動(dòng)診斷,那么我們來看下自動(dòng)診斷需要包含哪些功能才能解決我們的問題幸海。

故障自動(dòng)診斷流程需要做到如下幾點(diǎn):

告警發(fā)出時(shí)立即響應(yīng)

識(shí)別誤報(bào)或可自行修復(fù)的告警

自動(dòng)處理誤報(bào)及無需干預(yù)的告警

對(duì)于復(fù)雜情況的告警進(jìn)行預(yù)先診斷并返回結(jié)果

有了以上目標(biāo)祟身,接下來我們需要選擇合適的工具實(shí)現(xiàn)自動(dòng)診斷流程。

StackStorm介紹

StackStorm (以下簡(jiǎn)稱ST2)是時(shí)下非常流行的一個(gè)自動(dòng)化引擎物独,擅長(zhǎng)處理自動(dòng)化流程袜硫,支持各種服務(wù)及工具的自動(dòng)化與集成〉猜ǎ可以輕松的實(shí)現(xiàn)故障診斷和自動(dòng)修復(fù)婉陷。因此利用ST2來實(shí)現(xiàn)故障自動(dòng)診斷和修復(fù)應(yīng)該是非常不錯(cuò)的選擇帚称。

那么,ST2到底是什么秽澳,能做什么闯睹,為什么可以應(yīng)用到故障智能診斷中。下面做簡(jiǎn)單介紹担神。

ST2是什么

官方定義:

StackStorm is a platform for integration and automationacross services and tools. It ties together your existing infrastructure andapplication environment so you can more easily automate that environment. Ithas a particular focus on taking actions in response to events.

簡(jiǎn)單來說:StackStorm是一個(gè)事件驅(qū)動(dòng)的自動(dòng)化引擎楼吃。

ST2優(yōu)勢(shì)

攜程之前使用最多的工作流平臺(tái)是BMC的產(chǎn)品Remedy。Remedy同樣是一個(gè)使用范圍廣泛的自動(dòng)化工作流引擎妄讯。和Remedy這種比較龐大的工作流平臺(tái)相比孩锡,ST2有以下優(yōu)勢(shì):

? 開源,StackStorm Exchange提供了各種各樣的Pack亥贸,只要進(jìn)行簡(jiǎn)單的Pack安裝后就可以使用躬窜。

? 對(duì)DevOPS友好,ST2的Action支持任何形式的編程語言炕置,如:Python荣挨,Java等,用簡(jiǎn)單的標(biāo)記語言定義流程讹俊,如:yaml垦沉,簡(jiǎn)單易上手。

? 活躍的用戶群仍劈,很多大公司(如:Netflix,AMAZON )都在使用StackStorm

? 平臺(tái)寡壮,可以給我們提供非常有價(jià)值的參考贩疙。

? 更擅長(zhǎng)自動(dòng)化,故障診斷况既,自動(dòng)修復(fù)等場(chǎng)景

? 相比Remedy復(fù)雜的集群部署配置这溅,ST2的集群配置要簡(jiǎn)單得多

ST2運(yùn)行機(jī)制

ST2運(yùn)行機(jī)制 (官方)

ST2運(yùn)行機(jī)制(簡(jiǎn)單理解)

Sensor接收或者監(jiān)聽外部Events,觸發(fā)Triggers棒仍,映射到Rules悲靴,在Rules中判斷是否滿足Criteria,滿足則運(yùn)行具體的Workflow

實(shí)施過程

對(duì)ST2有了初步了解以后莫其,我們來看下ST2如何應(yīng)用到故障自動(dòng)診斷流程中癞尚。

ST2故障自動(dòng)診斷流程實(shí)現(xiàn)

通過Sensor監(jiān)聽吐到告警系統(tǒng)中的告警,通過不同的Rule將告警分發(fā)到不同的Workflow進(jìn)行處理


告警系統(tǒng)中包含多個(gè)系統(tǒng)(如:ITSM乱陡,CMS浇揩,…)的告警,ST2的Sensor會(huì)定期拉取告警系統(tǒng)中的告警信息憨颠,進(jìn)行初步處理后胳徽,分發(fā)到Rules积锅,每個(gè)Rule會(huì)根據(jù)配置的Criteria,判斷是否符合觸發(fā)該Rule的條件养盗,如果符合則執(zhí)行Rule對(duì)應(yīng)的Workflow缚陷,否則結(jié)束。

ST2故障自動(dòng)診斷流程優(yōu)勢(shì)

ST2故障自動(dòng)診斷流程解決了以往排障遇到的問題往核,告警得到及時(shí)響應(yīng)蹬跃,同時(shí)自動(dòng)化流程解放了人力,大部分誤報(bào)的請(qǐng)求被自動(dòng)處理掉铆铆,對(duì)于無法自動(dòng)處理的告警蝶缀,也可以進(jìn)行初步的分析,將分析結(jié)果以郵件等形式反饋給運(yùn)維人員薄货,節(jié)省人工檢查的時(shí)間翁都。自動(dòng)化流程也避免了人為錯(cuò)誤的引入。

除此之外谅猾,利用ST2實(shí)現(xiàn)自動(dòng)診斷流程也有它自身的優(yōu)勢(shì):

1) ? ?ST2通過統(tǒng)一的Sensor將告警預(yù)處理并分發(fā)到Rules柄慰,不同系統(tǒng)的Rule根據(jù)條件觸發(fā)自動(dòng)診斷流程。不同系統(tǒng)的告警診斷互不干擾税娜,Rules之間坐搔,Workflows之間相對(duì)獨(dú)立,可以很好的支持橫向擴(kuò)展敬矩。

2) ? ?Pack共享概行,減少重復(fù)代碼

3) ? ?自動(dòng)診斷流程可以靈活的定義流程中的Action,方便系統(tǒng)告警的擴(kuò)展

4) ? ?告警處理過程被系統(tǒng)記錄弧岳,有利于后期查找分析

ST2故障自動(dòng)診斷流程實(shí)例

ITSM告警自動(dòng)診斷Workflow

ITSM告警自動(dòng)診斷Workflow實(shí)例

成果和小結(jié)

正確的思路+正確的工具=預(yù)期的結(jié)果凳忙。有了ST2自動(dòng)診斷流程之后,我們將告警的發(fā)出禽炬,記錄涧卵,診斷,報(bào)表各環(huán)節(jié)全部打通腹尖,形成閉環(huán)柳恐,成為一套完整的告警自動(dòng)診斷解決方案。

通過ST2自動(dòng)診斷流程热幔,經(jīng)過告警自動(dòng)診斷乐设,告警結(jié)果回寫到告警系統(tǒng)中,得出的報(bào)表前后對(duì)比數(shù)據(jù)如下:

ST2自動(dòng)診斷前

ST2自動(dòng)診斷后

經(jīng)過對(duì)ST2實(shí)現(xiàn)故障自動(dòng)診斷功能的初步嘗試断凶,ST2初露鋒芒伤提,給我們帶來的收益也顯而易見。

有了這第一階段的實(shí)踐和成果认烁,我們有更多的信心和經(jīng)驗(yàn)來展望下一步:

? ?將更多告警自動(dòng)診斷接入ST2

? ?緊接自動(dòng)診斷肿男,將故障自動(dòng)修復(fù)流程也加入ST2

? ?針對(duì)經(jīng)常發(fā)生的故障做進(jìn)一步的根因分析

原文來自:攜程技術(shù)保障中心

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末介汹,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子舶沛,更是在濱河造成了極大的恐慌嘹承,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件如庭,死亡現(xiàn)場(chǎng)離奇詭異叹卷,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)坪它,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門骤竹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人往毡,你說我怎么就攤上這事蒙揣。” “怎么了开瞭?”我有些...
    開封第一講書人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵懒震,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我嗤详,道長(zhǎng)个扰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任葱色,我火速辦了婚禮递宅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘冬筒。我一直安慰自己恐锣,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開白布舞痰。 她就那樣靜靜地躺著,像睡著了一般诀姚。 火紅的嫁衣襯著肌膚如雪响牛。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,737評(píng)論 1 305
  • 那天赫段,我揣著相機(jī)與錄音呀打,去河邊找鬼。 笑死糯笙,一個(gè)胖子當(dāng)著我的面吹牛贬丛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播给涕,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼豺憔,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼额获!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起恭应,我...
    開封第一講書人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤抄邀,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后昼榛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體境肾,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年胆屿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了奥喻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡非迹,死狀恐怖环鲤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情彻秆,我是刑警寧澤楔绞,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站唇兑,受9級(jí)特大地震影響酒朵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜扎附,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一蔫耽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧留夜,春花似錦匙铡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至嚼摩,卻和暖如春钦讳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背枕面。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工愿卒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人潮秘。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓琼开,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親枕荞。 傳聞我的和親對(duì)象是個(gè)殘疾皇子柜候,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 騰訊游戲一直是騰訊最賺錢的部門改橘,其藍(lán)鯨體系以“獨(dú)特”的方式承載著半個(gè)騰訊滋尉,也承載著國(guó)內(nèi)游戲行業(yè)半數(shù)份額。 藍(lán)鯨是騰...
    zwwsense閱讀 7,218評(píng)論 1 55
  • A. 問答題 1. 簡(jiǎn)述運(yùn)維工作中專業(yè)巡視的內(nèi)容及周期飞主。 答:運(yùn)維工作中專業(yè)巡視的內(nèi)容及周期如下: 1) 專業(yè)巡視...
    tomding閱讀 3,166評(píng)論 0 2
  • 你是真孤獨(dú)狮惜。 袁梅,100頂高帽碌识。
    蝽笙閱讀 498評(píng)論 0 0
  • 今天第一天上課碾篡,從早到晚,6節(jié)課筏餐,嗓子有點(diǎn)疼开泽,但是我很開心。明天繼續(xù)努力魁瞪。加油
    琳子Lynn閱讀 175評(píng)論 0 1