監(jiān)控系統(tǒng)的本質(zhì)是通過發(fā)現(xiàn)故障、解決故障、預(yù)防故障來為了保障業(yè)務(wù)的穩(wěn)定。而要想在企業(yè)內(nèi)實(shí)現(xiàn)監(jiān)控系統(tǒng)的體系化建設(shè)落地,需要從以下三個(gè)方面著手建設(shè),分別是監(jiān)控技術(shù)體系、監(jiān)控指標(biāo)體系、監(jiān)控管理體系。
01. 監(jiān)控技術(shù)體系
一般來說,一個(gè)完整的監(jiān)控系統(tǒng),可以抽象為采集+數(shù)據(jù)+算子+告警四個(gè)基本模塊,缺一不可。
1)采集
① 采集方式
數(shù)據(jù)采集方式一般分為Agent模式(Agent-based)和非Agent模式(Agentless);
Agent模式包括各種插件采集、各種格式的腳本采集、主機(jī)日志采集、主機(jī)進(jìn)程采集、APM探針和SDK等;
非Agent模式包括SNMP、IPMI/Redfish、SSH、JMX、ODBC/JDBC、Syslog、ICMP、HTTP(s)、TCP/UDP、SMTP等各種通用協(xié)議的數(shù)據(jù)采集。
② 采集頻率
采集頻率一般有分秒級(jí)、分鐘級(jí)之分,常用的采集頻率為分鐘級(jí);同時(shí)也有基于條件觸發(fā)式的隨機(jī)采集或上報(bào)。
關(guān)于分鐘級(jí)與秒級(jí)也有不少爭(zhēng)論,常有人認(rèn)為越快越好,認(rèn)為越快就能更快發(fā)現(xiàn)問題。但是秒級(jí)的采集頻率的增加,這對(duì)目標(biāo)機(jī)器性能的影響也會(huì)增加,若因?yàn)閿?shù)據(jù)采集導(dǎo)致業(yè)務(wù)性能本身出現(xiàn)問題,這就本末倒置了。而且,隨著數(shù)據(jù)量加倍,存儲(chǔ)成倍增加,計(jì)算量級(jí)指數(shù)型增長(zhǎng),帶來的成本損耗可能遠(yuǎn)超秒級(jí)監(jiān)控帶來的好處。
在實(shí)際的應(yīng)用場(chǎng)景中,需要思考使用秒級(jí)頻率是否真的值得,是否能帶來對(duì)應(yīng)的業(yè)務(wù)價(jià)值。秒級(jí)監(jiān)控是監(jiān)控系統(tǒng)的一種必備的能力,但并不是所有的指標(biāo)都需要秒級(jí)監(jiān)控,需要挖掘真正的價(jià)值場(chǎng)景,而不是為了秒級(jí)而秒級(jí),白白浪費(fèi)資源,徒增維護(hù)成本。
③ 采集傳輸
采集傳輸按傳輸發(fā)起模式分類有主動(dòng)采集Pull(拉)、被動(dòng)接收Push(推);按傳輸鏈路分類有直連模式、Proxy傳輸。其中Proxy傳輸不僅能解決監(jiān)控?cái)?shù)據(jù)跨網(wǎng)傳輸?shù)膯栴},還可以緩解監(jiān)控節(jié)點(diǎn)數(shù)量過多導(dǎo)致出現(xiàn)的數(shù)據(jù)傳輸?shù)钠款i,用Proxy機(jī)制實(shí)現(xiàn)數(shù)據(jù)傳輸負(fù)載分流。
2)數(shù)據(jù)
① 數(shù)據(jù)類型
監(jiān)控的數(shù)據(jù)類型有指標(biāo)(Metrics)、日志(Logs)、調(diào)用鏈(Traces)三種類型。指標(biāo)數(shù)據(jù)是數(shù)值型的監(jiān)控項(xiàng),主要是通過維度來做標(biāo)識(shí);日志數(shù)據(jù)是字符型的數(shù)據(jù),主要是從中找一些關(guān)鍵字信息來做監(jiān)控;調(diào)用鏈數(shù)據(jù)反饋的是跟蹤鏈路一個(gè)數(shù)據(jù)流轉(zhuǎn)的過程,觀察過程中的耗時(shí)性能是否正常。
由于數(shù)據(jù)類型不同,也衍生出了三類不同的監(jiān)控系統(tǒng)。指標(biāo)類型的監(jiān)控,典型代表比如Zabbix、普羅米修斯。日志類常見的監(jiān)控系統(tǒng)有ELK、Splunk等,主要關(guān)注日志類數(shù)據(jù)的分析和監(jiān)控。調(diào)用鏈?zhǔn)峭ㄟ^TraceID來追蹤請(qǐng)求的過程來進(jìn)行監(jiān)控,即APM(應(yīng)用性能監(jiān)控),例如Dynatrace、Skywalking等。
② 數(shù)據(jù)存儲(chǔ)
對(duì)于監(jiān)控系統(tǒng)來說,主要有以下三種存儲(chǔ)供選擇:
- 關(guān)系型數(shù)據(jù)庫(kù):例如MySQL、MSSQL、DB2;典型監(jiān)控系統(tǒng)代表:Zabbix、SCOM、Tivoli;但由于數(shù)據(jù)庫(kù)本身的限制,很難搞定海量監(jiān)控的場(chǎng)景,有性能瓶頸,只在傳統(tǒng)監(jiān)控系統(tǒng)常用,逐漸被淘汰。
- 時(shí)序數(shù)據(jù)庫(kù):幾乎可以說是為監(jiān)控這種場(chǎng)景設(shè)計(jì)的數(shù)據(jù)庫(kù),擅長(zhǎng)于指標(biāo)數(shù)據(jù)存儲(chǔ)和計(jì)算;例如InfluxDB、OpenTSDB(基于Hbase)、Prometheus等;典型監(jiān)控系統(tǒng)代表:TICK監(jiān)控、 Open-falcon、Prometheus。
- 全文檢索數(shù)據(jù)庫(kù):這類型數(shù)據(jù)庫(kù)主要用于日志型存儲(chǔ),Traces數(shù)據(jù)也可以存儲(chǔ),對(duì)數(shù)據(jù)檢索非常友好,例如Elasticsearch。
③ 數(shù)據(jù)視圖
數(shù)據(jù)視圖主要是將監(jiān)控的數(shù)據(jù)以一種人類便于理解的方式呈現(xiàn)出來,面向不同的角色會(huì)有不同的呈現(xiàn)方式,例如領(lǐng)導(dǎo)、管理員、值班員等關(guān)注的點(diǎn)都不一樣。常見的數(shù)據(jù)視圖模式有以下幾種:
- 大屏:面向領(lǐng)導(dǎo),提供全局概覽;也可以面向值班員,提供盯屏視圖;
- 拓?fù)洌?/span>面向運(yùn)維人員,提供告警關(guān)聯(lián)關(guān)系和影響面視圖;
- 儀表盤:面向運(yùn)維人員,提供自定義的關(guān)注指標(biāo)的視圖;
- 報(bào)表:面向運(yùn)維人員、領(lǐng)導(dǎo),提供一些統(tǒng)計(jì)匯總報(bào)表信息,例如周報(bào)、日?qǐng)?bào)等;
- 檢索:面向運(yùn)維人員,用于故障分析場(chǎng)景下的各類數(shù)據(jù)的快速查找和定位。
3)算子
① 數(shù)據(jù)加工
數(shù)據(jù)加工一般分為:數(shù)據(jù)清洗、數(shù)據(jù)計(jì)算、數(shù)據(jù)豐富、指標(biāo)派生。
- 數(shù)據(jù)清洗:比如日志數(shù)據(jù)的清洗,因?yàn)槿罩緮?shù)據(jù)是非結(jié)構(gòu)化的數(shù)據(jù),信息密度較低,因此需要從中提取有用的數(shù)據(jù)。
- 數(shù)據(jù)計(jì)算:很多原始性能數(shù)據(jù)不能直接用來判斷數(shù)據(jù)是否產(chǎn)生異常。比如采集的數(shù)據(jù)是磁盤總量和磁盤使用量,如果要檢測(cè)磁盤使用率,就需要對(duì)現(xiàn)有指標(biāo)進(jìn)行一個(gè)簡(jiǎn)單的四則運(yùn)算,才能得到磁盤使用率。
- 數(shù)據(jù)豐富:就是給數(shù)據(jù)打上一些tags標(biāo)簽,比如打上主機(jī)、機(jī)房的標(biāo)簽,方便進(jìn)行聚合計(jì)算。
- 指標(biāo)派生:指的是通過已有的指標(biāo),通過各種公式計(jì)算得出新的指標(biāo),在一些統(tǒng)計(jì)指標(biāo)的場(chǎng)景中比較常用。
② 數(shù)據(jù)檢測(cè)
有固定規(guī)則和AI算法。固定算法是較為常見的算法,靜態(tài)閾值、同比環(huán)比、自定義規(guī)則,而機(jī)器學(xué)習(xí)主要有動(dòng)態(tài)基線、毛刺檢測(cè)、指標(biāo)預(yù)測(cè)、多指標(biāo)關(guān)聯(lián)檢測(cè)等算法。無論是固定規(guī)則還是機(jī)器學(xué)習(xí),都會(huì)有相應(yīng)的判斷規(guī)則,即常見的< > >=和and/or的組合判斷等。
4)告警
① 告警收斂
告警收斂有三種思路:抑制、屏蔽和聚合。
- 抑制:即抑制同樣的問題,避免重復(fù)告警。常見的抑制方案有防抖抑制、依賴抑制、時(shí)間抑制、組合條件抑制、高可用抑制等。
- 屏蔽:屏蔽可預(yù)知的情況,比如變更維護(hù)期、固定的周期任務(wù)這些已經(jīng)知道會(huì)發(fā)生的事件,心里已經(jīng)有預(yù)期。
- 聚合:聚合是把類似或相同的告警進(jìn)行合并,因?yàn)榭赡芊答伒氖峭粋€(gè)現(xiàn)象。比如業(yè)務(wù)訪問量升高,那承載業(yè)務(wù)的主機(jī)的CPU、內(nèi)存、磁盤IO、網(wǎng)絡(luò)IO等各項(xiàng)性能都會(huì)飆升,這樣把這些性能指標(biāo)都聚合到一塊,更加便于告警的分析處理。
② 告警通知
- 通知到人:通過一些常規(guī)的通知渠道,能夠觸達(dá)到人。這樣在沒有人盯屏的時(shí)候,可以通過微信、短信、郵件觸發(fā)到工作人員。
- 通知到系統(tǒng):一般通過API推送給第三方系統(tǒng),便于進(jìn)行后續(xù)的事件處理。
對(duì)于一個(gè)成熟的監(jiān)控,還需要支持自定義通知渠道擴(kuò)展(比如企業(yè)里有自己的IM系統(tǒng),可以自行接入)
關(guān)于上述4個(gè)方面便是一個(gè)站在技術(shù)的角度對(duì)監(jiān)控系統(tǒng)的一個(gè)抽象,但是要落地監(jiān)控系統(tǒng),僅僅依靠一個(gè)技術(shù)強(qiáng)大的工具是遠(yuǎn)遠(yuǎn)不夠的;接下來介紹的將是監(jiān)控系統(tǒng)的核心數(shù)據(jù)管理—監(jiān)控指標(biāo)體系。
02. 監(jiān)控指標(biāo)體系
為什么要搭建指標(biāo)體系?通過指標(biāo)體系監(jiān)測(cè)應(yīng)用運(yùn)行的狀況,最大的價(jià)值就是高效利用時(shí)間,把時(shí)間花在解決問題上,而不是尋找問題上,從而提高整體的人效。指標(biāo)體系的輸出結(jié)果應(yīng)當(dāng)是一份指標(biāo)字典,需要至少滿足以下要求:
- 成體系化的指標(biāo),能夠從多維度了解應(yīng)用運(yùn)行的現(xiàn)狀
- 在應(yīng)用運(yùn)行出現(xiàn)問題時(shí)能夠快速定位問題所在
- 高效地為運(yùn)維團(tuán)隊(duì)提供數(shù)據(jù)支持
1)核心理念
- 監(jiān)控的指標(biāo)體系是以監(jiān)控對(duì)象為骨架,以監(jiān)控指標(biāo)為經(jīng)脈,將整個(gè)監(jiān)控系統(tǒng)的數(shù)據(jù)有機(jī)整合起來。
- 指標(biāo)體系的設(shè)計(jì)原則最重要的是可度量、可采集、可理解、可消費(fèi)。
- 貫穿指標(biāo)的生命周期管理,輔以指標(biāo)的管理規(guī)范,才能保障監(jiān)控平臺(tái)長(zhǎng)久有序的運(yùn)行。
2)體系設(shè)計(jì)
從企業(yè)業(yè)務(wù)應(yīng)用的視角出發(fā),一般將企業(yè)監(jiān)控的對(duì)象分為6層:基礎(chǔ)設(shè)施層、硬件設(shè)備層、操作系統(tǒng)層、組件服務(wù)層、應(yīng)用性能層、業(yè)務(wù)運(yùn)營(yíng)層;也可以根據(jù)企業(yè)自己的情況進(jìn)行調(diào)整。

