prometheus監控k8s叢集

Edgar.z發表於2020-11-04

簡介

  • 在日常的運維工作中,為了減少業務故障的發現和解決時間,通常是需要監控系統的支援,zabbix作為常用監控手段,並不足以滿足kubernetes叢集的監控,而Prometheus可以更好的進行相關指標的監控。
  • 監控的四個黃金指標分為“延遲,通訊量,錯誤,飽和度”。
  • 從網路到編排的指標及手段可以檢視下面圖片
    指標及監控手段

環境介紹

kubernetes 1.16.4

安裝部署

涉及到的部署檔案已經放到了github,需要自取,另外不要臉的求點個5星好評。
github地址:

https://github.com/zhangyudd/prometheus.git

本文涉及到Prometheus儲存,使用了pvc,可自行更換儲存。

部署metrics

cd metrics/kube-state-metrics
kubectl apply -f .
cd metrics/
kubectl apply -f .

部署prometheus

cd prometheus
kubectl apply -f .

拷貝rules到容器對應儲存目錄 /prometheus/
如果修改了配置檔案可以進行熱更:curl -X POST http://prometheus/-/reload

部署alertmanager

cd alertmanager
kubectl apply -f .

這裡使用的郵箱,修改對應的郵箱為自己郵箱。

部署node-exporter

cd node-exporter
kubectl apply -f .

部署blackbox-exporter

cd blackbox-exporter
kubectl apply -f .

service 發現需要在service中新增以下欄位
#http_probe
annotations:
prometheus.io/scrape: ‘true’
prometheus.io/http-probe: ‘true’
prometheus.io/http-probe-port: ‘8080’
prometheus.io/http-probe-path: ‘/healthz’
#tcp_probe
annotations:
prometheus.io/scrape: ‘true’
prometheus.io/tcp-probe: ‘true’
prometheus.io/tcp-probe-port: ‘80’

檢視所有pod狀態

kubectl get pods -n kube-system

部署完成後可以新增Prometheus和alertmanager的ingress,方便檢視狀態及問題。

檢視介面及日誌,確認執行狀態

在這裡插入圖片描述
在這裡插入圖片描述

新增grafana資料來源展示圖表

url填寫以下連結:
http://prometheus.kube-system:9090/

以下為一些監控常用圖表:
12870 這個模板是kube-state-metrics採集的各種k8s資源物件的狀態的圖表
315這個模板是cadvisor採集的各種指標的圖表
1860 和 9276 這個模板是node-exporter採集的各種主機相關的指標的圖表
6417這個模板是kube-state-metrics採集的各種k8s資源物件的狀態的圖表
4859和4865這兩個模板是blackbox-exporter採集的服務的http狀態指標的圖表(兩個效果基本一樣,選擇其一即可)
5345這個模板是blackbox-exporter採集的服務的網路狀態指標的圖表
11529和9965blackbox採集的關於http tcp探針

相關文章