1. 程式人生 > >基於prometheus監控k8s叢集

基於prometheus監控k8s叢集

本文建立在你已經會安裝prometheus服務的基礎之上,如果你還不會安裝,請參考:prometheus多維度監控容器

前言

kubernetes顯然已成為各大公司親睞的容器編排工具,各種私有云公有云平臺基於它構建,那麼,我們怎麼監控叢集中的所有容器呢?目前有三套方案:

  1. heapster+influxDB

    heapster為k8s而生,它從apiserver獲取節點資訊,每個節點kubelet內含了cAdvisor的功能,暴露出api,heapster通過訪問這些端點得到容器監控資料。它支援多種儲存方式,大家常用的的就是influxDB。這套方案的缺點是缺乏報警等功能,influxDB的單點問題。因此本方案適合需求是隻要實時監控展示。

  2. heapster+hawkular

    本方案解決了上面方案的問題,並且大大提升了監控的高可用性和高效能。比較重量級,適合大型叢集的監控。目前hawkular開源不久。功能完善。有興趣可以研究。本文不做詳細介紹。

  3. 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即可監控到叢集的宿主機和容器狀態資訊。監控端點如下圖:

image

進階

不僅監控容器狀態,經過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 | 主機名 | 節點 | 作業系統版本 | | --------------- | --------- | ------ | ----------