基於prometheus監控k8s叢集
本文建立在你已經會安裝prometheus服務的基礎之上,如果你還不會安裝,請參考:prometheus多維度監控容器
前言
kubernetes顯然已成為各大公司親睞的容器編排工具,各種私有云公有云平臺基於它構建,那麼,我們怎麼監控叢集中的所有容器呢?目前有三套方案:
heapster+influxDB
heapster為k8s而生,它從apiserver獲取節點資訊,每個節點kubelet內含了cAdvisor的功能,暴露出api,heapster通過訪問這些端點得到容器監控資料。它支援多種儲存方式,大家常用的的就是influxDB。這套方案的缺點是缺乏報警等功能,influxDB的單點問題。因此本方案適合需求是隻要實時監控展示。
heapster+hawkular
本方案解決了上面方案的問題,並且大大提升了監控的高可用性和高效能。比較重量級,適合大型叢集的監控。目前hawkular開源不久。功能完善。有興趣可以研究。本文不做詳細介紹。
prometheus
本方案下文詳細敘述。
k8s支援prometheus
prometheus作為一個時間序列資料收集,處理,儲存的服務,能夠監控的物件必須直接或間接提供prometheus認可的資料模型,通過http api的形式暴露出來。我們知道cAdvisor支援prometheus,同樣,包含了cAdivisor的kubelet也支援prometheus。每個節點都暴露了供prometheus呼叫的api。
prometheus支援k8s
prometheus獲取監控端點的方式有很多,其中就包括k8s,prometheu會通過呼叫master的apiserver獲取到節點資訊,然後去調取每個節點的資料。
配置方式
以下為一個簡單的配置例子
global:
scrape_interval: 20s
scrape_timeout: 10s
evaluation_interval: 20s
scrape_configs:
- job_name: 'kubernetes-nodes-cadvisor'
kubernetes_sd_configs:
- api_server: 'http://<YOUR MASTER IP>:8080'
role: node
relabel_configs:
- action: labelmap
regex: __meta_kubernetes_node_label_(.+)
- source_labels: [__meta_kubernetes_role]
action: replace
target_label: kubernetes_role
#將預設10250埠改成10255埠
- source_labels: [__address__]
regex: '(.*):10250'
replacement: '${1}:10255'
target_label: __address__
#以下是監控每個宿主機,需要安裝node-exporter
- job_name: 'kubernetes_node'
kubernetes_sd_configs:
- role: node
api_server: 'http://172.16.100.101:8080'
relabel_configs:
- source_labels: [__address__]
regex: '(.*):10250'
replacement: '${1}:9100'
target_label: __address__
以上為prometheus的配置,如上配置會監控每個節點的容器資訊和節點監控資訊。需要在k8s中部署node-exporter pod,yaml檔案如下:
apiVersion: v1
kind: Service
metadata:
annotations:
prometheus.io/scrape: 'true'
labels:
app: node-exporter
name: node-exporter
name: node-exporter
spec:
clusterIP: None
ports:
- name: scrape
port: 9100
protocol: TCP
selector:
app: node-exporter
type: ClusterIP
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
name: node-exporter
spec:
template:
metadata:
labels:
app: node-exporter
name: node-exporter
spec:
containers:
- image: prom/node-exporter
name: node-exporter
ports:
- containerPort: 9100
hostPort: 9100
name: scrape
hostNetwork: true
hostPID: true
node-exporter啟動成功後,啟動prometheus即可監控到叢集的宿主機和容器狀態資訊。監控端點如下圖:
進階
不僅監控容器狀態,經過k8s,prometheus可以獲取到部署到叢集中的所有服務。如果是一個exporter服務,依然可以被prometheus收集。prometheus配置檔案中
- role: node
role支援:node
,pod
,service
,endpoints
具體的效果你自己去嘗試吧。。
相關推薦
基於prometheus監控k8s叢集
本文建立在你已經會安裝prometheus服務的基礎之上,如果你還不會安裝,請參考:prometheus多維度監控容器 前言 kubernetes顯然已成為各大公司親睞的容器編排工具,各種私有云公有云平臺基於它構建,那麼,我們怎麼監控叢集中的所有容器
利用prometheus監控K8S
分布式文件 分布式文件系 現在 created hub vision 應該 ava ets prometheus它是一個主動拉取的數據庫,在K8S中應該展示圖形的grafana數據實例化要保存下來,使用分布式文件系統加動態PV,但是在本測試環境中使用本地磁盤,
從零開始搭建K8S--如何監控K8S叢集日誌
開發十年,就只剩下這套架構體系了! >>>
K8S Canal基於Prometheus進行實時指標監控
[文章來源於本人的印象筆記,如出現格式問題可訪問該連結檢視原文](https://app.yinxiang.com/fx/c1c8b0bd-1d81-4b3b-ac75-e05bd0955e6f) ## 部署canal的prometheus監控到k8s中 1、grafana的docker部署方式;https
基於prometheus+grafana 搭建監控mysql redis mongodb等
基於prometheus+grafana 搭建監控mysql redis mongodb等先把題目定好,具體待這幾天整理我的筆記補充進來。官方網站https://prometheus.io/ 參考文檔:http://www.cnblogs.com/sfnz/p/6566951.htmlhttp://www.j
360 基於 Prometheus的在線服務監控實踐
高可用方案 通用 qss stack 語句 監控系統 參考 穩定性 counter類 轉自:https://mp.weixin.qq.com/s/lcjZzjptxrUBN1999k_rXw 主題簡介: Prometheus基礎介紹 Prometheus打點
k8s與監控--解讀prometheus監控kubernetes的配置文件
集成 配置 監控部署 http lac cpu 終端 接口 cadvisor 前言Prometheus 是一個開源和社區驅動的監控&報警&時序數據庫的項目。來源於谷歌BorgMon項目。現在最常見的Kubernetes容器管理系統中,通常會搭配Prometh
部署 Prometheus Operator 監控 Kubernetes 叢集
目錄 1、Prometheus Operator 介紹 2、環境、軟體準備 3、相關映象準備 4、Minikube 升級並配置 4.1、Miniku
k8s叢集監控
目前,監控K8S叢集較為流行的方案如下: 方案一:Heapster + influxDB + Grafana Heapster 是 Kubernetes 原生的叢集監控方案。Heapster 以 Pod 的形式執行,在其配置檔案內傳入kubernetes master的地
如何在多Kubernetes叢集和多租戶環境中使用Prometheus監控
過去十年裡,我一直在虛擬化和雲端計算領域工作,在VMware、Mercury Interactive和Oracle領導產品管理工作,並格外關注DevOps方向。直到2014年,我開始認真關注並研究容器。當2015年Kubernetes面向大眾推出時,我強烈地感受到,企業需要一種更簡
基於Prometheus和Grafana進行效能監控_Kubernetes中文社群
1、Prometheus介紹和架構 1.1 Prometheus介紹 Prometheus是一個開源的系統監視和警報工具包,自2012成立以來,許多公司和組織採用了Prometheus。它現在是一個獨立的開源專案,並獨立於任何公司維護。在2016年,Prometheus加入雲端計算基金會作為K
基於Kubernetes(k8s)的RabbitMQ 叢集_Kubernetes中文社群
目前,有很多種基於Kubernetes搭建RabbitMQ叢集的解決方案。今天筆者今天將要討論我們在Fuel CCP專案當中所採用的方式。這種方式加以轉變也適用於搭建RabbitMQ叢集的一般方法。所以如果你想要設計自己的解決方案,你應該收集一些更符合你定製化需求的文章。 命名你的叢集 在Ku
Prometheus監控實踐:Kubernetes叢集監控_Kubernetes中文社群
本文將總結一下我們目前使用Prometheus對Kubernetes叢集監控的實踐。 我們選擇Prometheus作為監控系統主要在以下各層面實現監控: 基礎設施層:監控各個主機伺服器資源(包括Kubernetes的Node和非Kubernetes的Node),如CPU,記憶體,網路吞吐和頻
基於Prometheus&Grafana的監控方案[2]-安裝配置
架構 這裡我們用第三方的exporter採集機器資料,prometheus直接從exporter的例項pull資料,然後用grafana展現和告警。 grafana可以選擇多個數據來源,所以機器較多時,我們可以配置多個prometheus彙集資料,再統一
基於Prometheus搭建SpringCloud全方位立體監控體系
前提 最近公司在聯合運維做一套全方位監控的系統,應用叢集的技術棧是SpringCloud體系。雖然本人沒有參與具體基礎架構的研發,但是從應用引入的包和一些資料的查閱大致推算出具體的實現方案,這裡做一次推演,詳細記錄一下整個搭建過程。 Prometheus是什麼 Prometheus(普羅米修斯,官網是http
基於Prometheus做多維度的容器監控
什麼是prometheus? prometheus從官方介紹來說,他是一個開源的系統監控和報警工具,最初由SoundCloud推出。自2012成立以來,許多公司和組織都採用了prometheus,專案
基於 kubeadm 部署單控制平面的 k8s 叢集
單控制平面不符合 HA 要求,但用於開發/測試環境不會有任何問題,如果資源足夠的話(10臺以上伺服器,3臺用於APIserver、3臺用於 etcd 儲存、至少3臺用於工作節點、1臺作為負載均衡),可以部署多控制平面的高可用叢集環境。下面是高可用叢集拓補結構,供參考: 安裝步驟其實大同小異,高可用多了幾個
基於Prometheus和Grafana的監控平臺 - 環境搭建
相關概念 微服務中的監控分根據作用領域分為三大類,Logging,Tracing,Metrics。 Logging - 用於記錄離散的事件。例如,應用程式的除錯資訊或錯誤資訊。它是我們診斷問題的依據。比如我們說的ELK就是基於Logging。 Metrics - 用於記錄可聚合的資料。例如,佇列的當前深度可
基於Prometheus和Grafana的監控平臺 - 運維告警
通過前面幾篇文章我們搭建好了監控環境並且監控了伺服器、資料庫、應用,運維人員可以實時瞭解當前被監控物件的執行情況,但是他們不可能時時坐在電腦邊上盯著DashBoard,這就需要一個告警功能,當伺服器或應用指標異常時傳送告警,通過郵件或者簡訊的形式告訴運維人員及時處理。 今天我們就來聊聊 基於Prometheu
【K8S】基於單Master節點安裝K8S叢集
## 寫在前面 > 最近在研究K8S,今天就輸出部分研究成果吧,後續也會持續更新。 ## 叢集規劃 | IP | 主機名 | 節點 | 作業系統版本 | | --------------- | --------- | ------ | ----------