「報警」,「監控」都是一個大問題,並且搞很差還會有如下問題:數據庫
So~, 帶着上面的痛點咱們來解析下正確的監控和報警的姿式。後端
經過標題咱們也不難發現,監控的核心應該是基於用戶的監控,還有另一種說話叫作「基於症狀的監控」,同時還有另一種監控方式「基於緣由的監控」。咱們更加推薦基於用戶監控,好比:做爲你產品的用戶不會去關心你的MySQL是不是健康的,而用戶關心的是輸出是否可以正常加載,功能是否正常使用。瀏覽器
一般用戶關心問題老是少數的,如:緩存
數據庫服務器和用戶以前存在微妙的關係,但重要的區別是不可用
和用戶數據不可用
; 前者是近因,後者是症狀。咱們不能老是的清楚區分這些東西,特別是咱們沒有模仿用戶的監控方式(黑盒監控);若是有條件咱們應該配備上。安全
基於緣由的警報很糟糕,但有時是必要的;可是,你可能會說,我知道沒法訪問的數據庫服務器從而致使用戶數據不行。不要緊。警告數據不可用和警告症狀500、白盒指標,這裏請注意並不是全部服務器都是從數據庫中獲取的客戶。服務器
但有時他們是必要的。 (一般)沒有「幾乎」用完配額的症狀或內存或磁盤I / O等,因此你想要規則知道你正走向懸崖。使用這些要謹慎;不要爲你能夠捕獲的症狀編寫基於緣由的監控項規則。網絡
最佳的故障告警每每是來自客戶端的信息,例如:負載均衡
於許多服務而言,這意味着警告最前面的負載平衡器所看到的內容延遲,錯誤等;這樣,也只能看到服務器損壞的結果把它交給用戶;相反,經過客戶端你看到的問題比你看到的更多。
從服務器來講,若是他們所有關閉,或服務超時60s,或降低10%的鏈接,您的負載均衡器知道,但您的服務器可能不知道。工具
也須要注意,走得太遠可能會引入超出控制問題。例如能夠可靠地捕獲用戶看到的確切內容(例如,經過瀏覽器端),這很是棒!可是,信息充滿噪音的(他們的ISP,瀏覽器)。調試
基於緣由的規則仍然有用。特別是,它們能夠幫助您快速跳到已知的狀態生產系統不足。
若是你在將症狀綁定到緣由上得到了不少價值,推薦技巧:
若是調試儀表板可讓您從症狀中快速移動到緣由改善,不管如何,你不須要花時間在基於緣由的規則上。
不管如何,有一些須要儘快注意的警報,但如今不是;而是應該注意哪些緊急狀態的。
推薦報警技巧:
手冊是警報系統的重要組成部分; 最好有一個事件或者條目對於捕獲症狀的每一個警報或警報系列,能夠進一步解釋警報的內容手段以及如何解決。
通常來講,若是你的手冊有一個很長的詳細流程圖,這個記錄可能出錯的東西和修復它的時間太少 ,除非是根緣由徹底超出你的控制或從根本上須要人爲干預。我見過的最好的手冊有一些關於確切警報的註釋意味着什麼,以及目前有關警報的內容,大多數這樣的筆記應該是短暫的,因此WIKI是一個很好的工具。
跟蹤一個監控項和全部其餘提醒:若是一個故障被髮出,人們只是說「我看了,沒有錯「,那說明你須要刪除監控規則,或降級或以其餘方式收集數據。
創建一個系統(例如每週審查全部監控項和季度統計數據)能夠幫助處理正在發生的事情的大局,並梳理丟失的故障信息。