① 基礎(chǔ)設(shè)施層
- 基礎(chǔ)設(shè)施層,一般指機(jī)房的基礎(chǔ)設(shè)施配備,用于保證機(jī)房的正常運(yùn)轉(zhuǎn),包含動(dòng)力、環(huán)境、安防等設(shè)備。即機(jī)房動(dòng)環(huán)監(jiān)控的核心關(guān)注點(diǎn)。
- 動(dòng)力主要包含供電系統(tǒng)、發(fā)電機(jī)、UPS電源等電力供應(yīng)設(shè)備,核心關(guān)注電力的狀態(tài)、容量、電壓、電流、穩(wěn)定性、頻率等指標(biāo)。
- 環(huán)境主要包含溫濕度計(jì)、空調(diào)、通風(fēng)等環(huán)境監(jiān)測(cè)和調(diào)節(jié)設(shè)備,核心關(guān)注環(huán)境設(shè)備的運(yùn)行狀態(tài)、環(huán)境溫度、濕度等指標(biāo)。
- 安防主要包含視頻攝像頭、門禁、煙霧探測(cè)器、消防設(shè)備等安全防護(hù)設(shè)備,核心關(guān)注設(shè)備的運(yùn)行狀態(tài)、視頻穩(wěn)定性、門禁狀態(tài)等指標(biāo)。
② 硬件設(shè)備層
- 硬件設(shè)備層,一般指服務(wù)器、存儲(chǔ)、網(wǎng)絡(luò)、安全四類常見硬件設(shè)備對(duì)象,用于提供應(yīng)用運(yùn)行所需的硬件資源。即基礎(chǔ)硬件監(jiān)控的核心關(guān)注點(diǎn)。
- 服務(wù)器設(shè)備主要包含X86服務(wù)器、小機(jī)、大機(jī)等計(jì)算資源設(shè)備,隨著分布式計(jì)算技術(shù)的普及,小機(jī)、大機(jī)這種性能超強(qiáng)的專用機(jī)器逐漸淘汰,X86服務(wù)器成為當(dāng)下主流;核心關(guān)注服務(wù)器的電源、CPU、內(nèi)存、磁盤、風(fēng)扇等配件的工作狀態(tài)和性能指標(biāo)。
- 存儲(chǔ)設(shè)備主要包含磁盤整列、磁帶庫(kù)、存儲(chǔ)交換機(jī)等存儲(chǔ)資源設(shè)備,隨著虛擬存儲(chǔ)的技術(shù)的出現(xiàn),專用而昂貴的存儲(chǔ)設(shè)備逐漸減少,取而代之的是廉價(jià)的服務(wù)器設(shè)備配合大量的硬盤通過虛擬化技術(shù)提供的存儲(chǔ)資源;核心關(guān)注存儲(chǔ)設(shè)備的容量、IOPS、運(yùn)行狀態(tài)、讀寫速率等指標(biāo)。
- 網(wǎng)絡(luò)設(shè)備主要包含交換機(jī)、路由器、負(fù)載均衡等網(wǎng)絡(luò)資源設(shè)備;核心關(guān)注網(wǎng)絡(luò)設(shè)備的運(yùn)行狀態(tài)、端口狀態(tài)、端口流量、吞吐量、錯(cuò)誤包、丟包率等指標(biāo)。
- 安全設(shè)備主要包含防火墻、入侵檢測(cè)設(shè)備、防病毒設(shè)備、加密機(jī)等;核心關(guān)注安全設(shè)備的運(yùn)行狀態(tài)、接口狀態(tài)、速率、丟包數(shù)、網(wǎng)絡(luò)攻擊數(shù)等指標(biāo)。
③ 操作系統(tǒng)層
- 操作系統(tǒng)層,除了包含傳統(tǒng)意義上的各類操作系統(tǒng)之外,還把虛擬化、容器也納入該層,主要是考慮到虛擬化、容器本質(zhì)上也是由操作系統(tǒng)驅(qū)動(dòng)而提供的一種資源服務(wù),如有需要,單獨(dú)劃分管理也未嘗不可。
- 操作系統(tǒng)主要包含Windows Server、Linux系的CentOS、RHEL、Suse、Ubuntu、AIX、HP-Unix等服務(wù)器操作系統(tǒng);核心關(guān)注CPU使用率、內(nèi)存使用率、磁盤使用率、磁盤IO速率、網(wǎng)卡流量等指標(biāo)。
- 虛擬化主要包含VMware、OpenStack、KVM、Citrix等虛擬化平臺(tái);核心關(guān)注平臺(tái)主機(jī)、集群、存儲(chǔ)的狀態(tài)和資源容量、資源數(shù)、配額等指標(biāo)。
- 當(dāng)前的容器監(jiān)控主要指K8s容器管理平臺(tái)的監(jiān)控;核心關(guān)注Cluster、Namespace、Service、Pod、Workload、Node等資源的狀態(tài)、CPU負(fù)載、內(nèi)存使用、磁盤使用、網(wǎng)絡(luò)流量等指標(biāo)。
④ 組件服務(wù)層
- 組件服務(wù)層,一般指數(shù)據(jù)庫(kù)、中間件及其運(yùn)行進(jìn)程等軟件資源對(duì)象,部分監(jiān)控系統(tǒng)經(jīng)常將進(jìn)程歸屬于操作系統(tǒng)監(jiān)控,或者獨(dú)立進(jìn)行監(jiān)控,反應(yīng)的都是進(jìn)程本身的狀態(tài),但是進(jìn)程本質(zhì)是各種數(shù)據(jù)庫(kù)、中間件軟件資源服務(wù)化的表現(xiàn)形式,應(yīng)當(dāng)隸屬于資源實(shí)例監(jiān)控的一部分。
- 數(shù)據(jù)庫(kù)主要包含企業(yè)常用的各種關(guān)系型數(shù)據(jù)庫(kù)MySQL、Oracle、MSSQL等,以及非關(guān)系型數(shù)據(jù)庫(kù)MongoDB、Redis、InfluxDB等;核心關(guān)注的是數(shù)據(jù)庫(kù)的連接數(shù)、讀寫速率、鎖、索引命中率、連接數(shù)等指標(biāo)。
- 中間件主要包含Web中間件、消息中間件兩種,例如WebLogic、Was、Tomcat、kafka、RabbitMQ等,其它的還有配置中間件、分布式事務(wù)、任務(wù)調(diào)度中間件等;核心關(guān)注的是中間件的吞吐量、連接數(shù)、JVM性能等指標(biāo)。
- 一般只有數(shù)據(jù)庫(kù)、中間件或者應(yīng)用本身的進(jìn)程才會(huì)進(jìn)行監(jiān)控,進(jìn)程監(jiān)控核心關(guān)注進(jìn)程狀態(tài)、端口狀態(tài)、進(jìn)程的性能使用率等指標(biāo)。
⑤ 應(yīng)用性能層
- 應(yīng)用性能層,一般包含應(yīng)用系統(tǒng)服務(wù)端和客戶端兩個(gè)方面,其中服務(wù)端主要指調(diào)用鏈,客戶端主要包含移動(dòng)端APP、PC端Web頁(yè)面。
- 對(duì)于服務(wù)端的調(diào)用鏈,核心關(guān)注可用率、錯(cuò)誤率、響應(yīng)時(shí)間、吞吐率等關(guān)鍵性能指標(biāo)。
- 對(duì)于客戶的移動(dòng)端APP和PC端的Web頁(yè)面,核心關(guān)注瀏覽量、請(qǐng)求數(shù)、首屏?xí)r間、渲染時(shí)間、可用率、響應(yīng)時(shí)間等關(guān)鍵性能指標(biāo)。
- 另外,對(duì)于應(yīng)用和服務(wù)的基礎(chǔ)探活,也可以采用協(xié)議撥測(cè)的方式來實(shí)現(xiàn),此時(shí)主要關(guān)注網(wǎng)站或接口的撥測(cè)可用率、撥測(cè)響應(yīng)時(shí)間。
⑥ 業(yè)務(wù)運(yùn)營(yíng)層
- 業(yè)務(wù)運(yùn)營(yíng)層,主要指業(yè)務(wù)系統(tǒng)中的業(yè)務(wù)數(shù)據(jù)的監(jiān)控,一般需要根據(jù)業(yè)務(wù)系統(tǒng)的特點(diǎn)來進(jìn)行梳理,常見的業(yè)務(wù)系統(tǒng)主要關(guān)注交易量、交易耗時(shí)、庫(kù)存量、用戶數(shù)、活躍用戶數(shù)、在線用戶數(shù)等業(yè)務(wù)核心指標(biāo)
⑦ 指標(biāo)分級(jí)管理
根據(jù)上述梳理的指標(biāo)清單,對(duì)于指標(biāo)本身也建議能夠做一個(gè)分級(jí)管理。一般分三級(jí),按重要程度區(qū)分:核心指標(biāo)、關(guān)鍵指標(biāo)和常規(guī)指標(biāo)。
- 核心指標(biāo)一般不會(huì)定太多,主要反映這個(gè)監(jiān)控對(duì)象是活著還是死了,1到2個(gè)即可。
- 關(guān)鍵指標(biāo)是看核心性能是否正常,參考谷歌定義的SRE四大黃金指標(biāo)。
- 常規(guī)指標(biāo)可以根據(jù)實(shí)際的業(yè)務(wù)場(chǎng)景去考慮。
核心指標(biāo)一定要配置告警基線,關(guān)鍵指標(biāo)建議配置,而常規(guī)指標(biāo)可以按業(yè)務(wù)場(chǎng)景考慮是否配置。后續(xù)通過不同指標(biāo)的分級(jí)、權(quán)重,便可以很容易地建設(shè)起企業(yè)內(nèi)地應(yīng)用健康評(píng)估模型,衡量整個(gè)應(yīng)用的健康情況。
通過上述分層分類的指標(biāo)體系設(shè)計(jì),可以對(duì)企業(yè)內(nèi)的指標(biāo)進(jìn)行一個(gè)清晰的歸納和管理,再結(jié)合一套優(yōu)秀的監(jiān)控工具,便可實(shí)現(xiàn)企業(yè)IT資源應(yīng)用的無死角監(jiān)控,但要想監(jiān)控系統(tǒng)在企業(yè)內(nèi)實(shí)現(xiàn)長(zhǎng)治久安,甚至不斷進(jìn)化,還得搭配下面即將介紹的監(jiān)控管理體系。
03. 監(jiān)控管理體系
監(jiān)控的管理最重要的便是告警閉環(huán)管理,很多企業(yè)建設(shè)了很多套監(jiān)控系統(tǒng),都能產(chǎn)生告警,但是告警之后呢?沒有然后了。對(duì)于監(jiān)控體系的落地,運(yùn)營(yíng)管理比系統(tǒng)建設(shè)更加重要。只有將監(jiān)控系統(tǒng)產(chǎn)生的告警治理起來,監(jiān)控系統(tǒng)才能發(fā)揮其應(yīng)有的價(jià)值,監(jiān)控體系化建設(shè)過程才能出現(xiàn)正向的進(jìn)化,而不是用著用著就沒用了。
1)告警閉環(huán)管理
告警事件的閉環(huán)管理可以分為三個(gè)大的階段,事前、事中、事后。事前核心關(guān)注發(fā)現(xiàn)問題的發(fā)現(xiàn)和預(yù)防,提示告警處理的效率;事中核心關(guān)注快速發(fā)現(xiàn)和解決問題,快速恢復(fù)業(yè)務(wù),保障業(yè)務(wù)連續(xù)性,降低損失;事后核心關(guān)注問題的根因復(fù)盤,優(yōu)化告警預(yù)防的方案和下次告警處理的效率。

