1. 程式人生 > >Prometheus+Grafana+Alertmanager搭建全方位的監控告警系統

Prometheus+Grafana+Alertmanager搭建全方位的監控告警系統

## prometheus安裝和配置 ### prometheus元件介紹 **1.Prometheus Server**: 用於收集和儲存時間序列資料。 **2.Client Library**: 客戶端庫,檢測應用程式程式碼,當Prometheus抓取例項的HTTP端點時,客戶端庫會將所有跟蹤的metrics指標的當前狀態傳送到prometheus server端。 **3.Exporters**: prometheus支援多種exporter,通過exporter可以採集metrics資料,然後傳送到prometheus server端 **4.Alertmanager**: 從 Prometheus server 端接收到 alerts 後,會進行去重,分組,並路由到相應的接收方,發出報警,常見的接收方式有:電子郵件,微信,釘釘, slack等。 **5.Grafana**:監控儀表盤 **6.pushgateway**: 各個目標主機可上報資料到pushgatewy,然後prometheus server統一從pushgateway拉取資料。 ### prometheus架構圖 ![img](https://img2020.cnblogs.com/blog/2231162/202102/2231162-20210222163155673-2003396379.png)   從上圖可發現,Prometheus整個生態圈組成主要包括prometheus server,Exporter,pushgateway,alertmanager,grafana,Web ui介面,Prometheus server由三個部分組成,Retrieval,Storage,PromQL 。 - retrieval負責在活躍的target主機上抓取監控指標資料 - storage主要是把採集到的資料儲存到磁碟中 - promQL是prometheus提供的查詢語言模組 #### prometheus工作流程 1. Prometheus server可定期從活躍的(up)目標主機上(target)拉取監控指標資料,目標主機的監控資料可通過配置靜態job或者服務發現的方式被prometheus server採集到,這種方式預設的pull方式拉取指標;也可通過pushgateway把採集的資料上報到prometheus server中;還可通過一些元件自帶的exporter採集相應元件的資料; 2. Prometheus server把採集到的監控指標資料儲存到本地磁碟或者資料庫; 3. Prometheus採集的監控指標資料按時間序列儲存,通過配置報警規則,把觸發的報警傳送到alertmanager 4. Alertmanager通過配置報警接收方,傳送報警到郵件,微信或者釘釘等 5. Prometheus 自帶的web ui介面提供PromQL查詢語言,可查詢監控資料 6. Grafana可接入prometheus資料來源,把監控資料以圖形化形式展示出 ### 安裝node-exporter元件 ​ node-exporter是採集機器(物理機、虛擬機器、雲主機等)的監控指標資料,能夠採集到的指標包括CPU, 記憶體,磁碟,網路,檔案數等資訊。 #### 實驗環境 ​ 一個master節點,一個node節點。 #### 在master節點操作 ```bash cat >node-export.ya