①監控系統的本質是通過發現故障、解決故障、預防故障來保證業務的穩定。
②監控系統壹般包括六個模塊:數據采集、數據檢測、報警管理、故障管理、視圖管理和監控管理。數據采集、數據檢測、報警處理是監控的最小閉環,但要想真正做好監控系統,故障管理閉環、視圖管理、監控管理等模塊也是不可或缺的。
第壹,數據收集
1,采集模式
數據采集方式壹般分為代理模式和非代理模式;
代理模式包括插件收集、腳本收集、日誌收集、進程收集、APM探針等。
非代理模式包括通用協議獲取、Web撥號測試、API接口等。
2.數據類型
有三種類型的監控數據:指標、日誌和跟蹤數據。
指標數據是數值型的監控項目,主要通過維度來標識。
日誌數據是字符數據,主要是找壹些關鍵詞信息進行監控。
跟蹤數據反饋就是跟蹤鏈路中壹個數據流的過程,觀察過程中的耗時性能是否正常。
3.采集頻率
采集頻率有三種類型:分鐘、分鐘和隨機。常見的采集頻率是分鐘。
4.獲取和傳輸
采集和傳輸可以按傳輸發起或傳輸鏈路分類。
根據傳輸發起,有主動獲取拉和被動接收推。
根據傳輸鏈路,有直連模式和代理傳輸。
其中,代理傳輸不僅可以解決監控數據的跨網傳輸問題,還可以緩解監控節點數量過多帶來的數據傳輸瓶頸,用代理實現數據分流。
5.數據存儲
對於監控系統,主要有三種存儲可供選擇。
①關系數據庫
如MySQL、MSSQL、DB2;典型的監控系統代表:紮比克斯、SCOM、蒂沃利;;
由於數據庫本身的限制,難以處理海量監控場景,存在性能瓶頸,僅在傳統監控系統中常用。
②時間序列數據庫
為監控這個場景而設計的數據庫擅長存儲和計算索引數據。比如InfluxDB,OpenTSDB(基於Hbase),Prometheus等。典型的監控系統代表:TICK監控框架、Open-falcon、Prometheus。
③全文檢索數據庫
這種類型的數據庫主要用於日誌存儲,對數據檢索非常友好,比如Elasticsearch。
第二,數據檢測
1.數據處理
①數據清理
數據清洗,比如日誌數據清洗,因為日誌數據是非結構化的,信息密度低,所以需要提取有用的數據。
②數據計算
很多原始性能數據不能直接用來判斷數據是否異常。例如,收集的數據是磁盤總量和磁盤使用情況。如果您想要檢測磁盤使用情況,您需要對現有的指示器執行簡單的四個操作來獲得磁盤使用情況。
③豐富的數據。
數據充實就是在數據上貼上壹些標簽,比如標註主機、機房,方便聚合計算。
④指標推導
指標推導是指通過現有指標計算出新的指標。
2.檢測算法
有固定的規則和機器學習算法。固定算法是常用算法,如靜態閾值、同比比較、自定義規則等,而機器學習主要包括動態基線、毛刺檢測、指標預測、多指標關聯檢測等。
無論是固定規則還是機器學習,都會有相應的判斷規則,也就是共性
三、報警管理
1.豐富的警報
告警豐富,為後續的告警事件分析做準備,需要輔助信息來判斷如何處理、分析和通知。
壹般來說,報警充實是通過規則鏈接CMDB、知識庫、作業歷史等數據源,實現報警字段及相關信息的充實。手動打標簽也是壹種豐富的方式,但由於人工成本較高,很難在實際場景中落地。
2.警報匯聚
告警匯聚有三種思路:抑制、屏蔽、聚合。
①抑制
即抑制同壹個問題,避免重復報警。常見的抑制方案有防抖抑制、依賴抑制、時間抑制、組合條件抑制、高可用性抑制等。
②屏蔽
屏蔽可預測的情況,比如改變維護周期,固定的周期性任務,這些都是已經知道會發生的事情,心裏已經有了預期。
③聚合
聚合就是把相似或者相同的告警組合起來,因為可能會反饋相同的現象。比如,如果業務訪問量增加,承載業務的主機的CPU、內存、磁盤IO、網絡IO的性能都會猛增,這樣這些性能指標匯總在壹起,更便於告警的分析處理。
3.警報通知
(1)通知人們
人們可以通過壹些常規的通知渠道聯系到。
這樣在沒人盯著屏幕的時候,就可以通過微信、短信、郵件觸發給工作人員。
②通知系統。
壹般通過API推送到第三方系統,方便後續事件處理。
另外,妳需要支持自定義渠道擴展(比如企業有自己的IM系統,可以自己訪問)。
第四,故障管理
報警事件必須閉環處理,否則監控毫無意義。
最常見的是人工處理:值班、工單、故障升級等。
經驗積累可以將人工故障積累到知識庫中,供後續故障處理時參考。
自動處理,通過提取壹些特定告警的固化處理流程,實現特定場景的故障自愈;比如磁盤空間報警時清除壹些無用的日誌。
智能分析主要是通過故障關聯分析、定位、預測等AI算法,提高故障定位和處理的效率。
1.視圖管理
視圖管理也屬於增值功能,主要是滿足人的心理需求,這樣就有很多角色(領導、管理員、值班員等。).
大屏幕:面對領導,提供全球概覽。
拓撲結構:為運維人員提供告警關聯和影響面視圖。
儀表板:對於操作和維護人員來說,它提供了壹個定制的關註指示器視圖。
報表:為運維人員和領導提供壹些統計匯總報表信息,如周報、日報等。
檢索:面向運維人員,用於故障分析場景下的各類數據檢索。
2.監控管理
監控管理是企業監控過程中最大的挑戰。前五個模塊都是監控系統提供的服務功能,而監控管理則是對監控系統本身進行管理和控制,關註真實落地過程的功能呈現。主要有以下幾個方面:
配置:簡單、批量和自動
覆蓋率:監測水平的衡量標準
指標數據庫:監測指標的規格
移動:隨時隨地處理問題。
權限:訪問控制
審計:管理合規性
API:運維數據的最大來源,用於數據消費。
自我監控:自我穩定的保證
為了實現上述六個基本的監控能力模塊,我們可以根據以下架構設計我們的統壹監控平臺。
主要分為三層,接入層、能力層和功能層。
接入層主要考慮各類數據的接入。除了自身代理和插件的獲取和接入,還需要支持第三方監控源的數據接入,才能做壹個完整的統壹監控平臺。
能力層主要考慮監測的基礎通用能力,包括數據采集模塊、數據存儲模塊、數據處理模塊、數據檢測模塊和AI分析模塊。
功能層需要貼近用戶的使用場景,主要包括管理和展示功能,在建設過程中可以不斷豐富功能場景。
另外,考慮到數據的相關性,為以後的數據分析打下基礎。監控和CMDB也需要緊密聯系,所有被監控的對象都應該由CMDB管理。此外,還可以配置驅動監控為指導理念,實現自動在線和離線監控,通過報警通知自動識別負責人,簡化監控的維護管理。
為了統壹企業中的監控平臺,我們需要配備相應的管理系統,其中最重要的是指標管理系統。
指標管理系統的核心思想:
監測指標體系以CMDB為骨架,以監測指標為經脈,有機整合了整個統壹監測平臺的數據。
通過指標的生命周期管理,輔以指標的管理規範,保證監測平臺的長期有序運行。
從企業業務應用的角度來看,企業監控的對象壹般分為六層,也可以根據企業自身情況進行調整:
基礎設施層
硬件設備層
操作系統層
組件服務層
應用性能層
業務運營層