03-淺談監控與報警

前言

「報警」,「監控」都是一個大問題,並且搞很差還會有如下問題:數據庫

  • 監控不到位,每每是被別人告知故障的發生;
  • 報警信息雜亂,產生免疫力;
  • 遇到驗證故障時無處開刀;

So~, 帶着上面的痛點咱們來解析下正確的監控報警的姿式。後端

一、基於用戶監控

經過標題咱們也不難發現,監控的核心應該是基於用戶的監控,還有另一種說話叫作「基於症狀的監控」,同時還有另一種監控方式「基於緣由的監控」。咱們更加推薦基於用戶監控,好比:做爲你產品的用戶不會去關心你的MySQL是不是健康的,而用戶關心的是輸出是否可以正常加載,功能是否正常使用。瀏覽器

一般用戶關心問題老是少數的,如:緩存

  • 服務的可用性,沒有500,沒有缺乏Javascript或CSS或圖像或視頻,等或者其餘影響用戶體驗的問題;
  • 是否是夠快,網頁加載慢如烏龜;
  • 功能,上線新的功能對用戶的體驗;
  • 安全性,好比你某某帳戶中的資產;

數據庫服務器和用戶以前存在微妙的關係,但重要的區別是不可用用戶數據不可用; 前者是近因,後者是症狀。咱們不能老是的清楚區分這些東西,特別是咱們沒有模仿用戶的監控方式(黑盒監控);若是有條件咱們應該配備上。安全

基於緣由的警報很糟糕,但有時是必要的;可是,你可能會說,我知道沒法訪問的數據庫服務器從而致使用戶數據不行。不要緊。警告數據不可用和警告症狀500、白盒指標,這裏請注意並不是全部服務器都是從數據庫中獲取的客戶。服務器

  • 不管如何,你將不得不抓住這個症狀。也許它可能發生,由於網絡斷開或CPU爭用,又或你沒有的無數其餘問題想到了。因此你必須抓住這個症狀。
  • 一旦發現症狀和緣由,就會有冗餘警報; 這些須要單獨調整,並致使重複或複雜的依賴規則;
  • 據稱不可避免的結果並不是老是不可避免的:也許是你的數據庫服務器不可用,由於您正在啓動新實例或拒絕舊實例一。或者可能添加了一項功能來執行請求的快速故障轉移,所以您不須要關心單個服務器的可用性。固然,你能夠捕獲全部這些狀況隨着規則愈來愈複雜,但爲何要這麼麻煩?

但有時他們是必要的。 (一般)沒有「幾乎」用完配額的症狀或內存或磁盤I / O等,因此你想要規則知道你正走向懸崖。使用這些要謹慎;不要爲你能夠捕獲的症狀編寫基於緣由的監控項規則。網絡

1.1 故障

最佳的故障告警每每是來自客戶端的信息,例如:負載均衡

  • 客戶端能夠看到重試的結果、客戶端和服務器之間的網絡延遲,以及與服務器相比能夠更好地瞭解面向用戶的延遲和錯誤;
  • 在許多狀況下,客戶端正在聚合響應來自許多後端,如緩存服務、數據庫、權限服務,其餘服務等;
  • 在許多狀況下,客戶端能夠呈現比後端更簡單的故障信息。對於例如:若是搜索分片服務器出現問題,數百個查詢服務器,則每一個查詢服務器也都有有限的警報源。

於許多服務而言,這意味着警告最前面的負載平衡器所看到的內容延遲,錯誤等;這樣,也只能看到服務器損壞的結果把它交給用戶;相反,經過客戶端你看到的問題比你看到的更多。
從服務器來講,若是他們所有關閉,或服務超時60s,或降低10%的鏈接,您的負載均衡器知道,但您的服務器可能不知道。工具

也須要注意,走得太遠可能會引入超出控制問題。例如能夠可靠地捕獲用戶看到的確切內容(例如,經過瀏覽器端),這很是棒!可是,信息充滿噪音的(他們的ISP,瀏覽器)。調試

1.2 緣由規則

基於緣由的規則仍然有用。特別是,它們能夠幫助您快速跳到已知的狀態生產系統不足。

若是你在將症狀綁定到緣由上得到了不少價值,推薦技巧:

  • 編寫表示緣由的規則時,請檢查症狀是否正確也抓住了;
  • 每一個監控項中觸發的全部基於緣由的規則的簡要發出,能夠快速瀏覽能夠肯定他們剛剛得到的症狀;
  • 刪除或調整有噪聲或持久性或其餘低值的基於緣由的規則;

若是調試儀表板可讓您從症狀中快速移動到緣由改善,不管如何,你不須要花時間在基於緣由的規則上。

二、報警

不管如何,有一些須要儘快注意的警報,但如今不是;而是應該注意哪些緊急狀態的。

推薦報警技巧:

  • 有警報打開錯誤能夠解決很好,只要同一警報的屢次發出都能正確地鏈接成一個錯誤;若是沒有對其分類和抑制該系統將失敗;
  • 報警信息要對應到人,否則這就是垃圾信息;
  • 或許在有些時候,還須要報警升級的功能;

2.1 手冊

手冊是警報系統的重要組成部分; 最好有一個事件或者條目對於捕獲症狀的每一個警報或警報系列,能夠進一步解釋警報的內容手段以及如何解決。

通常來講,若是你的手冊有一個很長的詳細流程圖,這個記錄可能出錯的東西和修復它的時間太少 ,除非是根緣由徹底超出你的控制或從根本上須要人爲干預。我見過的最好的手冊有一些關於確切警報的註釋意味着什麼,以及目前有關警報的內容,大多數這樣的筆記應該是短暫的,因此WIKI是一個很好的工具。

2.2 跟蹤和完善

跟蹤一個監控項和全部其餘提醒:若是一個故障被髮出,人們只是說「我看了,沒有錯「,那說明你須要刪除監控規則,或降級或以其餘方式收集數據。

創建一個系統(例如每週審查全部監控項和季度統計數據)能夠幫助處理正在發生的事情的大局,並梳理丟失的故障信息。

相關文章
相關標籤/搜索