日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Kubernetes入门——Kubernetes日志采集与监控告警

發布時間:2024/10/12 编程问答 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Kubernetes入门——Kubernetes日志采集与监控告警 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者簡介:

郭川磊

百度基礎架構部研發工程師

負責云原生產品的研發

本文基于百度云原生團隊『云原生基礎知識概述及實踐』系列視頻課程——『Kubernetes入門—Kubernetes實現應用高可用』梳理.

視頻課程可點擊:https://cloud.baidu.com/video-center/video.html?id=610進行學習。

導讀:

本節課是Kubernetes入門課程的最后一課。

可關注百度開發者中心公眾號,回復k8s獲取全部課件pdf電子版。

本節課主要分為以下四個板塊:

  • 容器日志采集與管理
  • Kubernetes日志處理方案

  • 容器監控指標的采集與管理
  • 以Prometheus為核心的統一監控方案

  • Demo
  • 演示云原生環境日志采集與指標監控

  • 總結
  • 總結日志采集與指標監控要點

    01 容器日志搜集與管理

    日志采集場景

    日志采集場景主要分為以下四種:

    **集群核心組件日志:**審計需要Kube-apiserver日志,診斷調度需要kube-scheduler日志,接入層流量分析需要Ingress日志。
    **主機內核日志:**內核日志可以用于幫助開發及運維同學診斷影響節點穩定的異常,如:文件系統異常,網絡棧異常,設備驅動異常等。
    應用運行時日志:Docker是最常見的容器運行時,可以利用Docker和Kubelet日志排查Pod創建和啟動失敗等問題。
    業務應用日志:通過分析業務的運行日志分析和觀察業務狀態,診斷異常。

    日志采集目標

    Kubernetes對容器日志的期望處理方式為:集群級日志處理(cluster-level-logging)即:與容器、Pod、節點生命周期完全無關。

    對于一個容器,當應用將日志輸出到stdout和stderr后,docker默認將這些日志輸出到宿主機上一個JSON文件中。

    日志采集方式

    Kubernetes本身并不會對用戶進行任何的日志搜集工作。為了實現集群級日志處理,需要在集群前,提前對日志采集管理進行方案規劃。Kubernetes本身推薦3種日志方案。

    日志采集方式1:使用節點級日志代理

    核心是logging-agent (fluentd,etc );
    Logging-agent以DaemonSet方式運行在節點上;
    掛載宿主機上的容器日志目錄;
    轉發日志至后端存儲(ElasticSearch, etc);

    優點:對應用和Pod完全無侵入,一個節點僅需部署一個agent。
    缺點:要求應用日志直接輸出至容器的stdout和stderr。

    日志采集方式2:使用sidecar容器和日志代理
    容器全部或部分日志輸出到文件
    一個或多個sidecar容器將應用程序日志傳送到自己的stdout和stderr。

    優點:能夠繼續使用日志采集方式1。
    缺點:成倍增加磁盤占用,造成浪費。(應用和sidecar容器寫入兩份相同日志文件)

    日志采集方式3:使用具有日志代理功能的sidecar容器
    相當于將logging-agent直接集成進Pod。
    應用和輸出日志至stdout&stderr或文件。
    Logging-agent的輸入源為應用日志文件。

    優點:部署簡單,對宿主機友好。
    缺點:1.Sidecar容器可能消耗較多資源,甚至拖掛應用容器。
    2. 無法使用kubectl logs命令查看容器日志。

    總結:
    實現集群級日志采集的三種方式:

    • 使用節點級日志代理。
    • 使用sidecar容器和日志代理。
    • 使用具有日志代理功能的sidecar容器。

    建議:使用方案1,將應用日志輸出到stdout&stderr,通過宿主機上直接部署logging-agent的方式集中處理日志。

    • 管理簡單。
    • 可以使用kubectl logs命令查看日志。
    • 宿主機本身可能已有rstlogd等成熟日志收集組件可使用。

    選型推薦

    02 容器監控指標的采集與管理

    監控場景

    從監控類型劃分,可分為以下幾個場景:

    資源監控:
    CPU,內存,網絡等資源類指標,常以數值,百分比為單位進行統計,是最常見的資源監控方式。

    性能監控
    應用的內部監控。通常是Hock機制在虛擬機層,字節碼執行層隱式回調,或者在應用層顯式注入,獲取更深層次的監控指標,常用來應用診斷與調優。
    比如Jvm通過Hock機制,拿到類似Jvm里面的垃圾回收的次數,各種內存帶的分布以及網絡連接數的一些指標。通過這樣的方式來進行應用的診斷與調優。

    安全監控:
    針對安全進行一系列監控策略,例如越權管理,安全漏洞掃描等。

    事件監控:
    Kubernetes中特有的監控方式,貼合Kubernetes設計理念,作為常規監控方案的補充。為什么說事件監控貼合Kubernetes設計理念呢?這是因為Kubernetes其中一個設計理念就是基于狀態機的狀態轉換。從正常狀態轉換成另一個狀態的時候,會發生一個Normal級別的事件(也就是正常的事件)而從一個正常狀態轉換成異常狀態時,平臺會觸發一個Warning級別(也就是警告級別的事件)通常,Warning級別的事件是我們關心的事件。

    而事件監控就可以把Normal級別的事件或Warning級別的事件離線存儲到數據中心,然后通過數據中心的分析與報警,將相應的異常通過短信,郵件的方式暴露,彌補常規監控的弊端。

    Prometheus的起源及現狀

    Prometheus與Kubernetes一樣,來自于Borg體系。原型叫做BorgMon,是與Borg同時誕生的內部監控系統。而Prometheus項目發起的元嬰也與Kubernetes類似,希望通過對用戶更友好的方式,將Google內部系統的設計理念傳遞給開發者和用戶。
    Kubernetes監控體系曾經非常繁雜,但今天已經演變成了以Prometheus為核心的一套統一的方案。

    Prometheus的架構與工作方式

    Prometheus指標來源

    • 宿主機的監控數據:需要借助Node Exporter向外暴露;Exporter代替被監控對象來向Prometheus暴露可以被抓取的指標信息。 Kubernetes組件如APIServer,
    • kubelet等的/metrics AP:除CPU,內存外,還包括各個組件的核心監控指標。
    • Kubernetes核心的監控數據:包括Pod、Node、容器、Service等主要核心概念的metrics,其中容器相關的指標來源于kubectl內置的cAdvisor服務。

    Prometheus特點

  • 簡潔強大的接入標準。只要實現Promethus Client接口,就可以直接實現數據的采集。
  • 多種數據采集方式。包括:在線,離線,push, pull 聯邦的方式進行數據采集。
  • 和Kubernetes完全兼容。
  • 豐富的插件機制和生態。
  • Prometheus Operator助力。使Prometheus的運維實現自動化。
  • 講師第三節,演示了Kubernetes環境下日志采集與指標監控的一個Demo。感興趣的同學可以點擊視頻觀看。https://cloud.baidu.com/video-center/video.html?id=610

    以上就是本期課程的所有內容,也是Kubernetes系列課程的最后一課。感謝大家的關注與支持,感謝百度云原生團隊對課程的策劃與支持。可點擊下方鏈接回顧課程

    Kubernetes入門——深入淺出講Docker

    Kubernetes入門——Kubernetes工作原理及使用

    Kubernetes入門——Kubernetes應用部署

    Kubernetes入門——Kubernetes實現應用的高可用

    總結

    以上是生活随笔為你收集整理的Kubernetes入门——Kubernetes日志采集与监控告警的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。