設計監控系統的可靠過程是什麼?
簡短版本:我有一個大約 400 台主機的異構環境,使用 Groundwork/Nagios 進行監控。目前的檢查、主機組和服務組已經以一種有機的、即席的方式組合在一起。我的任務是從根本上重建監控設置。
我之前的演出涉及不到 20 台機器,沒有嚴格的下班後正常執行時間要求,由 Munin 監控——這超出了我的經驗。在基地,我正在尋找一個可以解決此任務的過程。
我有一個模糊的概念,即為最終使用者服務設計高級端到端檢查——比如試圖登錄我們網站的爬蟲——然後將一組更具體的標準檢查設置為依賴檢查- 諸如檢查 httpd 是否正在執行、主機是否可以通過網路使用、在堆棧中可用的東西 - 並且只有在高級檢查失敗時才執行較低級別的檢查,作為提供對根本原因的可見性同時最小化系統壓力的一種方式. 我通常也在考慮按環境劃分主機,以便團隊只能在下班後從生產箱中獲取頁面,諸如此類。
這是理智的嗎?是否有設計監控系統的最佳實踐方法?我有信心從我們目前不太理想的設置遷移到設計更好的設置,但我想要一些更老練的指導,了解如何首先設計一個理想的設置。
為了擴展我的評論並希望能給你一些指導,你可能想從Kyle 的部落格文章中得到什麼(還有這篇文章,都在我的設計監控系統的人必讀參考資料列表中)是失敗是通常不是一件事出錯——而是十件事出錯。
一個像樣的監控系統的工作是在這 10 件事真正取消你的服務並影響面向客戶的東西之前抓住它們。
下面的內容絕不是詳盡或完整的,但與我處理監控設置的方法非常相似,應該讓你朝著正確的方向前進:
要弄清楚你想要監控什麼,你首先需要考慮什麼會導致事情失敗。
其中一些很常見
其中許多可以從 Kyle 的文章中抄襲,因此我不會列出它們,但是您希望收到有關PRE-FAILURE條件的通知 - 例如RAID5中的一個驅動器發生故障 - 現在更換它並避免以後停機。 2. 其他取決於您的基礎架構/設計並包括對其他服務的依賴
如果您正在執行一個數據庫支持的網站並且數據庫已關閉,您的網站將無法執行 2. 查看依賴關係並建構依賴關係樹。
(在您管理的數據中心中,您可以隨心所欲:在我的上一份工作中,我們是一家託管公司,我們的監控系統與我們的 UPS、發電機和冷卻系統進行了通信,以使我們及時了解它們的狀態) 3. 有了所有這些資訊,您就可以決定哪些可以主動監控,哪些只能被動響應
(例如,“網路電纜被拉出”會導致任何伺服器停機,但是否值得監控交換機埠的狀態,或者你希望那是“它倒下了,我必須去看看它”的情況嗎?)。
只剩下選擇監控軟體來實現您的願景的任務。此選擇應基於哪個包可以讓您監控所有(或大部分)理想列表,並且實際上將考慮包之間的價格差異。