Prometheus+Grafana+Alertmanager搭建全方位的監控告警系統
阿新 • • 發佈:2021-02-26
## 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