近年來,隨著計算機技術(shù)的飛速發(fā)展法严,以及行業(yè)信息的共享,傳統(tǒng)企業(yè)的運維己不再固步自封葫笼,日新月異的計算技術(shù)發(fā)展推動著企業(yè)云平臺的建設(shè)深啤,云平臺的計算能力為大數(shù)據(jù)分析提供了基礎(chǔ),而云平臺與大數(shù)據(jù)分析又將推動運維人工智能的發(fā)展路星。放眼云溯街、大數(shù)據(jù)、人工智能的運維發(fā)展方向的同時洋丐,作為運維的生命線呈昔,安全生產(chǎn)保障的生命線仍需強調(diào)。作為傳統(tǒng)企業(yè)的安全生產(chǎn)保障友绝,主要以“監(jiān)堤尾、管、控”為核心迁客,其中“監(jiān)”則主要指的是監(jiān)控郭宝。
本文將把筆者在工作過程中積累的監(jiān)控體系建設(shè)知識進行總結(jié),梳理成體系掷漱,思維導(dǎo)圖如下:
監(jiān)控體系分層
概述
傳統(tǒng)企業(yè)的運維經(jīng)過多年的積累粘室,往往己沉淀下來不少監(jiān)控工具,有不同專業(yè)條的工具卜范,如基礎(chǔ)設(shè)施衔统、硬件、軟件海雪、安全等锦爵;也有不同類型的工具,如基于日志喳魏、數(shù)據(jù)庫棉浸、中間件、操作系統(tǒng)刺彩、網(wǎng)絡(luò)報文等迷郑。對于這些工具,我們采用以下方式處理:
建立集中監(jiān)控平臺:在一體化運維體系中创倔,監(jiān)控平臺貫穿所有環(huán)節(jié)嗡害,它起到了生產(chǎn)系統(tǒng)涉及的軟硬件環(huán)境實時運行狀況的“監(jiān)”,監(jiān)控平臺事件驅(qū)動的特性也為一體化運維體系起到神經(jīng)網(wǎng)絡(luò)驅(qū)動的作用畦攘,進而進行了“控”霸妹,另外,監(jiān)控平臺優(yōu)質(zhì)的運維數(shù)據(jù)可以作為運維大數(shù)據(jù)分析的數(shù)據(jù)源知押,實現(xiàn)運維數(shù)據(jù)采集的角色叹螟。為了提高投入效率鹃骂,減少重復(fù)投入,需要建立集中監(jiān)控平臺實現(xiàn)統(tǒng)一展示罢绽、統(tǒng)一管理畏线,支持兩地三中心建設(shè),具備靈活的擴展性良价,支持運維大數(shù)據(jù)分析寝殴。
原有的監(jiān)控工具保留為主:當(dāng)前并沒有哪一個監(jiān)控工具可以覆蓋所有生產(chǎn)系統(tǒng)的運行指標(biāo),己沉淀下來的監(jiān)控工具往往是當(dāng)前生產(chǎn)系統(tǒng)深度定制的工具明垢,具有存在價值蚣常。另外,雖然監(jiān)控平臺從WEB痊银、APP抵蚊、到DB均采用了多中心雙活分布式架構(gòu)部署,但為了保證監(jiān)控覆蓋能力曼验,部份重要的環(huán)節(jié)仍建議不僅限一套監(jiān)控工具泌射。
各專業(yè)條線對各條線的監(jiān)控負責(zé):各專業(yè)條線是最清楚自己需要什么監(jiān)控的團隊,各專業(yè)條線對監(jiān)控覆蓋率負責(zé)鬓照,監(jiān)控平臺的建設(shè)方負責(zé)平臺體系的建設(shè)熔酷,提供基礎(chǔ)技術(shù)支撐。
工具間整合:不同的專業(yè)條線豺裆、不同的分析技術(shù)可以有不同的監(jiān)控工具拒秘,采用這種多點開花的建設(shè)方式更有助于監(jiān)控面與深度的完善,所有的工具最終需要進行標(biāo)準(zhǔn)化的整合臭猜。
基于上面4個處理思路躺酒,為防止監(jiān)控建設(shè)失控,減少重復(fù)建設(shè)蔑歌、明確主要的建設(shè)目標(biāo)羹应,我們需要對監(jiān)控工具進行體系化管理,體系化管理首先要做的就是進行監(jiān)控體系分層次屠。
分層方式
相信每家企業(yè)對于監(jiān)控分層體系都會有各自的劃分方式园匹,以下是以專業(yè)條線方式分層:
基礎(chǔ)設(shè)施層:包括運營商專線、機房(機房內(nèi)的設(shè)施劫灶,比如制冷裸违、安防等)、網(wǎng)絡(luò)設(shè)備本昏,基礎(chǔ)設(shè)施層的監(jiān)控分為狀態(tài)供汛、性能、質(zhì)量、容量怔昨、架構(gòu)雀久、流量分析等幾個層面。
系統(tǒng)服務(wù)器層:包括系統(tǒng)服務(wù)器朱监、存儲等服務(wù)器的可用性狀態(tài)岸啡。
系統(tǒng)及網(wǎng)絡(luò)服務(wù)層:主要是指操作系統(tǒng)原叮、系統(tǒng)軟件赫编、網(wǎng)絡(luò)軟件的使用情況。
應(yīng)用服務(wù)層:主要是針對應(yīng)用服務(wù)可用性奋隶、應(yīng)用營業(yè)狀態(tài)擂送、應(yīng)用性能、應(yīng)用交易量分析幾方面唯欣。
客戶體驗層:包括兩塊嘹吨,一是客戶訪問速度;二是功能是否正常境氢,具體指的是全部蟀拷、局部、個別用戶或終端訪問情況萍聊,不僅包括業(yè)務(wù)系統(tǒng)是否能訪問问芬,訪問的速度是否快,還包括業(yè)務(wù)邏輯的驗證功能是否正常寿桨。
各層職責(zé)
基礎(chǔ)設(shè)施
狀態(tài)監(jiān)控:包括機房供電此衅、空調(diào)、網(wǎng)絡(luò)設(shè)備的軟硬件狀態(tài)亭螟,如設(shè)備狀態(tài)等挡鞍;
性能監(jiān)控:包括設(shè)備的性能情況,比如CPU预烙、內(nèi)存大小墨微、session數(shù)量、端口流量包量扁掸、內(nèi)存溢出監(jiān)控翘县、內(nèi)存使用率等;
網(wǎng)絡(luò)監(jiān)控:包括設(shè)備錯包也糊、丟包率炼蹦,針對網(wǎng)絡(luò)設(shè)備以及網(wǎng)絡(luò)鏈路的探測延時、丟包率監(jiān)控等狸剃;
容量監(jiān)控:包括設(shè)備負載使用率掐隐、專線帶寬使用率、出口流量分布等;
由于基礎(chǔ)設(shè)施硬件往往己有設(shè)備健康性的檢測機制虑省,建議向這類廠商提要求匿刮,將設(shè)備的運行事件主動送到監(jiān)控平臺整合。
服務(wù)器層
存儲:包括存儲設(shè)備探颈,以及設(shè)備上的硬盤讀寫錯誤熟丸、讀寫超時、硬盤掉線伪节、硬盤介質(zhì)錯誤光羞;
服務(wù)器:內(nèi)存(內(nèi)存缺失、內(nèi)存配置錯誤怀大、內(nèi)存不可用纱兑、內(nèi)存校驗)、網(wǎng)卡(網(wǎng)卡速率化借;電源:電源電壓潜慎、電源模塊是否失效)、風(fēng)扇(風(fēng)扇轉(zhuǎn)速等)蓖康、Raid卡(Raid卡電池狀態(tài)铐炫、電池老化、電池和緩存是否在位蒜焊、緩存策略)倒信;
虛擬機:vcenter等
容器:Docker等
存儲、物理設(shè)備山涡、虛擬機等建議參考基礎(chǔ)設(shè)施層由廠商主動匯總事件到監(jiān)控平臺堤结,由于容器方面的監(jiān)控工具并不多,則需根據(jù)實際情況選擇是否借鑒開源的工具進行自研鸭丛。
系統(tǒng)服務(wù)層
系統(tǒng)服務(wù)層的數(shù)據(jù)主要包括操作系統(tǒng)竞穷、中間件、數(shù)據(jù)庫鳞溉,以及其它開源分布式中間件等工具瘾带,這方面包括很多,以操作系統(tǒng)為例熟菲,包括:CPU(CPU整體使用率看政、CPU各核使用率、CPU Load負載)抄罕、內(nèi)存(應(yīng)用內(nèi)存允蚣、整體內(nèi)存、Swap等)呆贿、磁盤IO(讀寫速率嚷兔、IOPS森渐、平均等待延時、平均服務(wù)延時等)冒晰、網(wǎng)絡(luò)IO(流量同衣、包量、錯包壶运、丟包)耐齐、連接(各種狀態(tài)的TCP連接數(shù)等)、進程端口存活蒋情、文件句柄數(shù)埠况、進程數(shù)、內(nèi)網(wǎng)探測延時恕出、丟包率等询枚。
在分析系統(tǒng)服務(wù)層的數(shù)據(jù)消費情況時,可以通過分析系統(tǒng)性能情況浙巫,客觀衡量業(yè)務(wù)負載高低情況,并結(jié)合擴縮容調(diào)度刷后,實現(xiàn)業(yè)務(wù)的負載和成本間的平衡的畴。可以根據(jù)服務(wù)器所在業(yè)務(wù)層級(接入層尝胆、邏輯層還是數(shù)據(jù)層)的不同丧裁,設(shè)置不同的容量參考指標(biāo)、指標(biāo)參考基準(zhǔn)含衔、指標(biāo)計算規(guī)則煎娇、高低負載判別規(guī)則,設(shè)置業(yè)務(wù)模塊(由相同功能的多個服務(wù)器構(gòu)成的業(yè)務(wù)集群)的擴縮容規(guī)則贪染;由系統(tǒng)計算出服務(wù)器缓呛、業(yè)務(wù)模塊的負載情況,決策出是否需要擴容或縮容杭隙,觸發(fā)業(yè)務(wù)模塊的擴縮容操作哟绊。
這一層的工具主要采用引入成熟工具或自研的方式,可選的空間比較大痰憎,只要覆蓋面夠廣票髓、支持靈活的二次定制開發(fā),應(yīng)該問題都不大铣耘,建設(shè)過程中洽沟,我認(rèn)為中間件與數(shù)據(jù)庫兩塊是值得讓DBA、中間件管理員深度挖掘監(jiān)控指標(biāo)覆蓋面蜗细。另外裆操,在互聯(lián)網(wǎng)分布式架構(gòu)的推動下,傳統(tǒng)企業(yè)也逐步使用一些分布式中間件,比如分布式數(shù)據(jù)庫中間件跷车,內(nèi)存數(shù)據(jù)庫棘利、消息隊列等。由于對于這類開源中間件朽缴,傳統(tǒng)企業(yè)在技術(shù)上弱于互聯(lián)網(wǎng)企業(yè)善玫,且監(jiān)控工具并不多,需要重點投入資源進行相關(guān)監(jiān)控指標(biāo)的開發(fā)密强。
應(yīng)用服務(wù)層
服務(wù)可用性監(jiān)控:如服務(wù)茅郎、端口是否存在,是否假死等或渤;
應(yīng)用營業(yè)狀態(tài)監(jiān)控:指應(yīng)用的狀態(tài)是否滿足業(yè)務(wù)開業(yè)狀態(tài)系冗;
應(yīng)用性能:應(yīng)用處理能力,比如交易量薪鹦、成功率掌敬、失敗率、響應(yīng)率池磁、耗時奔害;
應(yīng)用交易:比如交易主動埋點、交易流水地熄、ESB等华临;
應(yīng)用服務(wù)層監(jiān)控可擴展的面與深入的度都有很大空間,以下是部分應(yīng)用監(jiān)控點:
客戶體驗層
比如測速系統(tǒng)以及模擬用戶訪問的方式:
以模擬用戶訪問為例端考,通過模擬用戶訪問業(yè)務(wù)并校驗返回數(shù)據(jù)結(jié)果雅潭,監(jiān)測業(yè)務(wù)是否可用、訪問質(zhì)量及性能却特、邏輯功能正確性的監(jiān)控系統(tǒng)扶供。不僅僅是接入層(網(wǎng)站類業(yè)務(wù)是否能訪問,訪問的速度是否快),業(yè)務(wù)邏輯的驗證就涉及到登錄鑒權(quán)、關(guān)系數(shù)據(jù)自動化獲取等空另。
監(jiān)控整合
監(jiān)控的分層方式促進了每一個專業(yè)層的監(jiān)控覆蓋面與深度,防止建設(shè)失控轰绵,但也帶來一個管理上的副作用,所以需要在事件尼荆、可視化左腔、子系統(tǒng)、數(shù)據(jù)的整合捅儒,以減少管理成本液样。
在監(jiān)控整合上振亮,主要從事件匯總、統(tǒng)一可視化鞭莽、監(jiān)控數(shù)據(jù)匯總?cè)矫孢M行梳理坊秸。
事件匯總
Google SRE解密一書中提過(大體意思如下):監(jiān)控應(yīng)該盡可能簡單地把需要人介入或關(guān)注的信息展示給運維團隊,能通過自動化自愈解決澎怒、分析定位過程則不在一級視圖提供褒搔。當(dāng)前,能實現(xiàn)自愈的企業(yè)還比較少喷面,或還在摸索建設(shè)過程中星瘾,所以我先講講如何讓每天產(chǎn)生上億條流水,觸發(fā)上萬次告警條件(同一告警如未解除會持續(xù)不斷觸發(fā)告警條件)惧辈,來自各種不同工具琳状、不同格式的的告警事件以盡可能簡單的方式展示給一線監(jiān)控團隊。
第一部分監(jiān)控分層中提到盒齿,原有的監(jiān)控工具以保留為主思路念逞,這些工具在運營過程中每天都會產(chǎn)生大量事件,為了實現(xiàn)監(jiān)控集中展示县昂,集中管理肮柜,需要建設(shè)一個事件匯總的模塊實現(xiàn)事件統(tǒng)一匯總,并對不同層面倒彰、不同專業(yè)角度的事件進行收斂,關(guān)聯(lián)分析莱睁,更全面的感知系統(tǒng)運行狀況待讳。
可能上面講得還不夠清楚,舉幾個例子:
Example01:從可視化角度看仰剿,不同的工具有不同的監(jiān)控事件展示界面创淡,多個運維視圖增加了運維技能要求,需要更多的人力去管理生產(chǎn)南吮;
Example02:缺少對各類事件進行匯總與數(shù)據(jù)分析琳彩,無法反映生產(chǎn)系統(tǒng)整體的運行狀況,如能將這些事件數(shù)據(jù)匯總起來部凑,比如物理層的拓撲露乏,則可以直觀地管控應(yīng)用狀況;
Example03:同一個生產(chǎn)問題往往會帶來多個維度的生產(chǎn)運行問題涂邀,比如一臺物理機宕機瘟仿,在這臺物理機上的虛擬機都會出現(xiàn)網(wǎng)絡(luò)、操作系統(tǒng)層面可用性比勉、應(yīng)用可用性劳较、交易級狀況驹止、應(yīng)用性能、客戶體驗的告警观蜗,如果監(jiān)控指標(biāo)足夠豐富往往會有上百條以上臊恋,不能準(zhǔn)確、快速定位問題根源墓捻。
Example04:每天能觸發(fā)閥值的告警很多抖仅,以經(jīng)驗的方式很難讓一線監(jiān)控團隊無時無刻能準(zhǔn)確的定位哪些是高優(yōu)先級的告警,比如磁盤空間到了70%的確需要有人去關(guān)注毙替,評估是否進行數(shù)據(jù)清理岸售、擴容,但這類告警屬于低優(yōu)先級的事件厂画。
從上面4個例子可以看到凸丸,事件匯總模塊需要有幾個基本要求:
事件匯總:匯總不同層次、不同專業(yè)條線袱院、不同類型事件是監(jiān)控集中管理的基礎(chǔ)屎慢。
事件收斂:前面提到同一個故障會觸發(fā)多類指標(biāo)的告警,同一個指標(biāo)在故障未解除前也會重復(fù)產(chǎn)生大量的告警事件忽洛,如果將全部事件都展示出來腻惠,那對于監(jiān)控處理人員將是災(zāi)難性的,所以需要進行事件收斂欲虚。
事件分級:對于不同的事件需要有適當(dāng)層次的事件分級集灌,事件升級的策略。事件分級是將事件當(dāng)前緊急程度進行標(biāo)識顯示复哆,事件升級是對于低級的事件當(dāng)達到一定的程度欣喧,比如處理時間過長,則需要進行升級梯找。
事件分析:事件分析是建立事件的關(guān)聯(lián)關(guān)系唆阿,關(guān)聯(lián)分析可以從縱向和橫向關(guān)系進行分析,縱向是指從底層的基礎(chǔ)設(shè)施锈锤、網(wǎng)絡(luò)驯鳖、服務(wù)器硬件、虛擬機/容器久免、操作系統(tǒng)浅辙、中間件、應(yīng)用域妄壶、應(yīng)用摔握、交易;橫向是指從當(dāng)前的應(yīng)用節(jié)點丁寄、上游服務(wù)器節(jié)點氨淌、下游服務(wù)器節(jié)點的交易關(guān)系泊愧。事件分析是形成故障樹,自愈的基礎(chǔ)盛正。
對于事件分析重點在于關(guān)系模型的建立删咱,互聯(lián)網(wǎng)公司有不少標(biāo)準(zhǔn)化的方案,但我個人認(rèn)為需要開發(fā)團隊介入改造的標(biāo)準(zhǔn)化不可控豪筝,所以另外一方向是針對企業(yè)內(nèi)部特點痰滋,以CMDB、應(yīng)用配置庫為中心续崖,或以節(jié)點型的系統(tǒng)為中心去建立關(guān)系模型敲街,具體介紹見后面第三部分。
高性能:為了實現(xiàn)實時監(jiān)控严望,需要事件匯總模塊具備高性能多艇。
對外提供采集事件數(shù)據(jù)接口:監(jiān)控作為一體化運維體系的一部份,需要對外提供服務(wù)化接口像吻,支持事件數(shù)據(jù)的采集峻黍。
統(tǒng)一可視化
不同監(jiān)控工具有著不同界面,不同的操作方法拨匆,對工具的掌握程度依賴于運維人員的經(jīng)驗姆涩,監(jiān)控管理很難形成標(biāo)準(zhǔn)化,不利于監(jiān)控的集中管理惭每、釋放人力成本骨饿。所以,監(jiān)控事件匯總后台腥,需要有一個統(tǒng)一的可視化样刷,支持統(tǒng)一展示、多類型展示形式览爵、多維用戶視角、支持按需訂閱的特點镇饮。具體包括:
支持事件的統(tǒng)一展示:支持不同角色用戶管理不同的事件蜓竹,包括事件的受理、分派储藐、督辦俱济、升級、解除钙勃、轉(zhuǎn)工單等閉環(huán)操作蛛碌,無需在不同工具上多次操作。
多類型的展現(xiàn)形式:PC電腦的web端辖源,移動手持端蔚携,大屏展示希太,為了支持可視化的快速開發(fā),以及低成本的過渡到移動手持端酝蜒,建議采用H5的技術(shù)選型誊辉。
多維用戶:根據(jù)不同機構(gòu)、不同用戶的關(guān)注點亡脑,比如一線運維主要關(guān)注實時告警堕澄,二線運維主要關(guān)注事件豐富與故障樹等輔助定位,值班經(jīng)理主要關(guān)注當(dāng)天監(jiān)控事件處理情況霉咨,團隊管理者主要關(guān)注團隊內(nèi)監(jiān)控事件與重要業(yè)務(wù)系統(tǒng)運行狀況蛙紫,主管經(jīng)理主要關(guān)注整合的運行情況與人員處理情況,開發(fā)人員需要有協(xié)助處理的視角數(shù)據(jù)等途戒。
支持用戶訂閱展示:針對不同的業(yè)務(wù)運營場景坑傅、不同的用戶進行布局、推送數(shù)據(jù)棺滞、監(jiān)控指標(biāo)的訂閱式展示裁蚁,比如,雙十一或秒殺的運營活動继准,需要關(guān)注幾十個OS的資源情況枉证,各個OS上的交易、性能情況移必,如果每一個指標(biāo)一個窗口室谚,需要看幾十個窗口;如果只看告警信息崔泵,又無法觀察到趨勢秒赤;所以,需要支持多指標(biāo)合并在一個視圖頁面的訂閱功能憎瘸。
數(shù)據(jù)整合標(biāo)準(zhǔn)
關(guān)于數(shù)據(jù)整合入篮,這里不再復(fù)述不同監(jiān)控工具事件數(shù)據(jù)的整合,主要從報文幌甘、日志潮售、數(shù)據(jù)庫流水幾個角度分析:
1)報文解釋
報文解釋標(biāo)準(zhǔn),以天旦BPC為例做個介紹:
市場上有很多APM锅风,大體可以分為主動模擬撥測酥诽、頁面插入代碼監(jiān)測、客戶端插件采集皱埠、服務(wù)端代理收集肮帐、服務(wù)端旁路報文監(jiān)聽。天旦的BPC采用服務(wù)端的網(wǎng)絡(luò)層旁路抓取一份報文边器,通過預(yù)先定義好的解碼策略训枢,解出了一份數(shù)據(jù)格式良好的數(shù)據(jù)源托修。在這份數(shù)據(jù)源之上可以進行監(jiān)控、運維數(shù)據(jù)分析等運維場景的使用肮砾。由于BPC報文解碼配置設(shè)計比較簡單诀黍,支持秒級(預(yù)計17年將有毫秒級的產(chǎn)品出來),且對應(yīng)用服務(wù)性能無影響仗处,用旁路報文解釋的方式作為數(shù)據(jù)輸入標(biāo)準(zhǔn)成為一種值得推薦的方式眯勾。
2)日志結(jié)構(gòu)標(biāo)準(zhǔn)
日志結(jié)構(gòu)標(biāo)準(zhǔn),主要分兩類婆誓,一類是直接建一個日志分析平臺吃环,比如國外的Splunk,或者開源的ELK等洋幻;另一類是重構(gòu)日志標(biāo)準(zhǔn)組件郁轻,比如重構(gòu)Java企業(yè)應(yīng)用中經(jīng)常使用的log4j開源包的標(biāo)準(zhǔn)輸出方法,對日志結(jié)構(gòu)進行整合文留,并通過異步消息的方式將日志發(fā)送給監(jiān)控平臺好唯,再提供可視化的IDE對不同系統(tǒng)的日格式進行進一步整理,將需要的數(shù)據(jù)抽取整合燥翅。
3)數(shù)據(jù)庫流水標(biāo)準(zhǔn)
在監(jiān)控數(shù)據(jù)庫流水中骑篙,也分兩類,一類是建立標(biāo)準(zhǔn)的運維流水表森书,監(jiān)控直接讀取這些流水進行監(jiān)控或分析靶端;另一類參考重構(gòu)log4j的思路,對jdbc的包進行重構(gòu)凛膏,將數(shù)據(jù)庫執(zhí)行語句杨名,以及語句執(zhí)行過程中的開始時間、結(jié)構(gòu)時間猖毫、返回狀態(tài)進行記錄台谍。第一類我們用得比較多,當(dāng)前的交易級的監(jiān)控主要采用這種方式進行吁断,第二類目前仍處于思路階段典唇。
4)其它思路
其實針對日志LOG4J、數(shù)據(jù)庫JDBC這兩種方式從思路看都是從節(jié)點類的模塊進行胯府,往同類擴展,可以針對標(biāo)準(zhǔn)應(yīng)用中間件恨胚、WEB等模塊進行處理骂因;往大的擴展,則比如企業(yè)ESB類的應(yīng)用系統(tǒng)可以作用標(biāo)準(zhǔn)的數(shù)據(jù)整合赃泡。這些節(jié)點類的模塊進行數(shù)據(jù)整合標(biāo)準(zhǔn)往往可以有事半功倍的作用寒波。
監(jiān)控指標(biāo)
如前一部分提到乘盼,監(jiān)控有賴于運維各專業(yè)條線協(xié)同完善,通過將監(jiān)控體系進行分層俄烁、分類绸栅,各專業(yè)條線再去有重點的豐富監(jiān)控指標(biāo)。
指標(biāo)分類
1)基礎(chǔ)設(shè)施層
環(huán)境動力:暖通系統(tǒng)(如空調(diào)页屠、新風(fēng)系統(tǒng)粹胯、機房環(huán)境、漏水等)辰企、電力系統(tǒng)(如配電柜风纠、UPS、ATS等)牢贸、安防系統(tǒng)(如防雷竹观、消防、門禁等)等
網(wǎng)絡(luò)設(shè)備:路由器潜索、二三層網(wǎng)絡(luò)交換機臭增、多層交換機、負載均衡設(shè)備等
安全設(shè)備:防火墻竹习、入侵檢測誊抛、防病毒、加密機等
2)服務(wù)器層
虛擬化:虛擬網(wǎng)絡(luò)資源由驹、虛擬主機芍锚、虛擬存儲資源等
存儲設(shè)備:磁盤陣列、虛擬帶庫蔓榄、物理磁帶庫并炮、SAN、NAS等
服務(wù)器:大中小型機甥郑、X86服務(wù)器
3)系統(tǒng)軟件層
操作系統(tǒng):AIX逃魄、LINUX、WINDOWS等
數(shù)據(jù)庫:ORACLE澜搅、DB2伍俘、SQL SERVER、MYSQL等
中間件:WEBSPHERE勉躺、WEBLOGIC癌瘾、MQ、IHS饵溅、TOMCAT妨退、AD、REDIS等
其它系統(tǒng)軟件:備份軟件
4)應(yīng)用服務(wù)層
服務(wù)可用性:服務(wù)狀態(tài)、日志刷新咬荷、端口監(jiān)聽冠句、網(wǎng)絡(luò)連通性等
應(yīng)用交易:交易整體情況、應(yīng)用性能(重要交易或整個節(jié)點的交易量幸乒、耗時懦底、成功率、響應(yīng)率)罕扎、開業(yè)情況聚唐、批量交易狀態(tài)等
5)客戶體驗層
客戶訪問速度:頁面響應(yīng)時間、撥測登錄壳影、普通頁面渲染時間拱层、重要接口響應(yīng)時間等
具體的監(jiān)控指標(biāo)內(nèi)容與閥值參考的明細不同的行業(yè),不同的系統(tǒng)會有不同的認(rèn)識宴咧,這里不細列根灯。
指標(biāo)權(quán)重與閥值分級
在分解具體指標(biāo)前,需要重點強調(diào)一下監(jiān)控指標(biāo)的指標(biāo)權(quán)重掺栅、閥值分級與上升機制問題烙肺,做監(jiān)控的人知道“監(jiān)”的最重要目標(biāo)是不漏報,為了不漏報在實際實施過程中會出現(xiàn)監(jiān)控告警過多的困難氧卧。如何讓運維人員在不漏處理監(jiān)控事件桃笙,又能快速解決風(fēng)險最高的事件?則需要監(jiān)控的指標(biāo)需要進行指標(biāo)權(quán)重沙绝、閥值分級與上升機制:
1)指標(biāo)權(quán)重
監(jiān)控指標(biāo)的權(quán)重是為了定義此項監(jiān)控指標(biāo)是否為必須配置搏明,比如應(yīng)用軟件服務(wù)、端口監(jiān)聽是一個應(yīng)用可用性的重要指標(biāo)闪檬,權(quán)重定義為一級指標(biāo)星著;對于批量狀態(tài),則由于不少應(yīng)用系統(tǒng)并沒有批量狀態(tài)粗悯,則定義為二級指標(biāo)虚循。通常來說一級指標(biāo)將作為監(jiān)控覆蓋面的底線,通過設(shè)置好權(quán)重样傍,一是為了讓運維人員知道哪些監(jiān)控指標(biāo)必須確保覆蓋横缔,同時加以引入KPI考核;二是為了讓監(jiān)控平臺建設(shè)人員有側(cè)重的優(yōu)化衫哥,實現(xiàn)一級指標(biāo)的自動配置茎刚,無需運維人員手工配置。
2)閥值分級與上升機制
有監(jiān)控指標(biāo)撤逢,就需要針對監(jiān)控指標(biāo)定義閥值斗蒋,監(jiān)控閥值的設(shè)立需要有分級機制捌斧,以分通知、預(yù)警泉沾、告警三級為例:通知需要運維人員關(guān)注,比如“交易系統(tǒng)登錄數(shù)2000妇押,登錄成功率95%跷究,平時登錄數(shù)基線500,登錄成功率96%”敲霍,由于登錄成功率并未明顯下降俊马,可能是由于業(yè)務(wù)作了業(yè)務(wù)推廣,運維人員只需關(guān)注當(dāng)前應(yīng)用運行狀態(tài)再做判斷肩杈;預(yù)警代表監(jiān)控事件需要運維人員處理柴我,但重要性略低,比如“CPU使用率71%扩然,增長趨勢非突增”艘儒,管理員受理到這個預(yù)警可以先設(shè)置為一個維護期,待當(dāng)天找個時間集中處理夫偶;告警則必須馬上處理的事件界睁,比如“交易成功率為10%,平時為90%”這類監(jiān)控事件己反映出交易運行問題兵拢。
對于升級翻斟,是指一個預(yù)警當(dāng)長時間未處理時,需要有一個上升機制说铃,轉(zhuǎn)化為告警访惜,以督辦運維人員完成監(jiān)控事件的處理。
閥值的分級需通過流程管理加以落實腻扇。
指標(biāo)基線
當(dāng)前運行狀況是否正常需要用運行情況與閥值作比較债热,但實際實施過程中會發(fā)現(xiàn)一個固定的閥值會導(dǎo)致不少監(jiān)控誤報,比如業(yè)務(wù)運營大促與非運營活動日、非工作日與工作日咸这、白天與晚上的運行值都會有不小的差異轻专,所以需要建立一個動態(tài)的指標(biāo)基線,當(dāng)前運行值與動態(tài)基線的偏離度大小來判斷是否為監(jiān)控事件舌剂。指標(biāo)基線的建設(shè)過程中有幾個方面需要關(guān)注:
1)基線的自我學(xué)習(xí)
前面己提到指標(biāo)的基線是動態(tài)的,基線動態(tài)就需要對系統(tǒng)運行的情況按一個指定的時間間隔粒度進行學(xué)習(xí)暑椰,理論上運行學(xué)習(xí)的時間越長霍转,基線越準(zhǔn)確(但如果業(yè)務(wù)做了推廣,歷史的基線數(shù)據(jù)則需要降低權(quán)重)一汽。
2)基線指標(biāo)的組合
有些情況判斷一個監(jiān)控指標(biāo)是否是事件避消,需要將多個指標(biāo)放在一起看才能判斷低滩。比如WINDOWS集群下的SQL SERVER進程內(nèi)存長期都占95%以上,如果將內(nèi)存作為基線畫線岩喷,就會是一條高負載的線恕沫,所以可以考慮將CPU、內(nèi)存兩個指標(biāo)合并作為一個基線指標(biāo)纱意。
另外婶溯,還可以用不同時間段與指標(biāo)組合的方式,比如按節(jié)假日與非節(jié)假日偷霉、按星期幾迄委、按白天與晚上設(shè)計不同的基線。
3)性能
基線是由指定時間段的大量歷史數(shù)據(jù)不斷迭加組合类少,間隔的時間越短需要的性能越高叙身,尤其是當(dāng)基線的組合類型豐富的情況下,需要大量的計算資源硫狞,選用一個合理的計算方案就顯得很重要信轿。我們原來采用單庫跑基線,只能做到30分鐘一個點妓忍,目前采用分布式數(shù)據(jù)庫結(jié)合緩存方式設(shè)計性能虏两,未來根據(jù)基線運行的情況再考慮是否選用大數(shù)據(jù)流計算等技術(shù)框架。
4)基線的人工調(diào)整
系統(tǒng)運行過程中難免會因為業(yè)務(wù)運營推廣等導(dǎo)致歷史基線不能反映指標(biāo)是否合理世剖,這時候需要有一個人工調(diào)整基線的入口定罢,運維人員可以重新繪制基線、減少對歷史數(shù)據(jù)的參考權(quán)重等旁瘫。
另外祖凫,人工智能這么火,也提一點通過機器學(xué)習(xí)來實現(xiàn)監(jiān)控基線的思路(思路還不成熟酬凳,僅供參考):
將應(yīng)用運行健康與不健康的樣本數(shù)據(jù)匯總惠况,樣本中不同指標(biāo)的指標(biāo)數(shù)據(jù)作為不同的變量,結(jié)合不同的算法宁仔,通過調(diào)參學(xué)習(xí)后稠屠,得到運行狀態(tài)好壞的基線。這樣翎苫,就可以將基線做一個監(jiān)控運行狀態(tài)的服務(wù)权埠,把實際運行的多個監(jiān)控指標(biāo)數(shù)據(jù)關(guān)給基線服務(wù),基線服務(wù)返回當(dāng)前服務(wù)運行好壞煎谍。
監(jiān)控事件
監(jiān)控事件
監(jiān)控事件反映的是IT基礎(chǔ)設(shè)施攘蔽、中間件、應(yīng)用程序呐粘、業(yè)務(wù)流程等運行過程中發(fā)生的問題满俗。監(jiān)控系統(tǒng)通過采集運行數(shù)據(jù)转捕,通過數(shù)據(jù)判斷規(guī)則生成事件,監(jiān)控事件還涉及事件的處理(比如事件豐富唆垃、收斂等)五芝、事件的關(guān)聯(lián)分析,并驅(qū)動事件的解決辕万。
以下是監(jiān)控事件處理的一般流程圖:
前面提到了事件整合与柑,下面主要講講事件關(guān)聯(lián)、事件應(yīng)急蓄坏、事件分析、智能處理方面的建設(shè)思路丑念。
事件標(biāo)準(zhǔn)
事件數(shù)據(jù)模型
事件數(shù)據(jù)主要包含數(shù)據(jù)頭信息涡戳、靜態(tài)豐富信息、事件現(xiàn)場信息脯倚、知識庫信息渔彰、關(guān)聯(lián)信息。
靜態(tài)豐富信息:包含描述豐富信息推正、拓撲豐富信息恍涂,描述豐富信息主要包含相關(guān)人員描述信息、服務(wù)器描述信息植榕、工單信息等再沧,這塊豐富數(shù)據(jù)可以通過CMDB消費獲取,這部份豐富數(shù)據(jù)有助于事件處理過程中關(guān)聯(lián)分析尊残。
事件現(xiàn)場信息:包含指標(biāo)信息炒瘸、性能信息、系統(tǒng)資源信息等寝衫,這部份信息主要是反映事件的現(xiàn)場數(shù)據(jù)顷扩。
知識庫信息:主要指相似歷史事件及其處理方式等信息,比如“建議如何做慰毅,己自動進行了什么動作”等隘截。關(guān)聯(lián)信息主要包含從屬事件信息、關(guān)聯(lián)影響信息汹胃。
事件分級標(biāo)準(zhǔn)
前面提到了事件分級的問題婶芭,分級是將事件當(dāng)前緊急程度進行標(biāo)識顯示,事件升級是對于低級的事件當(dāng)達到一定的程度统台,比如處理時間過長雕擂,則需要進行升級。我們將監(jiān)控事件等級事件級別分為通知贱勃、預(yù)警井赌、故障三種:
通知:指一般的通知信息類事件谤逼。
預(yù)警:指已經(jīng)出現(xiàn)異常,即將要引起生產(chǎn)故障的事件仇穗。
故障:指已經(jīng)發(fā)生問題流部,并且已經(jīng)影響到生產(chǎn)流程的事件,如果需要進一步細化故障級別纹坐,可以分為一般故障和緊急故障:一般故障不需要緊急處理的故障枝冀,緊急故障需要管理員緊急處理的故障。
事件細分的粒度需根據(jù)各企業(yè)團隊的管理要求而定耘子。
事件關(guān)聯(lián)
事件壓縮及收斂
事件壓縮及收斂就是為了減少事件數(shù)量果漾,提高事件定位能力。
監(jiān)控采集數(shù)據(jù)后谷誓,根據(jù)具體的單指標(biāo)或多指標(biāo)的規(guī)則判斷是否觸發(fā)事件绒障,如觸發(fā)事件,則發(fā)送事件接收器捍歪。為什么不直接通過可視化方式馬上將匹配到的事件信息呈現(xiàn)給監(jiān)控人員呢户辱?那是由于監(jiān)控數(shù)據(jù)采集是實時采集,但事件的解決可能并非馬上解決糙臼,為了減少重復(fù)性的告警數(shù)量庐镐,需要由事件處理引擎進一步壓縮處理。比如每2分鐘采集一次文件系統(tǒng)容器數(shù)據(jù)变逃,當(dāng)某個文件系統(tǒng)容量超過70%后必逆,觸發(fā)了預(yù)警閥值,但這個文件系統(tǒng)是緩慢增長韧献,計劃在當(dāng)周的擴容窗口集中變更末患,如果不對事件進行處理,那每2分鐘就會有一個預(yù)警锤窑,產(chǎn)生預(yù)警泛濫璧针,所以這時需要對事件進行壓縮,比如針對事件來源渊啰、關(guān)鍵字組合等規(guī)則進行壓縮探橱,并記錄事件發(fā)生次數(shù)。
有了事件壓縮還不夠绘证,因為觸發(fā)事件的指標(biāo)往往是相互關(guān)聯(lián)的隧膏,這就需要對多項指標(biāo)關(guān)系進行分析,減少相同問題產(chǎn)生的事件嚷那。比如這個應(yīng)用場景:
NAS監(jiān)控:NAS文件系統(tǒng)在各OS上都會有監(jiān)控胞枕,一個NAS文件系統(tǒng)出問題時,每個服務(wù)器的NAS文件系統(tǒng)監(jiān)控都會報警魏宽。如能對NAS進行掛載關(guān)系梳理腐泻,同一NAS的報警可以大量收斂决乎。
進程、端口派桩、通訊檢測:一個進程宕掉時构诚,該進程啟動的端口、關(guān)聯(lián)系統(tǒng)與該進程端口的通訊等都會同時報警铆惑。如能對進程范嘱、端口、通訊關(guān)系進行梳理员魏,同一個進程引發(fā)的進程丑蛤、端口、通訊監(jiān)控事件也能收斂明顯撕阎。
事件豐富
事件豐富包括事件描述豐富(通過CMDB豐富盏阶、拓撲豐富)、事件現(xiàn)場豐富(指標(biāo)信息豐富闻书、APM信息豐富、系統(tǒng)資源信息豐富)脑慧、知識庫豐富魄眉,提高運維人員分析問題的能力。
事件主要豐富方法如下:
與第三方監(jiān)控系統(tǒng)對接闷袒,獲取事件相關(guān)信息進行豐富坑律。如與CMDB系統(tǒng)對接,獲取服務(wù)器等相關(guān)配置信息進行CMDB數(shù)據(jù)豐富囊骤;
根據(jù)拓撲關(guān)系模型晃择,進行拓撲豐富;
指標(biāo)信息豐富:獲取事件發(fā)生前后一段時間內(nèi)的相關(guān)指標(biāo)信息數(shù)據(jù)(如CPU/內(nèi)存等)也物,進行指標(biāo)信息豐富宫屠;
相關(guān)事件豐富:根據(jù)拓撲關(guān)系模型、應(yīng)用關(guān)系關(guān)聯(lián)模型滑蚯、交易流行關(guān)聯(lián)模型將相近事件時間范圍內(nèi)的事件進行豐富展示浪蹂;
知識庫豐富:建立事件處理方案知識庫,記錄事件處理的方法和流程告材,為事件處理人提供參考依據(jù)坤次,以及為后續(xù)自動化運維提供理論支撐。
下面這個是我們做的一個事件豐富斥赋,主要包括幾塊內(nèi)容:
事件涉及的軟硬件的基本配置信息缰猴、人員信息,這一塊是基本CMDB的數(shù)據(jù)消費疤剑;
事件報警的主體信息滑绒,包括時間闷堡、事件描述、事件可能原因蹬挤、事件處理情況等缚窿;
事件應(yīng)急處理及流程工單鏈接;
事件主體信息的具體指標(biāo)數(shù)據(jù)展示焰扳,以及指標(biāo)變化趨勢倦零;
最近30分鐘的事件情況,以備分析是否受其它事件關(guān)聯(lián)影響吨悍;
該事件所在OS的CPU扫茅、內(nèi)存、IO的信息育瓜;
事件涉及的性能信息葫隙,比如交易量、成功率躏仇、交易耗時恋脚;
事件處理進展。
image.png
事件擴散
事件發(fā)生之后焰手,監(jiān)控系統(tǒng)需要能自動分析事件的關(guān)聯(lián)信息糟描,幫助運維人員盡可能的還原事件現(xiàn)場,提高分析問題的能力书妻,關(guān)聯(lián)信息主要有縱向和橫向的關(guān)系船响,其中縱向的關(guān)聯(lián)是把基礎(chǔ)設(shè)施、網(wǎng)絡(luò)躲履、系統(tǒng)见间、應(yīng)用域、應(yīng)用工猜、交易關(guān)聯(lián)起來米诉,任何一個環(huán)節(jié)出問題,向上計算出波及范圍和受影響系統(tǒng)篷帅;橫向的關(guān)聯(lián)是以交易為中心荒辕,計算上下游的交易節(jié)點。下面分別是兩個關(guān)聯(lián):
縱向關(guān)系:
image.png
橫向關(guān)系:
image.png
事件觸發(fā)
系統(tǒng)在設(shè)置報警策略時犹褒,可針對指標(biāo)進行觸發(fā)條件設(shè)置抵窒,觸發(fā)條件按照類型分為閾值觸發(fā)、基線觸發(fā)叠骑、智能預(yù)測李皇。系統(tǒng)根據(jù)不同的觸發(fā)類型設(shè)置,采用的判斷方式也不一樣。具體明細如下:
閾值觸發(fā)
系統(tǒng)支持指標(biāo)的閾值觸發(fā)設(shè)置掉房,當(dāng)指標(biāo)值達到設(shè)置的閾值時即可進行報警茧跋。
閾值的設(shè)置范圍只能在該指標(biāo)的數(shù)值范圍內(nèi)進行設(shè)置。
閾值在設(shè)置時需要指定數(shù)值單位卓囚,防止數(shù)值因單位不同出現(xiàn)判斷錯誤瘾杭。
在設(shè)置閾值時系統(tǒng)支持實時查看指標(biāo)當(dāng)日折現(xiàn)圖和歷史基線,幫助運維人員正確判斷閾值的設(shè)置范圍哪亿。
基線觸發(fā)
系統(tǒng)支持指標(biāo)的基線觸發(fā)設(shè)置粥烁,當(dāng)指標(biāo)值達到設(shè)置的基線時即可進行報警。
基線設(shè)置可按照昨日基線蝇棉、月基線讨阻、周基線進行設(shè)置。
系統(tǒng)支持在選定的基線基礎(chǔ)上進行上浮或下沉幅度的設(shè)置篡殷。
在設(shè)置基線時系統(tǒng)支持實時查看指標(biāo)當(dāng)日折現(xiàn)圖和歷史基線钝吮,幫助運維人員正確判斷基線的設(shè)置范圍。
系統(tǒng)支持按照平均基線進行設(shè)置板辽。
基線設(shè)置時需要有一定的歷史數(shù)據(jù)作為依據(jù)奇瘦。
智能預(yù)測
智能預(yù)測主要是通過歷史數(shù)據(jù)的分析,通過人工智能算法預(yù)測未來可能出現(xiàn)的問題劲弦,這一塊是未來監(jiān)控事件優(yōu)化的一個方向链患。
事件應(yīng)急
應(yīng)急恢復(fù)
運維最基本的指標(biāo)就是系統(tǒng)可用性,應(yīng)急恢復(fù)的時效性是系統(tǒng)可用性的關(guān)鍵指標(biāo)瓶您。通常來講應(yīng)急恢復(fù)的方法有不少,比如:
服務(wù)整體性能下降或異常纲仍,可以考慮重啟服務(wù)呀袱;
應(yīng)用做過變更,可以考慮是否需要回切變更郑叠;
資源不足夜赵,可以考慮應(yīng)急擴容;
應(yīng)用性能問題乡革,可以考慮調(diào)整應(yīng)用參數(shù)寇僧、日志參數(shù);
數(shù)據(jù)庫繁忙沸版,可以考慮通過數(shù)據(jù)庫快照分析嘁傀,優(yōu)化SQL;
應(yīng)用功能設(shè)計有誤视粮,可以考慮緊急關(guān)閉功能菜單细办;
還有很多……
監(jiān)控系統(tǒng)的事件豐富過程中需要盡可能關(guān)聯(lián)上述的一些應(yīng)急手段,供運維人員快速應(yīng)急蕾殴,比如服務(wù)啟停工具笑撞、切換工具岛啸、程序回切工作等,比如下面這個應(yīng)用服務(wù)啟停工具例子:
image.png
現(xiàn)場保護
故障處理中茴肥,理論上應(yīng)該在應(yīng)急前進行現(xiàn)場保護以備問題原因排查的跟進〖岵龋現(xiàn)場信息主要包含進程內(nèi)部狀態(tài)信息、日志信息瓤狐。實際應(yīng)用過程中可以結(jié)合工具進行現(xiàn)場保護瞬铸,仍以服務(wù)啟停工具為例,支持獲取進程線程鏡像信息芬首、進程內(nèi)存鏡像信息及GC日志信息赴捞。
image.png
問題排查
是否為偶發(fā)性、是否可重現(xiàn)
故障現(xiàn)象是否可以重現(xiàn)郁稍,對于快速解決問題很重要赦政,能重現(xiàn)說明總會有辦法或工具幫助我們定位到問題原因,而且能重現(xiàn)的故障往往可能是服務(wù)異常耀怜、變更等工作導(dǎo)致的問題恢着。
但,如果故障是偶發(fā)性的财破,是有極小概率出現(xiàn)的掰派,則比較難排查,這依賴于系統(tǒng)是否有足夠的故障期間的現(xiàn)場信息來決定是否可以定位到總是原因左痢。
是否進行過相關(guān)變更
大部份故障是由于變更導(dǎo)致靡羡,確定故障現(xiàn)象后,如果有應(yīng)的變更俊性,有助于從變更角度出現(xiàn)分析是否是變更引起略步,進而快速定位故障并準(zhǔn)備好回切等應(yīng)急方案。
是否可縮小范圍
一方面應(yīng)用系統(tǒng)提倡解耦定页,一支交易會流經(jīng)不同的應(yīng)用系統(tǒng)及模塊趟薄;另一方面,故障可能由于應(yīng)用典徊、系統(tǒng)軟件杭煎、硬件、網(wǎng)絡(luò)等環(huán)節(jié)的問題卒落。在排查故障原因時應(yīng)該避免全面性的排查羡铲,建議先把問題范圍縮小到一定程序后再開始協(xié)調(diào)關(guān)聯(lián)團隊排查。
關(guān)聯(lián)方配合分析問題
與第3小點結(jié)合避免各關(guān)聯(lián)團隊同時無頭緒的排查的同時儡毕,對于牽頭方在縮小范圍后需要開放的態(tài)度去請求關(guān)聯(lián)方配合定位犀勒,而對于關(guān)聯(lián)方則需要有積極配合的工作態(tài)度。
是否有足夠的日志
定位故障原因,最常用的方法就是分析應(yīng)用日志贾费,對運維人員不僅需要知道業(yè)務(wù)功能對應(yīng)哪個服務(wù)進程钦购,還要知道這個服務(wù)進程對應(yīng)的哪些應(yīng)用日志,并具備一些簡單的應(yīng)用日志異常錯誤的判斷能力褂萧。
是否有core或dump等文件
故障期間的系統(tǒng)現(xiàn)場很重要押桃,這個在故障應(yīng)急前建議在有條件的情況下留下系統(tǒng)現(xiàn)場的文件,比如COREDUMP导犹,或TRACE采集信息等唱凯,備份好一些可能被覆蓋的日志等。
應(yīng)急文檔
故障的表現(xiàn)雖然形式很多谎痢,但實際的故障處理過程中磕昼,應(yīng)急措施往往重復(fù)使用幾個常用的步驟,所以應(yīng)急文檔首先要針對這些常用的場景节猿,過于追求影響應(yīng)用系統(tǒng)方方面面的內(nèi)容票从,會導(dǎo)致這個方案可讀性變差,最終變更一個應(yīng)付檢查的文檔滨嘱。以下是我覺得應(yīng)用系統(tǒng)應(yīng)急方案應(yīng)該有的內(nèi)容:
系統(tǒng)級
能知道當(dāng)前應(yīng)用系統(tǒng)在整個交易中的角色峰鄙,當(dāng)前系統(tǒng)出現(xiàn)問題或上下游出現(xiàn)問題時,可以知道如何配合上下游分析問題太雨,比如:上下游系統(tǒng)如何通訊吟榴,通訊是否有唯一的關(guān)鍵字等。另外囊扳,系統(tǒng)級里還涉及一些基本應(yīng)急操作吩翻,比如擴容、系統(tǒng)及網(wǎng)絡(luò)參數(shù)調(diào)整等锥咸。
服務(wù)級
能知道這個服務(wù)影響什么業(yè)務(wù)狭瞎,服務(wù)涉及的日志、程序她君、配置文件在哪里,如何檢查服務(wù)是否正常葫哗,如何重啟服務(wù)缔刹,如何調(diào)整應(yīng)用級參數(shù)等。
交易級
能知道如何查到某支或某類交易出現(xiàn)了問題劣针,是大面積校镐、局部,還是偶發(fā)性問題捺典,能用數(shù)據(jù)說明交易影響的情況鸟廓,能定位到交易報錯的信息。這里最常用的方法就是數(shù)據(jù)庫查詢或工具的使用。知道最重要的交易如何檢查是否正常引谜,重要的定時任務(wù)的應(yīng)急處理方案牍陌,比如開業(yè)、換日员咽、對賬的時間要求及應(yīng)急措施毒涧。
溝通方案
溝通方案涉及通訊錄,包括上下游系統(tǒng)贝室、第三方單位契讲、業(yè)務(wù)部門等渠道。
另外滑频,有了應(yīng)急方案捡偏,如何讓運維人員持續(xù)去更新是難點。我認(rèn)為要解決這個難點峡迷,需要先讓運維人員經(jīng)常使用這個手冊银伟。如果一個手冊沒有場景可以用,那就需要管理者為運維人員創(chuàng)造機會去使用這個手冊凉当,比如應(yīng)急演練枣申。
持續(xù)優(yōu)化
整體思路
監(jiān)控系統(tǒng)建設(shè)目標(biāo)是完善“監(jiān)”能力,增加“控”的能力看杭,這章提到的持續(xù)優(yōu)化主要是針對“監(jiān)”能力的落實忠藤,歸納起來就是“不漏報堤瘤,少誤報”修壕,可以針對不同的階段量化目標(biāo)史煎,比如60%告警即故障盒音,80%故障來自監(jiān)控顿仇。
措施
目標(biāo)分解
不漏報
漏報可以從兩個層面看秤茅,一個是監(jiān)控工具不具備某一方面的監(jiān)控能力璧亚;一個是監(jiān)控工具具備監(jiān)控能力砰识,但因為使用者使用問題導(dǎo)致未覆蓋監(jiān)控谴供。前者需要完善監(jiān)控能力块茁,比如針對生產(chǎn)故障舉一反三式的優(yōu)化,或由不同專業(yè)條線主動增加監(jiān)控能力桂肌,后者則需要考慮幾個問題:
管理上有沒有要求指標(biāo)的100%覆蓋率数焊;
覆蓋率的要求是否確實可以落地,或功能上是否設(shè)計極不友好崎场;
100%的覆蓋率是否從技術(shù)默認(rèn)設(shè)置佩耳,如果技術(shù)無法默認(rèn)設(shè)置,能否從技術(shù)上主動發(fā)現(xiàn)谭跨;
前面兩個問題需要從管理手段上解決干厚,最后一個問題需要在監(jiān)控系統(tǒng)中解決李滴,即盡可能讓需要覆蓋的監(jiān)控指標(biāo)從技術(shù)上落地,減少對運維人員主動性上的依靠蛮瞄,同時監(jiān)控系統(tǒng)要快速從技術(shù)上響應(yīng)新的監(jiān)控指標(biāo)的落地所坯。
減少誤報
誤報帶來的問題也很大,大量裕坊、反復(fù)的誤報告警會讓運維人員麻木包竹,進而忽視監(jiān)控報警,錯過了真正的監(jiān)控事件的處理籍凝,所以監(jiān)控誤報情況也需要重視周瞎。
心得
以下是在監(jiān)控優(yōu)化上的一些措施心得供參考:
第一階段:減少監(jiān)控報警數(shù)量
目標(biāo):每周報警總量上下降60%
主要工作:
抓突出的報警指標(biāo),調(diào)整閥值饵蒂,比如CPU声诸、內(nèi)存、空間退盯、應(yīng)用性能這幾塊大頭彼乌,如果閥值不合理將帶來大量告警,對這幾類指標(biāo)閥值做優(yōu)化會有事半功倍的效果渊迁;
抓每個指標(biāo)突出的組慰照、系統(tǒng)進行針對性整改,可能就是某個團隊或某些管理員不重視監(jiān)控琉朽,解決刺頭的成效也很明顯毒租;
針對重復(fù)性的告警,優(yōu)化監(jiān)控系統(tǒng)箱叁,減少重復(fù)報警墅垮。
第二階段:減少監(jiān)控誤報率
目標(biāo):60%告警即故障(排除磁盤、表空間類)
主要工作:
區(qū)分監(jiān)控級別耕漱,告警即故障:分析確認(rèn)哪類監(jiān)控報警必須作為事件處理算色,并將交易量監(jiān)控設(shè)置為告警,非故障調(diào)整為預(yù)警螟够;
所有預(yù)警即關(guān)聯(lián)工單灾梦,對預(yù)警工單閥值進行分析調(diào)整;
優(yōu)化監(jiān)控短信內(nèi)容妓笙,提高短信對事件定位若河;
完成動態(tài)基線的監(jiān)控功能上線功能,提高監(jiān)控準(zhǔn)確率给郊;
完成應(yīng)用部署與監(jiān)控維護期關(guān)聯(lián)牡肉,減少未設(shè)置維護期導(dǎo)致的監(jiān)控報警捧灰;
完成應(yīng)用啟停集中處理淆九,減少應(yīng)用啟停帶來的維護期報警统锤。
第三階段:提高監(jiān)控對故障的覆蓋率
目標(biāo):80%故障來自監(jiān)控
主要工作:
每周分析生產(chǎn)事件的發(fā)現(xiàn)環(huán)節(jié),對于非監(jiān)控發(fā)現(xiàn)的故障進行專項分析炭庙;
其它方案(針對第一饲窿、二階段實施情況完善)
第四階段:提高監(jiān)控事件處理效率
目標(biāo):監(jiān)控告警1小時內(nèi)關(guān)閉
主要工作:
對監(jiān)控報警耗時進行分析,并通報
針對無法快速恢復(fù)的監(jiān)控報警優(yōu)化功能處理
其它方案(待定)
團隊
因為有持續(xù)優(yōu)化的工作焕蹄,所以最好能夠有一個橫向的監(jiān)控優(yōu)化團隊逾雄,區(qū)分于監(jiān)控系統(tǒng)工具建設(shè)團隊,作為監(jiān)控的使用角色腻脏,這個團隊有幾個目標(biāo):
將持續(xù)優(yōu)化的工作進行落地鸦泳;
作好數(shù)據(jù)分析,比如監(jiān)控的事件量是否突增永品,某些系統(tǒng)的事件是否陡增做鹰,誤報量是否過多,故障哪些不是通過監(jiān)控發(fā)現(xiàn)鼎姐,未通過監(jiān)控發(fā)現(xiàn)的故障是否完成監(jiān)控覆蓋面整改钾麸,監(jiān)控功能有哪些不友好等等。