1. 程式人生 > >你需要精通一種監控系列

你需要精通一種監控系列

在我們的工作中,尤其是運維行業,監控無疑必不可少,監控是我們的第三隻眼睛,面對眾多的伺服器和應用,我們作為運維人員不可能每天去巡查每臺伺服器的每個應用程式和系統狀態,而監控系統則能供幫我們完成這一項任務,當應用與系統出現一些不好的狀況,監控系統可以通過郵件,微信或者簡訊的多種方式及時傳遞給我們,使得我們可以及時發現及時處理以保證業務連續穩定提供給外部。

監控對於IT行業並不陌生,幾乎所有的IT人員與應用系統都會使用到監控,向我們最早接觸的Nagios監控zabbix監控,其中zabbix監控系統是現在最主流的監控系統使用人數也非常多,主要是zabbix比較老牌,監控功能強大,監控項齊全並且模板眾多並且資料也比較完善使得它在IT行業佔據絕對位子。但是今天我的這一系列文件的主角是卻不是zabbix而是一款開源的並且很強大的監控系統Prometheus它不僅可以監控物理機和虛擬機器並且對容器(Kubenetes)支援特別好,現在容器化平臺也基本上都使用Prometheus來監控。

Prometheus是什麼

Prometheus(普羅米修斯)開源監控系統。它支援多維度的指標資料模型,服務端通過HTTP協議定時拉取資料後,通過靈活的查詢語言,實現監控的目的。

客戶端記錄相關指標資料,對外提供查詢介面。Prometheus服務端通過伺服器發現機制找到客戶端,並定時抓取儲存為時間序列資料。最後通過Grafana等圖表工具整合展示。

a0c5b9a7fae28e0ddda9d92822b9f472992.jpg

Prometheus可以做什麼

  • 在業務層用作埋點系統
    Prometheus支援各個主流開發語言(Go,java,python,ruby官方提供客戶端,其他語言有第三方開源客戶端)。我們可以通過客戶端方面的對核心業務進行埋點。如下單流程、新增購物車流程。

  • 在應用層用作應用監控系統
    一些主流應用可以通過官方或第三方的匯出器,來對這些應用做核心指標的收集。如redis,mysql

  • 在系統層用作系統監控
    除了常用軟體, prometheus也有相關係統層和網路層exporter,用以監控伺服器或網路。

  • 整合其他的監控
    prometheus還可以通過各種exporte,整合其他的監控系統,收集監控資料,如AWS CloudWatch,JMX,Pingdom等等

 它的強大不僅是說說而已。本系列文件可能理論的東西偏少一點實驗的內容偏多一些,如果各位想要了解詳細的理論體系可以訪問https://prometheus.io,我的目的也很簡單畢竟有的時候我們需要使用一個東西迫於時間的問題很多情況是先使用然後再全面瞭解這