① 告警預(yù)防管理(事前)
告警預(yù)防階段,主要是針對(duì)可能出現(xiàn)的問題進(jìn)行規(guī)避,核心是評(píng)估、調(diào)優(yōu)、監(jiān)測(cè)和預(yù)案。
- 評(píng)估:可以通過性能壓測(cè)、人員測(cè)試等方式,評(píng)估系統(tǒng)的可用性和性能瓶頸,作為提前擴(kuò)容調(diào)優(yōu)的依據(jù)。
- 調(diào)優(yōu):根據(jù)測(cè)試評(píng)估的結(jié)論以及歷史問題的反饋建議,對(duì)應(yīng)用系統(tǒng)進(jìn)行架構(gòu)、容量、性能等方面的優(yōu)化,以防事故發(fā)生。
- 監(jiān)測(cè):提前建設(shè)一些監(jiān)控、巡檢等工具,即前兩部分中的監(jiān)控系統(tǒng)建設(shè),對(duì)應(yīng)用系統(tǒng)的一些關(guān)鍵指標(biāo)進(jìn)行實(shí)時(shí)或定期檢測(cè),便于及時(shí)發(fā)現(xiàn)問題,提前解決問題,降低問題的影響時(shí)間。
- 預(yù)案:對(duì)于一些可能發(fā)生的問題,組織團(tuán)隊(duì)一起做出對(duì)應(yīng)的方案,以便在事故真實(shí)發(fā)生時(shí)能夠快速處理,最大可能性降低損失;例如災(zāi)備、降級(jí)、限流等方案。
② 告警處理管理(事中)
告警處理階段流程最為復(fù)雜,又可以分為告警感知、告警響應(yīng)、告警定位、告警恢復(fù)4個(gè)過程。
在具體談告警處理之前,先說說告警分級(jí),只有對(duì)告警提前進(jìn)行分級(jí),才能在告警發(fā)生時(shí)有條不紊,采取不同的應(yīng)對(duì)策略。告警一般分為三級(jí),致命、警告、提醒。致命告警一般代表服務(wù)已經(jīng)異常,需要馬上進(jìn)行處理;警告告警一般代表如果不進(jìn)行及時(shí)處理,服務(wù)即將異常;提醒告警一般代表一些潛在問題,需要開始關(guān)注或提前采取行動(dòng),避免異常產(chǎn)生。另外,告警分級(jí)的設(shè)定的影響因子也有很多,一般來說對(duì)象等級(jí)、指標(biāo)等級(jí)、所屬環(huán)境(生產(chǎn)/測(cè)試/準(zhǔn)生產(chǎn)等)、業(yè)務(wù)重要性等為核心考慮因子。
- 告警感知:發(fā)現(xiàn)并感知到告警,有兩種方式。一種是通過系統(tǒng)檢測(cè)并通知到人,例如監(jiān)控檢測(cè)、主動(dòng)撥測(cè)、輿情監(jiān)測(cè)、健康巡檢等;另一種是通過人工發(fā)現(xiàn)并反饋,例如關(guān)鍵應(yīng)用盯屏機(jī)制、用戶報(bào)障、服務(wù)臺(tái)上報(bào)、測(cè)試人員上報(bào)等。
- 告警響應(yīng):接收并響應(yīng)告警,也有兩個(gè)過程。首先是處理人接收到自己負(fù)責(zé)的告警,主要是通過多種渠道(例如郵件、短信、電話、微信等)的通知,告警系統(tǒng)/服務(wù)臺(tái)的分派,零線/一線無法處理告警的升級(jí),值班室/值班群的通報(bào)機(jī)制等;然后是處理人響應(yīng)告警,根據(jù)不同告警的處理策略,會(huì)有服務(wù)臺(tái)響應(yīng)、值班組響應(yīng)、運(yùn)維組響應(yīng)、專家組響應(yīng)等不同級(jí)別的響應(yīng)模式。
- 告警定位:快速定位告警的問題,一般都是以人員經(jīng)驗(yàn)為主,工具為輔進(jìn)行快速定位??梢詮母鞣N數(shù)據(jù)著手,對(duì)指標(biāo)、日志、鏈路數(shù)據(jù)進(jìn)行快速分析;也可以從周邊關(guān)聯(lián)入手,是否是關(guān)聯(lián)問題影響或者影響到了其它系統(tǒng);還可以從變更歷史記錄中尋找可能的問題;目標(biāo)是快速找到問題的原點(diǎn),便于快速?zèng)Q策解決方案,特別注意,此時(shí)最關(guān)鍵的是問題解決的速率,而不是問題的根因分析,尤其是技術(shù)人員千萬不要陷入問題根因定位中。
- 告警恢復(fù):通過一系列行之有效的方案快速恢復(fù)應(yīng)用系統(tǒng)的功能,可以通過問題節(jié)點(diǎn)隔離、負(fù)載限流、服務(wù)降級(jí)、資源擴(kuò)容、應(yīng)用重啟、切換災(zāi)備、問題系統(tǒng)重裝上線等方式,快速恢復(fù)核心業(yè)務(wù)服務(wù),盡可能減少損失。
③ 復(fù)盤改進(jìn)機(jī)制(事后)
告警復(fù)盤改進(jìn)也可以分3個(gè)部分,分別是問題復(fù)盤、經(jīng)驗(yàn)積累、改進(jìn)優(yōu)化。
- 問題復(fù)盤:核心目的是找出問題的根因,徹底解決問題,并且需要留下問題復(fù)盤報(bào)告,以防下次類似問題。
- 經(jīng)驗(yàn)積累:經(jīng)驗(yàn)積累最重要的便是知識(shí)庫(kù)建設(shè),據(jù)了解很多企業(yè)都有知識(shí)庫(kù),但是并沒有真正用起來。建設(shè)知識(shí)庫(kù)要注重3個(gè)點(diǎn);一是以終為始,消費(fèi)驅(qū)動(dòng),而不是為了沉淀而建設(shè),一定要保障知識(shí)庫(kù)的易用性,具備強(qiáng)大的檢索能力,便于快速找到想要的知識(shí);二是工具承載,基于知識(shí)消費(fèi)場(chǎng)景豐富知識(shí)庫(kù),打通聯(lián)動(dòng)各個(gè)系統(tǒng),自動(dòng)匯聚知識(shí)經(jīng)驗(yàn);三是流程保證,設(shè)立專門的知識(shí)管理組織,保障知識(shí)庫(kù)的落地和持續(xù)運(yùn)營(yíng)。
- 改進(jìn)優(yōu)化:回歸本質(zhì),監(jiān)控體系的建設(shè)不僅僅是為了出現(xiàn)問題后解決問題,而是為了不出或少出問題,故除了監(jiān)控系統(tǒng)本身的使用優(yōu)化之外,反推業(yè)務(wù)應(yīng)用的優(yōu)化才是根本。
- 告警關(guān)閉分析:統(tǒng)計(jì)直接關(guān)閉告警數(shù)、自動(dòng)恢復(fù)數(shù),分析原因,判斷該項(xiàng)是否需要持續(xù)監(jiān)控,是否可以優(yōu)化告警策略?
- 誤告警分析:通過打標(biāo)簽的方式標(biāo)記誤告警,可進(jìn)一步優(yōu)化告警策略,精準(zhǔn)告警。
- 告警排行分析:業(yè)務(wù)告警數(shù)排行、資源對(duì)象告警數(shù)排行、指標(biāo)告警數(shù)排行、跨區(qū)業(yè)務(wù)的區(qū)域告警數(shù)排行等,對(duì)于高頻告警業(yè)務(wù)、對(duì)象、指標(biāo)、區(qū)域等進(jìn)行重點(diǎn)整治,優(yōu)化業(yè)務(wù)應(yīng)用系統(tǒng)。
- 自愈告警分析:自愈告警數(shù)、自愈告警成功率,自愈是否有誤?自愈流程是否可以進(jìn)一步優(yōu)化?
為了更好的落地監(jiān)控體系,還得有建設(shè)成果的衡量指標(biāo),主要可以從監(jiān)控覆蓋廣度和告警處理效率兩方面來看。
2)運(yùn)營(yíng)管理指標(biāo)
① 監(jiān)控覆蓋率
主要是監(jiān)控對(duì)象采集覆蓋率、監(jiān)控指標(biāo)覆蓋率兩個(gè)指標(biāo),主要衡量監(jiān)控的推廣使用情況。監(jiān)控對(duì)象采集覆蓋率一般通過監(jiān)控任務(wù)覆蓋的對(duì)象實(shí)例數(shù)和CMDB中該對(duì)象的實(shí)例總數(shù)進(jìn)行對(duì)比得出;監(jiān)控指標(biāo)覆蓋率,一般是某個(gè)實(shí)例的規(guī)劃指標(biāo)總數(shù)和該實(shí)例的采集指標(biāo)數(shù)進(jìn)行對(duì)比得出。
② 告警處理指標(biāo)

