k8s 日志收集介紹


1. 收集那些日志

  • k8s系統的組件日志
  • k8s cluster里面部署的應用程序日志
    • 標准輸出
    • 日志文件

2. elk stack日志收集方案

  • 架構圖
    image

image

ELK 是三個開源軟件的縮寫,提供一套完整的企業級日志平台解決方案。
分別是:

  • Elasticsearch:搜索、分析和存儲數據
  • Logstash :采集日志、格式化、過濾,最后將數據推送到Elasticsearch存儲
  • Kibana:數據可視化
  • redis:可以作為數據緩存做准備
  • Beats :集合了多種單一用途數據采集器,用於實現從邊緣機器向Logstash 和Elasticsearch 發送數據。里面應用最多的是Filebeat,是一個輕量級日志采集器。

3. 容器中的日志怎么收集的

  • 方案一:Node上部署一個日志收集程序

    • DaemonSet方式部署日志收集程序
    • 對本節點/var/log/kubelet/pods和/var/lib/docker/containers/兩個目錄下的日志進行采集
    • Pod中容器日志目錄掛載到宿主機統一目錄上

    1608887466709

  • 方案二:Pod中附加專用日志收集的容器

    • 每個運行應用程序的Pod中增加一個日志收集容器,使用emtyDir共享日志目錄讓日志收集程序讀取到。
      image
  • 方案三:應用程序直接推送日志

    • 超出Kubernetes范圍
      image

4. 日志收集三種的優缺點

方式 優點 缺點
方案一:Node上部署一個日志收集程序 每個Node僅需部署一個日志收集程序,資源消耗少,對應用無侵入 應用程序日志如果寫到標准輸出和標准錯誤輸出,那就不支持多行日志
方案二:Pod中附加專用日志收集的容器 低耦合 每個Pod啟動一個日志收集代理,增加資源消耗,並增加運維維護成本
方案三:應用程序直接推送日志 無需額外收集工具 浸入應用,增加應用復雜度


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM