前篇已經提到過監控系統的重要性,那麼一個較爲良好的監控系統應該從哪幾方面上手的呢?我我的理解能夠經過如下幾個方面入手:算法
大體從以上幾點開始,下面咱們簡單來介紹上面所說。服務器
當下各個企業的產品不一樣,業務方向不一樣,程序代碼不一樣,系統架構更不一樣,對於各個地方的細節都須要有必定程度的認知才能夠開啓設計的源頭。網絡
好比,咱們以系統架構爲例,若是你是老牌服務 VS 微服務 我相信面向服務的監控體系必定會比面向主機監控更加順暢的多;又好比Python亦或者Java,更甚者PHP都有着不一樣的監控體系,因此這裏要根據自身狀況相結合進行合理的選擇。架構
分類監控,咱們將須要的監控項進行整合分類便於後期管理實施的便捷性,那麼通常可分爲:業務級別監控、系統級別監控、網絡監控、程序代碼監控、日誌監控、用戶行爲分析監控、其餘種類監控。運維
舉例來如,以下:微服務
目前各類監控軟件層出不窮,包括開源的、商業的、自行開發的等幾百種的可選方案;選取呢應該針對企業的架構特色,大小,種類,人員多少 等等 選取合適的技術方案,而不該該熟悉那個則上那個,那樣可能會給後期擴展升級帶來巨大的挑戰。工具
運維團隊自身就應該將相關任務進行消化掉,同時劃分相關項目功能模塊,責任到人;中間難免須要開發團隊的配合,不少監控設計的工做,也須要尋求開發人員配合才能夠進行。性能
監控系統首選須要評估,存儲週期,高可用問題,以及多AZ(多機房,多可用區)問題,根據存在的這個問題咱們進行選擇部署形式。測試
目前來講,數據採起形式多爲Agent採起;工具多爲一下幾種:lua
數據採集通常分爲兩種形式:
若是你不配置對數據的分析(有些分析須要算法的加持),那麼存放在哪裏的只是一堆沒用的數據;當咱們可以把數據轉化成爲監控公式
與報警的閾值
才能發揮出監控本該有的意義。
好比:CPU狀態,傳統監控多爲採用系統負載load
來判斷系統繁忙狀態, 那你如何肯定是用戶態仍是系統態,以及更多的信息呢? 假如咱們經過算法對CPU使用狀況統計5分鐘的增加比率超過0.8,同時持續了30分鐘呢?是否是比load
更加能夠清晰呢。
無論採集形式如何,只要運行才Linux上,多會對系統有或多或少的影響,因此穩定性測試,就是經過一段時間的觀測,確保能平滑上線。
隨着業務量增大,機器、服務增多咱們就須要對監控值進行管理以及Agent的擴展等問題,自動化的由於會很大程度上縮短咱們對監控系統的維護成本。
我這裏推薦: Ansible,有興趣的小夥伴能夠了解下。
想想酷炫的大屏;採集的數據和準備好的算法相結合,就能夠作出一個很是棒的圖形展現,好比:多數據源聚合展現,多源對比等等。
因此,監控成圖也是很重要的一個點。
上面扯了一堆,其實咱們須要結合自身實際狀況以及將來的發展趨勢來作設計便可。