prometheus是乙個開源的監控系統,它從應用程式中實時獲取時間序列資料,然後通過功能強大的規則引擎,幫助你識別監控環境所需的資訊。
本書將指導你使用prometheus來構建監控系統,重點將放在**動態雲環境、kubernetes環境和容器環境的監控。**同時,我們還將研究如何從應用程式獲取資料並將這些資料用於警報和視覺化。
從技術角度來看,監控(monitoring)是衡量和管理技術系統的工具和流程。但監控遠不止於此,監控將系統和應用程式生成的指標轉換為對應的業務價值。你的監控系統會將這些指標轉換為衡量使用者體驗的依據,該依據為業務提供反饋,以確保為客戶提供了所需的產品。
監控系統的兩個客戶:技術、業務
可以通過監控來了解技術環境狀況,還可以幫助檢測、診斷和解決技術環境中的故障和問題(尤其是在影響使用者之前)。監控提供了大量的資料,幫助洞察關鍵的產品和技術決策,並衡量這些專案是否成功。監控也是產品管理生命週期以及與內部客戶關係的基礎,有助於驗證專案資金是否得到充分利用。
監控系統是為了支援業務,並確保業務持續開展。監控可以提供報告,使企業能夠進行良好的產品和技術投資,還有助於企業衡量技術帶來的價值。
監控是管理基礎設施和業務的核心工具。監控也是必需的,應該和應用程式一起構建和部署。沒有監控,你將無法了解你的系統環境、進行診斷故障、制定容量計畫,也無法向組織提供系統的效能、成本和狀態等資訊。
google服務層次結構圖
對於任何應用程式開發方法,在構建之前確定要構建的內容都是個好主意。遺憾的是,有一種常見的反模式,即將監控和其他運維工作(比如安全性)視為應用程式的增值元件而非核心功能。與安全性一樣,監控也應該是應用程式的核心功能。如果你要為應用程式構建規範或使用者故事,那麼務必先把應用程式每個元件的監控指標考慮進來,千萬不要等到專案結束或部署之前再做這件事情。
許多環境都會為所有應用程式建立貨物崇拜式的監控系統**。團隊始終復用他們過去使用的檢查機制,而不會為新系統或應用程式進行更新。乙個常見的例子是監控每台主機上的cpu、記憶體和磁碟**,但不監控可以指示主機上應用程式是否正常執行的關鍵服務。如果應用程式在你沒有注意到的情況下發生故障,那麼即使進行了監控,你也需要重新考慮正在監控的內容是否合理。
根據服務價值設計自上而下的監控系統是乙個很好的方式,這會幫助明確應用程式中更有價值的部分,並優先監控這些內容,再從技術堆疊中依次向下推進。
這個反模式的乙個常見形式是雖然監控了主機上的服務狀態,但不夠準確。例如,通過檢查http 200狀態碼可以監控web應用程式是否正常執行,它會告訴你應用程式正在響應請求,但並不會反映出是否返回了正確的資料。因此需要找準服務監控的內容——例如,監控業務事務的內容或速率,而不是監控它執行的web伺服器的執行時間。你會獲得兩種好處:如果服務因配置錯誤、程式bug或受損而導致內容不正確,你會及時檢視到;而如果內容因底層web服務而出現錯誤,你同樣也會知道。
另一種反模式是使用靜態閾值——例如**,如果主機的cpu使用率超過80%就發出警報**。這種檢查通常是不靈活的布林邏輯或者一段時間內的靜態閾值,它們通常會匹配特定的結果或範圍,這種模式沒有考慮到大多數複雜系統的動態性。閾值的匹配或許很重要,但它可能由異常事件觸發,甚至可能是自然增長的結果。
為了更好地監控,我們需要檢視資料視窗,而不是靜態的時間點,需要使用更智慧型的技術來分析指標和閾值。
對於許多監控工具來說,設定監控週期都是一項挑戰,一般預設檢查週期設定了乙個較大的值——例如,每隔5~15分鐘僅檢查一次應用程式。這通常會導致檢查之間發生的關鍵事件丟失。你應該頻繁地監控應用程式,以獲得以下好處:
監控系統很差或者沒能正確實施的常見原因是它很難實現。如果你讓應用程式開發人員覺得監測應用程式、收集資料或視覺化很難完成,那麼他們可能就不會去做這些事。如果監控的基礎設施是手動維護的,或者過於複雜,那麼由此產生的問題將導致監控系統落後或者發生故障,然後你會花費更多的時間來修復和維護監控系統,而不是監控這件事本身。
應盡可能使監控系統的實施和部署自動化:
乙個良好的監控系統應該能提供以下內容:
Prometheus 監控基礎與概述
監控乙個系統有多個原因,包括如下幾項 趨勢分析 資料庫當前的資料量,以及增長速度,又比如日活使用者的增長數量 跨時間範圍的比較,或是找出各組之間的區別 使用apache 與 nginx 作web伺服器,哪個速度更快?增加node數量,memcache的快取命中率是否增加,是否比上週的訪問速度加快?警...
Prometheus 監控節點
tar xf node exporter 0.18.1.linux amd64.tar.gz cd node exporter 0.18.1.linux amd64 cp node exporter usr local bin 檢視版本 root server03 media prometheus ...
prometheus監控exporter部署
harbor exporter docker run d p 9107 9107 restart always network harbor harbor add host mec hub.21cn.com x.x.x.x e harbor username admin e harbor passw...