從告警生命周期的過程來看,會(huì)有告警發(fā)生時(shí)間、發(fā)現(xiàn)時(shí)間、響應(yīng)時(shí)間、診斷時(shí)間、告警處理開始時(shí)間到告警恢復(fù)時(shí)間等關(guān)鍵時(shí)間節(jié)點(diǎn),衡量告警管理會(huì)有如下幾個(gè)關(guān)鍵指標(biāo)。
- MTTI(平均告警發(fā)現(xiàn)時(shí)間)=發(fā)現(xiàn)時(shí)間-發(fā)生時(shí)間(一般可忽略)
- MTTA (平均告警響應(yīng)時(shí)間)=響應(yīng)時(shí)間-發(fā)現(xiàn)時(shí)間
- MTTR(平均告警恢復(fù)時(shí)間) =恢復(fù)時(shí)間-發(fā)生時(shí)間
- MTBF(平均無故障告警時(shí)間)=運(yùn)行時(shí)間-故障時(shí)間
告警管理的根本目標(biāo)便是降低MTTA,縮短MTTR,提升MTBF。即:快速發(fā)現(xiàn)并響應(yīng)故障;快速定位并解決故障;減少故障發(fā)生,提升業(yè)務(wù)連續(xù)性。
其中的MTTA、MTTR便是運(yùn)維團(tuán)隊(duì)工作的告警處理的最好衡量指標(biāo),直接反饋了團(tuán)隊(duì)的告警處理效率和告警處理能力。