本文轉(zhuǎn)自運維之路(id:HuashengPeng001)訂閱號
近年來,隨著計算機技術(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é)娩贷,梳理成體系,思維導圖如下:
監(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)控工具保留為主:當前并沒有哪一個監(jiān)控工具可以覆蓋所有生產(chǎn)系統(tǒng)的運行指標,己沉淀下來的監(jiān)控工具往往是當前生產(chǎn)系統(tǒng)深度定制的工具线脚,具有存在價值赐稽。另外,雖然監(jiān)控平臺從WEB浑侥、APP又憨、到DB均采用了多中心雙活分布式架構(gòu)部署,但為了保證監(jiān)控覆蓋能力锭吨,部份重要的環(huán)節(jié)仍建議不僅限一套監(jiān)控工具蠢莺。
- 各專業(yè)條線對各條線的監(jiān)控負責:各專業(yè)條線是最清楚自己需要什么監(jiān)控的團隊,各專業(yè)條線對監(jiān)控覆蓋率負責零如,監(jiān)控平臺的建設(shè)方負責平臺體系的建設(shè)躏将,提供基礎(chǔ)技術(shù)支撐锄弱。
- 工具間整合:不同的專業(yè)條線、不同的分析技術(shù)可以有不同的監(jiān)控工具祸憋,采用這種多點開花的建設(shè)方式更有助于監(jiān)控面與深度的完善会宪,所有的工具最終需要進行標準化的整合。
基于上面4個處理思路蚯窥,為防止監(jiān)控建設(shè)失控掸鹅,減少重復(fù)建設(shè)、明確主要的建設(shè)目標拦赠,我們需要對監(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ù)邏輯的驗證功能是否正常。
各層職責
基礎(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)卡速率抢韭;電源:電源電壓、電源模塊是否失效)恍箭、風扇(風扇轉(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è)置不同的容量參考指標撞羽、指標參考基準、指標計算規(guī)則衫冻、高低負載判別規(guī)則诀紊,設(shè)置業(yè)務(wù)模塊(由相同功能的多個服務(wù)器構(gòu)成的業(yè)務(wù)集群)的擴縮容規(guī)則;由系統(tǒng)計算出服務(wù)器隅俘、業(yè)務(wù)模塊的負載情況邻奠,決策出是否需要擴容或縮容,觸發(fā)業(yè)務(wù)模塊的擴縮容操作为居。
這一層的工具主要采用引入成熟工具或自研的方式碌宴,可選的空間比較大,只要覆蓋面夠廣蒙畴、支持靈活的二次定制開發(fā)贰镣,應(yīng)該問題都不大,建設(shè)過程中膳凝,我認為中間件與數(shù)據(jù)庫兩塊是值得讓DBA碑隆、中間件管理員深度挖掘監(jiān)控指標覆蓋面。
另外鸠项,在互聯(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)控指標的開發(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)注的信息展示給運維團隊桩皿,能通過自動化自愈解決豌汇、分析定位過程則不在一級視圖提供。當前泄隔,能實現(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)控指標足夠豐富往往會有上百條以上耕陷,不能準確、快速定位問題根源夭咬。
Example04:每天能觸發(fā)閥值的告警很多啃炸,以經(jīng)驗的方式很難讓一線監(jiān)控團隊無時無刻能準確的定位哪些是高優(yōu)先級的告警铆隘,比如磁盤空間到了70%的確需要有人去關(guān)注卓舵,評估是否進行數(shù)據(jù)清理、擴容膀钠,但這類告警屬于低優(yōu)先級的事件掏湾。
從上面4個例子可以看到,事件匯總模塊需要有幾個基本要求:
- 事件匯總:匯總不同層次肿嘲、不同專業(yè)條線融击、不同類型事件是監(jiān)控集中管理的基礎(chǔ)。
- 事件收斂:前面提到同一個故障會觸發(fā)多類指標的告警雳窟,同一個指標在故障未解除前也會重復(fù)產(chǎn)生大量的告警事件尊浪,如果將全部事件都展示出來匣屡,那對于監(jiān)控處理人員將是災(zāi)難性的,所以需要進行事件收斂拇涤。
- 事件分級:對于不同的事件需要有適當層次的事件分級捣作,事件升級的策略。事件分級是將事件當前緊急程度進行標識顯示鹅士,事件升級是對于低級的事件當達到一定的程度券躁,比如處理時間過長,則需要進行升級掉盅。
- 事件分析:事件分析是建立事件的關(guān)聯(lián)關(guān)系也拜,關(guān)聯(lián)分析可以從縱向和橫向關(guān)系進行分析,縱向是指從底層的基礎(chǔ)設(shè)施趾痘、網(wǎng)絡(luò)慢哈、服務(wù)器硬件、虛擬機/容器永票、操作系統(tǒng)岸军、中間件、應(yīng)用域瓦侮、應(yīng)用艰赞、交易;橫向是指從當前的應(yīng)用節(jié)點肚吏、上游服務(wù)器節(jié)點方妖、下游服務(wù)器節(jié)點的交易關(guān)系。事件分析是形成故障樹罚攀,自愈的基礎(chǔ)党觅。
對于事件分析重點在于關(guān)系模型的建立,互聯(lián)網(wǎng)公司有不少標準化的方案斋泄,但我個人認為需要開發(fā)團隊介入改造的標準化不可控杯瞻,所以另外一方向是針對企業(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)控管理很難形成標準化,不利于監(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)注當天監(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)控指標的訂閱式展示,比如县匠,雙十一或秒殺的運營活動风科,需要關(guān)注幾十個OS的資源情況撒轮,各個OS上的交易、性能情況贼穆,如果每一個指標一個窗口题山,需要看幾十個窗口;如果只看告警信息故痊,又無法觀察到趨勢顶瞳;所以,需要支持多指標合并在一個視圖頁面的訂閱功能愕秫。
數(shù)據(jù)整合標準
關(guān)于數(shù)據(jù)整合慨菱,這里不再復(fù)述不同監(jiān)控工具事件數(shù)據(jù)的整合,主要從報文戴甩、日志符喝、數(shù)據(jù)庫流水幾個角度分析:
1)報文解釋
報文解釋標準,以天旦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ù)輸入標準成為一種值得推薦的方式。
2)日志結(jié)構(gòu)標準
日志結(jié)構(gòu)標準闷营,主要分兩類烤黍,一類是直接建一個日志分析平臺,比如國外的Splunk傻盟,或者開源的ELK等速蕊;另一類是重構(gòu)日志標準組件,比如重構(gòu)Java企業(yè)應(yīng)用中經(jīng)常使用的log4j開源包的標準輸出方法娘赴,對日志結(jié)構(gòu)進行整合规哲,并通過異步消息的方式將日志發(fā)送給監(jiān)控平臺,再提供可視化的IDE對不同系統(tǒng)的日格式進行進一步整理诽表,將需要的數(shù)據(jù)抽取整合唉锌。
3)數(shù)據(jù)庫流水標準
在監(jiān)控數(shù)據(jù)庫流水中隅肥,也分兩類,一類是建立標準的運維流水表袄简,監(jiān)控直接讀取這些流水進行監(jiān)控或分析腥放;另一類參考重構(gòu)log4j的思路,對jdbc的包進行重構(gòu)绿语,將數(shù)據(jù)庫執(zhí)行語句秃症,以及語句執(zhí)行過程中的開始時間、結(jié)構(gòu)時間吕粹、返回狀態(tài)進行記錄种柑。第一類我們用得比較多,當前的交易級的監(jiān)控主要采用這種方式進行昂芜,第二類目前仍處于思路階段莹规。
4)其它思路
其實針對日志LOG4J、數(shù)據(jù)庫JDBC這兩種方式從思路看都是從節(jié)點類的模塊進行泌神,往同類擴展良漱,可以針對標準應(yīng)用中間件、WEB等模塊進行處理欢际;往大的擴展母市,則比如企業(yè)ESB類的應(yīng)用系統(tǒng)可以作用標準的數(shù)據(jù)整合。這些節(jié)點類的模塊進行數(shù)據(jù)整合標準往往可以有事半功倍的作用损趋。
監(jiān)控指標
如前一部分提到患久,監(jiān)控有賴于運維各專業(yè)條線協(xié)同完善,通過將監(jiān)控體系進行分層浑槽、分類蒋失,各專業(yè)條線再去有重點的豐富監(jiān)控指標。
指標分類
1)基礎(chǔ)設(shè)施層
環(huán)境動力:暖通系統(tǒng)(如空調(diào)桐玻、新風系統(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)控指標內(nèi)容與閥值參考的明細不同的行業(yè),不同的系統(tǒng)會有不同的認識劈猿,這里不細列拙吉。
指標權(quán)重與閥值分級
在分解具體指標前潮孽,需要重點強調(diào)一下監(jiān)控指標的指標權(quán)重揪荣、閥值分級與上升機制問題,做監(jiān)控的人知道“監(jiān)”的最重要目標是不漏報往史,為了不漏報在實際實施過程中會出現(xiàn)監(jiān)控告警過多的困難仗颈。如何讓運維人員在不漏處理監(jiān)控事件,又能快速解決風險最高的事件椎例?則需要監(jiān)控的指標需要進行指標權(quán)重挨决、閥值分級與上升機制:
1)指標權(quán)重
監(jiān)控指標的權(quán)重是為了定義此項監(jiān)控指標是否為必須配置,比如應(yīng)用軟件服務(wù)订歪、端口監(jiān)聽是一個應(yīng)用可用性的重要指標脖祈,權(quán)重定義為一級指標;對于批量狀態(tài)刷晋,則由于不少應(yīng)用系統(tǒng)并沒有批量狀態(tài)盖高,則定義為二級指標。通常來說一級指標將作為監(jiān)控覆蓋面的底線眼虱,通過設(shè)置好權(quán)重喻奥,一是為了讓運維人員知道哪些監(jiān)控指標必須確保覆蓋,同時加以引入KPI考核捏悬;二是為了讓監(jiān)控平臺建設(shè)人員有側(cè)重的優(yōu)化撞蚕,實現(xiàn)一級指標的自動配置,無需運維人員手工配置过牙。
2)閥值分級與上升機制
有監(jiān)控指標甥厦,就需要針對監(jiān)控指標定義閥值,監(jiān)控閥值的設(shè)立需要有分級機制寇钉,以分通知刀疙、預(yù)警、告警三級為例:通知需要運維人員關(guān)注摧莽,比如“交易系統(tǒng)登錄數(shù)2000庙洼,登錄成功率95%,平時登錄數(shù)基線500,登錄成功率96%”油够,由于登錄成功率并未明顯下降蚁袭,可能是由于業(yè)務(wù)作了業(yè)務(wù)推廣,運維人員只需關(guān)注當前應(yīng)用運行狀態(tài)再做判斷石咬;預(yù)警代表監(jiān)控事件需要運維人員處理揩悄,但重要性略低,比如“CPU使用率71%鬼悠,增長趨勢非突增”删性,管理員受理到這個預(yù)警可以先設(shè)置為一個維護期,待當天找個時間集中處理焕窝;告警則必須馬上處理的事件蹬挺,比如“交易成功率為10%,平時為90%”這類監(jiān)控事件己反映出交易運行問題它掂。
對于升級巴帮,是指一個預(yù)警當長時間未處理時,需要有一個上升機制虐秋,轉(zhuǎn)化為告警榕茧,以督辦運維人員完成監(jiān)控事件的處理。
閥值的分級需通過流程管理加以落實客给。
指標基線
當前運行狀況是否正常需要用運行情況與閥值作比較用押,但實際實施過程中會發(fā)現(xiàn)一個固定的閥值會導致不少監(jiān)控誤報,比如業(yè)務(wù)運營大促與非運營活動日靶剑、非工作日與工作日蜻拨、白天與晚上的運行值都會有不小的差異,所以需要建立一個動態(tài)的指標基線抬虽,當前運行值與動態(tài)基線的偏離度大小來判斷是否為監(jiān)控事件官觅。指標基線的建設(shè)過程中有幾個方面需要關(guān)注:
1)基線的自我學習
前面己提到指標的基線是動態(tài)的,基線動態(tài)就需要對系統(tǒng)運行的情況按一個指定的時間間隔粒度進行學習阐污,理論上運行學習的時間越長休涤,基線越準確(但如果業(yè)務(wù)做了推廣,歷史的基線數(shù)據(jù)則需要降低權(quán)重)笛辟。
2)基線指標的組合
有些情況判斷一個監(jiān)控指標是否是事件功氨,需要將多個指標放在一起看才能判斷。比如WINDOWS集群下的SQL SERVER進程內(nèi)存長期都占95%以上手幢,如果將內(nèi)存作為基線畫線捷凄,就會是一條高負載的線,所以可以考慮將CPU围来、內(nèi)存兩個指標合并作為一個基線指標跺涤。
另外匈睁,還可以用不同時間段與指標組合的方式,比如按節(jié)假日與非節(jié)假日桶错、按星期幾航唆、按白天與晚上設(shè)計不同的基線。
3)性能
基線是由指定時間段的大量歷史數(shù)據(jù)不斷迭加組合院刁,間隔的時間越短需要的性能越高糯钙,尤其是當基線的組合類型豐富的情況下,需要大量的計算資源退腥,選用一個合理的計算方案就顯得很重要任岸。我們原來采用單庫跑基線,只能做到30分鐘一個點狡刘,目前采用分布式數(shù)據(jù)庫結(jié)合緩存方式設(shè)計性能享潜,未來根據(jù)基線運行的情況再考慮是否選用大數(shù)據(jù)流計算等技術(shù)框架。
4)基線的人工調(diào)整
系統(tǒng)運行過程中難免會因為業(yè)務(wù)運營推廣等導致歷史基線不能反映指標是否合理颓帝,這時候需要有一個人工調(diào)整基線的入口米碰,運維人員可以重新繪制基線、減少對歷史數(shù)據(jù)的參考權(quán)重等购城。
另外,人工智能這么火虐译,也提一點通過機器學習來實現(xiàn)監(jiān)控基線的思路(思路還不成熟瘪板,僅供參考):
將應(yīng)用運行健康與不健康的樣本數(shù)據(jù)匯總,樣本中不同指標的指標數(shù)據(jù)作為不同的變量漆诽,結(jié)合不同的算法侮攀,通過調(diào)參學習后,得到運行狀態(tài)好壞的基線厢拭。這樣兰英,就可以將基線做一個監(jiān)控運行狀態(tài)的服務(wù),把實際運行的多個監(jiān)控指標數(shù)據(jù)關(guān)給基線服務(wù)供鸠,基線服務(wù)返回當前服務(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è)思路澈侠。
事件標準
事件數(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)場信息:包含指標信息、性能信息交掏、系統(tǒng)資源信息等僧免,這部份信息主要是反映事件的現(xiàn)場數(shù)據(jù)。
知識庫信息:主要指相似歷史事件及其處理方式等信息,比如“建議如何做,己自動進行了什么動作”等。關(guān)聯(lián)信息主要包含從屬事件信息相满、關(guān)聯(lián)影響信息。
事件分級標準
前面提到了事件分級的問題桦卒,分級是將事件當前緊急程度進行標識顯示立美,事件升級是對于低級的事件當達到一定的程度,比如處理時間過長方灾,則需要進行升級建蹄。我們將監(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ù)具體的單指標或多指標的規(guī)則判斷是否觸發(fā)事件个从,如觸發(fā)事件脉幢,則發(fā)送事件接收器。為什么不直接通過可視化方式馬上將匹配到的事件信息呈現(xiàn)給監(jiān)控人員呢嗦锐?那是由于監(jiān)控數(shù)據(jù)采集是實時采集嫌松,但事件的解決可能并非馬上解決,為了減少重復(fù)性的告警數(shù)量奕污,需要由事件處理引擎進一步壓縮處理萎羔。比如每2分鐘采集一次文件系統(tǒng)容器數(shù)據(jù),當某個文件系統(tǒng)容量超過70%后碳默,觸發(fā)了預(yù)警閥值贾陷,但這個文件系統(tǒng)是緩慢增長,計劃在當周的擴容窗口集中變更嘱根,如果不對事件進行處理髓废,那每2分鐘就會有一個預(yù)警,產(chǎn)生預(yù)警泛濫儿子,所以這時需要對事件進行壓縮瓦哎,比如針對事件來源、關(guān)鍵字組合等規(guī)則進行壓縮柔逼,并記錄事件發(fā)生次數(shù)。
有了事件壓縮還不夠割岛,因為觸發(fā)事件的指標往往是相互關(guān)聯(lián)的愉适,這就需要對多項指標關(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)場豐富(指標信息豐富歹垫、APM信息豐富剥汤、系統(tǒng)資源信息豐富)、知識庫豐富县钥,提高運維人員分析問題的能力秀姐。
事件主要豐富方法如下:
- 與第三方監(jiān)控系統(tǒng)對接,獲取事件相關(guān)信息進行豐富若贮。如與CMDB系統(tǒng)對接省有,獲取服務(wù)器等相關(guān)配置信息進行CMDB數(shù)據(jù)豐富;
- 根據(jù)拓撲關(guān)系模型谴麦,進行拓撲豐富蠢沿;
- 指標信息豐富:獲取事件發(fā)生前后一段時間內(nèi)的相關(guān)指標信息數(shù)據(jù)(如CPU/內(nèi)存等),進行指標信息豐富匾效;
- 相關(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)急處理及流程工單鏈接;
- 事件主體信息的具體指標數(shù)據(jù)展示摩骨,以及指標變化趨勢通贞;
- 最近30分鐘的事件情況朗若,以備分析是否受其它事件關(guān)聯(lián)影響;
- 該事件所在OS的CPU昌罩、內(nèi)存哭懈、IO的信息;
- 事件涉及的性能信息茎用,比如交易量遣总、成功率、交易耗時轨功;
- 事件處理進展旭斥。
事件擴散
事件發(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)系:
橫向關(guān)系:
事件觸發(fā)
系統(tǒng)在設(shè)置報警策略時,可針對指標進行觸發(fā)條件設(shè)置泥耀,觸發(fā)條件按照類型分為閾值觸發(fā)析砸、基線觸發(fā)、智能預(yù)測爆袍。系統(tǒng)根據(jù)不同的觸發(fā)類型設(shè)置,采用的判斷方式也不一樣作郭。具體明細如下:
閾值觸發(fā)
系統(tǒng)支持指標的閾值觸發(fā)設(shè)置陨囊,當指標值達到設(shè)置的閾值時即可進行報警。
- 閾值的設(shè)置范圍只能在該指標的數(shù)值范圍內(nèi)進行設(shè)置夹攒。
- 閾值在設(shè)置時需要指定數(shù)值單位蜘醋,防止數(shù)值因單位不同出現(xiàn)判斷錯誤。
- 在設(shè)置閾值時系統(tǒng)支持實時查看指標當日折現(xiàn)圖和歷史基線咏尝,幫助運維人員正確判斷閾值的設(shè)置范圍压语。
基線觸發(fā)
系統(tǒng)支持指標的基線觸發(fā)設(shè)置啸罢,當指標值達到設(shè)置的基線時即可進行報警。
- 基線設(shè)置可按照昨日基線胎食、月基線扰才、周基線進行設(shè)置。
- 系統(tǒng)支持在選定的基線基礎(chǔ)上進行上浮或下沉幅度的設(shè)置厕怜。
- 在設(shè)置基線時系統(tǒ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ù)
運維最基本的指標就是系統(tǒng)可用性,應(yīng)急恢復(fù)的時效性是系統(tǒng)可用性的關(guān)鍵指標缀程。通常來講應(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ù)啟停工具例子:
現(xiàn)場保護
故障處理中婚陪,理論上應(yīng)該在應(yīng)急前進行現(xiàn)場保護以備問題原因排查的跟進∽逦郑現(xiàn)場信息主要包含進程內(nèi)部狀態(tài)信息、日志信息。實際應(yīng)用過程中可以結(jié)合工具進行現(xiàn)場保護脆淹,仍以服務(wù)啟停工具為例常空,支持獲取進程線程鏡像信息、進程內(nèi)存鏡像信息及GC日志信息盖溺。
問題排查
是否為偶發(fā)性漓糙、是否可重現(xiàn)
故障現(xiàn)象是否可以重現(xiàn),對于快速解決問題很重要咐柜,能重現(xiàn)說明總會有辦法或工具幫助我們定位到問題原因兼蜈,而且能重現(xiàn)的故障往往可能是服務(wù)異常、變更等工作導致的問題拙友。
但为狸,如果故障是偶發(fā)性的,是有極小概率出現(xiàn)的遗契,則比較難排查辐棒,這依賴于系統(tǒng)是否有足夠的故障期間的現(xiàn)場信息來決定是否可以定位到總是原因。
是否進行過相關(guān)變更
大部份故障是由于變更導致牍蜂,確定故障現(xiàn)象后漾根,如果有應(yīng)的變更,有助于從變更角度出現(xià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)容犁珠,會導致這個方案可讀性變差,最終變更一個應(yīng)付檢查的文檔互亮。以下是我覺得應(yīng)用系統(tǒng)應(yīng)急方案應(yīng)該有的內(nèi)容:
系統(tǒng)級
能知道當前應(yīng)用系統(tǒ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ù)去更新是難點蚤吹。我認為要解決這個難點,需要先讓運維人員經(jīng)常使用這個手冊随抠。如果一個手冊沒有場景可以用裁着,那就需要管理者為運維人員創(chuàng)造機會去使用這個手冊,比如應(yīng)急演練拱她。
持續(xù)優(yōu)化
整體思路
監(jiān)控系統(tǒng)建設(shè)目標是完善“監(jiān)”能力二驰,增加“控”的能力,這章提到的持續(xù)優(yōu)化主要是針對“監(jiān)”能力的落實椭懊,歸納起來就是“不漏報诸蚕,少誤報”,可以針對不同的階段量化目標氧猬,比如60%告警即故障背犯,80%故障來自監(jiān)控。
措施
目標分解
不漏報
漏報可以從兩個層面看盅抚,一個是監(jiān)控工具不具備某一方面的監(jiān)控能力漠魏;一個是監(jiān)控工具具備監(jiān)控能力,但因為使用者使用問題導致未覆蓋監(jiān)控妄均。前者需要完善監(jiān)控能力柱锹,比如針對生產(chǎn)故障舉一反三式的優(yōu)化,或由不同專業(yè)條線主動增加監(jiān)控能力丰包,后者則需要考慮幾個問題:
- 管理上有沒有要求指標的100%覆蓋率禁熏;
- 覆蓋率的要求是否確實可以落地,或功能上是否設(shè)計極不友好邑彪;
- 100%的覆蓋率是否從技術(shù)默認設(shè)置瞧毙,如果技術(shù)無法默認設(shè)置,能否從技術(shù)上主動發(fā)現(xiàn)寄症;
前面兩個問題需要從管理手段上解決宙彪,最后一個問題需要在監(jiān)控系統(tǒng)中解決,即盡可能讓需要覆蓋的監(jiān)控指標從技術(shù)上落地有巧,減少對運維人員主動性上的依靠释漆,同時監(jiān)控系統(tǒng)要快速從技術(shù)上響應(yīng)新的監(jiān)控指標的落地。
減少誤報
誤報帶來的問題也很大篮迎,大量男图、反復(fù)的誤報告警會讓運維人員麻木示姿,進而忽視監(jiān)控報警,錯過了真正的監(jiān)控事件的處理享言,所以監(jiān)控誤報情況也需要重視峻凫。
心得
以下是在監(jiān)控優(yōu)化上的一些措施心得供參考:
第一階段:減少監(jiān)控報警數(shù)量
- 目標:每周報警總量上下降60%
- 主要工作:
- 抓突出的報警指標,調(diào)整閥值览露,比如CPU、內(nèi)存譬胎、空間差牛、應(yīng)用性能這幾塊大頭,如果閥值不合理將帶來大量告警堰乔,對這幾類指標閥值做優(yōu)化會有事半功倍的效果偏化;
- 抓每個指標突出的組、系統(tǒng)進行針對性整改镐侯,可能就是某個團隊或某些管理員不重視監(jiān)控侦讨,解決刺頭的成效也很明顯;
- 針對重復(fù)性的告警苟翻,優(yōu)化監(jiān)控系統(tǒng)韵卤,減少重復(fù)報警。
第二階段:減少監(jiān)控誤報率
- 目標:60%告警即故障(排除磁盤崇猫、表空間類)
- 主要工作:
- 區(qū)分監(jiā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)控準確率父款;
- 完成應(yīng)用部署與監(jiān)控維護期關(guān)聯(lián),減少未設(shè)置維護期導致的監(jiān)控報警痹扇;
- 完成應(yīng)用啟停集中處理铛漓,減少應(yīng)用啟停帶來的維護期報警。
第三階段:提高監(jiān)控對故障的覆蓋率
- 目標:80%故障來自監(jiān)控
- 主要工作:
- 每周分析生產(chǎn)事件的發(fā)現(xiàn)環(huán)節(jié)鲫构,對于非監(jiān)控發(fā)現(xiàn)的故障進行專項分析浓恶;
- 其它方案(針對第一、二階段實施情況完善)
第四階段:提高監(jiān)控事件處理效率
- 目標:監(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)控的使用角色伐憾,這個團隊有幾個目標:
- 將持續(xù)優(yōu)化的工作進行落地勉痴;
- 作好數(shù)據(jù)分析,比如監(jiān)控的事件量是否突增树肃,某些系統(tǒng)的事件是否陡增蒸矛,誤報量是否過多,故障哪些不是通過監(jiān)控發(fā)現(xiàn)胸嘴,未通過監(jiān)控發(fā)現(xiàn)的故障是否完成監(jiān)控覆蓋面整改雏掠,監(jiān)控功能有哪些不友好等等。