精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一份接地氣的Kubernetes日志方案

云計算 云原生
本文主要聊聊Kubernetes場景下收集微服務應用日志方案,相對來說更接地氣,非常好落地。

微服務應用的日志鏈路一般比較長,包含以下環節:日志收集 → 日志緩沖 → 日志過濾清洗 → 日志存儲 → 日志展示。每個環節都有多種對應的組件去解決,這樣的結果就是業內組合出了多種整體解決方案。

以前我的微服務部署在IDC機房虛擬機時,采用的是ELK(Elasticsearch、Logstash、Kibana)方案,這也是通用的微服務應用的日志解決方案。幾年前我們的應用部署整體切到Kubernetes后,我依舊采用了這套方案。

下面介紹Kubernetes場景下基于ELK的日志解決方案。整體思路:Filebeat -> Kafka -> Logstash -> Elasticsearch -> Kibana。

1、日志數據流轉

日志數據流轉見下圖:

2、日志采集

2.1、容器日志在哪兒

首先得有個概念:容器只是K8S集群Node上的一個進程。要在K8S集群機器上找到此Docker進程,然后進入到對應的文件夾里查看日志文件。

一般情況下,容器的日志存放在宿主機上的這個目錄下/var/lib/docker/containers/:

# 日志在宿主機的這個文件夾下
cd /var/lib/docker/containers
# 用這個命令可以查找對應的日志文件
find /var/lib/docker/containers -name "*-json.log"

進入到/var/lib/docker/containers/下,看到的是一堆毫無規律的文件夾。

看到這些毫無規律的文件夾名稱,會一下子有點懵,但是仔細看看,其實這些碼是對應的Docker容器的id。繼續通過名稱查看容器id。

# docker命令查看容器
docker ps -a

找到了容器id之后,可以看到用容器id的前幾位,可以完全匹配到,日志文件夾名稱的前幾位。docker ps 顯示的容器id只是顯示了整個id的前幾位。

進入到日志文件夾后,就可以看到具體的json日志文件了。

至此已經知道日志文件存放的位置了。當然啦,要控制好日志級別,還要做好日志清理任務,否則大量的日志會導致磁盤空間不夠。Pod銷毀之后,日志文件也會被銷毀的。

文件找到了接下來,就看怎么采集日志了。

2.2、日志采集工具

日志采集工具有多種,本文采用Filebeat作為日志采集工具。

Filebeat是用于轉發和匯總日志與文件的輕量級傳送程序。作為服務器上的代理安裝,Filebeat會監視你指定的日志文件或位置。然后收集日志事件,并將它們轉發到Elasticsearch或Logstash或Kafka。官方文檔顯示的工作流程如下:

Filebeat的主要優勢有:

  • 輕量級并且易使用
  • 免費開源
  • 資源使用率低
  • 良好的性能

2.3、日志如何采集

日志采集工具選型確定之后,接下來就是如何采集了。

K8S部署的場景下,想要收集每臺Node下的容器日志,需要采用Deamonset控制器自動部署,這樣每次新增節點時,會自動部署Filebeat的Pod。每臺Node自動安裝好Filebeat后,每臺Node上的日志會被自動采集,然后輸出到Kafka。

Filebeat大致的編排yaml如下:

apiVersion: v1
kind: ConfigMap
metadata:
  name: filebeat-config
  namespace: ops-monit
  labels:
    k8s-app: filebeat
data:
  filebeat.yml: |-
    filebeat.inputs:
    - type: container #因為是采集的容器日志,所以這里要用container 不能用 log,否則拿不到容器日志
      enable: true
      stream: stdout #只取stdout日志
      paths:
        - /var/log/containers/*demo*.log #采集了demo環境的所有日志
      processors:
        - add_kubernetes_metadata: # 增加kubernetes的屬性
            in_cluster: true
            host: ${NODE_NAME}
            matchers:
            - logs_path:
                logs_path: "/var/log/containers/"
        - drop_event:
            when:
              contains:
                message: "INFO"
        - drop_event:
            when:
              contains:
                message: "DEBUG"
      # 配置多行顯示
      multiline.type: pattern
      multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
      multiline.negate: true
      multiline.match: after
      fields:
        logtype: applog
    output.kafka:
      hosts: ['172.10.10.10:9092','172.10.10.11:9092','172.10.10.12:9092']
      topic: 'topic-bizlog'
      partition.round_robin:
        reachable_only: false
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: filebeat
  namespace: ops-monit
  labels:
    k8s-app: filebeat
spec:
  selector:
    matchLabels:
      k8s-app: filebeat
  template:
    metadata:
      labels:
        k8s-app: filebeat
    spec:
      serviceAccountName: filebeat
      terminationGracePeriodSeconds: 30
      dnsPolicy: ClusterFirstWithHostNet
      containers:
        - name: filebeat
          image: elastic/filebeat:7.12.1
          args: [
              "-c", "/etc/filebeat.yml",
              "-e",
          ]
          env:
            - name: ELASTICSEARCH_HOST
              value: "172.10.20.10"
            - name: ELASTICSEARCH_PORT
              value: "9200"
            - name: ELASTICSEARCH_USERNAME
              value:
            - name: ELASTICSEARCH_PASSWORD
              value:
            - name: ELASTIC_CLOUD_ID
              value:
            - name: ELASTIC_CLOUD_AUTH
              value:
            - name: NODE_NAME
              valueFrom:
                fieldRef:
                  fieldPath: spec.nodeName
          securityContext:
            runAsUser: 0
            # If using Red Hat OpenShift uncomment this:
            # privileged: true
          resources:
            limits:
              cpu: 3000m
              memory: 2000Mi
            requests:
              cpu: 500m
              memory: 100Mi
          volumeMounts:
            - name: timezone
              mountPath: /etc/localtime
            - name: config
              mountPath: /etc/filebeat.yml
              readOnly: true
              subPath: filebeat.yml
            - name: data
              mountPath: /usr/share/filebeat/data
            - name: varlibdockercontainers
              mountPath: /var/lib/docker/containers
              readOnly: true
            - name: varlog
              mountPath: /var/log
      volumes:
        - name: timezone
          hostPath:
            path: /usr/share/zoneinfo/Asia/Shanghai
        - name: config
          configMap:
            defaultMode: 0640
            name: filebeat-config
        - name: varlibdockercontainers
          hostPath:
            path: /var/lib/docker/containers
        - name: varlog
          hostPath:
            path: /var/log
        - name: data
          hostPath:
            path: /var/lib/filebeat-data
            type: DirectoryOrCreate
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: filebeat
  namespace: ops-monit
subjects:
  - kind: ServiceAccount
    name: filebeat
    namespace: ops-monit
roleRef:
  kind: ClusterRole
  name: filebeat
  apiGroup: rbac.authorization.k8s.io
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: filebeat
  namespace: ops-monit
  labels:
    k8s-app: filebeat
rules:
  - apiGroups: [""] # "" indicates the core API group
    resources:
      - namespaces
      - pods
      - nodes
    verbs:
      - get
      - watch
      - list
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: filebeat
  namespace: ops-monit
  labels:
    k8s-app: filebeat
---

3、日志緩沖、過濾清洗、存儲、展示

3.1、緩沖

Kafka是一個消息處理引擎,這里采用Kafka作為日志數據的緩沖工具。采用Kafka有2個用途:

  • 作為緩沖,防止日志量太大導致下游來不及消費,所以要加入消息緩沖這一層。這一層必不可少。
  • Kafka消息可以被別的應用監聽消費,過濾輸出到一些告警信息到企微、釘釘、郵件等。

3.2、過濾清洗和轉發

Logstash 是一個日志收集和處理引擎,它帶有各種各樣的插件,能夠從各種來源攝取數據。并且可以對數據進行轉換,然后轉發到目的地。我這里采用Logstash作為日志攝取、過濾、清洗、轉發的工具。

這是一個大概的Logstash Conf文件,文件的內容分3塊:input 、filter 、output。

input {
    kafka {
        bootstrap_servers=>"172.10.7.79:9092"
        topics=>["topic-bizlogs"]
        codec => "json"
    }
}

filter{
    mutate{
        split => ["message", "|"]
        add_field => { "log_time" => "%{[message][0]}"}
        add_field => { "level" => "%{[message][1]}"}
        add_field => { "class" => "%{[message][2]}"}
        add_field => { "line" => "%{[message][3]}"}
        add_field => { "thread" => "%{[message][4]}"}
        add_field => { "log_message" => "%{[message][5]}"}

        add_field => { "env" => "%{[kubernetes][namespace]}"}
        add_field => { "podName" => "%{[kubernetes][pod][name]}"}
        add_field => { "podId" => "%{[kubernetes][pod][uid]}"}
        add_field => { "image" => "%{[container][image][name]}"}
        add_field => { "imageId" => "%{[container][id]}"}
        add_field => { "nodeId" => "%{[kubernetes][node][uid]}"}
        add_field => { "nodeName" => "%{[kubernetes][node][name]}"}
        add_field => { "nodeHostName" => "%{[kubernetes][node][hostname]}"}
        add_field => { "logPath" => "%{[log][file][path]}"}
        add_field => { "appName" => "%{[kubernetes][labels][app]}"}

        remove_field => ["agent","fields","input","ecs","host","@version","kubernetes","stream","log","container"]
    }
}

output{
        elasticsearch{
                hosts=>["172.11.4.82:9200"]
                index => "%{appName}‐%{+YYYY.MM.dd}"

        }
}

3.3、存儲和搜索

Elasticsearch是一個可擴展的搜索引擎,這里采用Elasticsearch作為日志存儲搜索工具。

3.4、展示

采用Kibana為日志構建可視化的UI。

4、總結

本文主要介紹Kubernetes場景下比較接地氣好落地的,基于ELK的日志解決方案。整體思路:Filebeat -> Kafka -> Logstash -> Elasticsearch -> Kibana。

本文沒有介紹Kafka、Logstash、Elasticsearch、Kibana的安裝,只提及了一些配置文件,安裝過程讀者自行查閱資料搭建。

責任編輯:華軒 來源: 不焦躁的程序員
相關推薦

2015-08-27 10:50:15

2011-06-03 16:30:39

2014-03-26 15:24:51

Microsoft AWindows Azu微軟

2012-12-11 14:05:26

商務社交

2021-06-24 08:30:08

架構億級消息中心數據

2019-08-27 09:20:35

微服務架構組件

2014-11-11 13:31:28

云戰略

2013-11-28 16:47:15

通達OA

2020-03-08 15:37:01

Android 10谷歌安卓

2020-07-15 15:38:15

人臉識別照片活化手機

2023-09-27 12:28:08

Kubernetes命令

2016-04-01 09:29:36

戴爾

2022-12-19 10:40:07

模型中文

2016-12-09 13:30:44

大數據

2025-07-03 09:28:44

架構群消息開發

2017-06-07 11:51:48

災備和力記易

2019-03-24 14:14:40

代碼閱讀源代碼

2015-03-19 15:17:11

2024-11-07 08:50:56

用戶分析分類維度標簽

2018-07-29 15:33:04

點贊
收藏

51CTO技術棧公眾號

热久久最新网址| 日韩大陆av| 欧美激情1区| 精品精品欲导航| 久久久亚洲影院你懂的| 95视频在线观看| 久久久久人妻精品一区三寸| a级片在线观看免费| av在线成人| 亚洲va天堂va国产va久| 蜜桃传媒视频麻豆第一区免费观看 | 欧美丝袜激情| 欧美日韩激情一区二区| 国产91视频一区| 天天综合网在线| 奇米四色…亚洲| 久久91精品国产| 一起草最新网址| 成人动漫一区| 中文欧美字幕免费| 成人国产1314www色视频| 五月婷婷激情视频| 欧美在线日韩| 亚洲性生活视频| 91精品人妻一区二区三区蜜桃2| 麻豆蜜桃在线观看| 亚洲三级视频在线观看| 久久草.com| 91在线你懂的| 久久婷婷丁香| 欧美激情第1页| 日韩av片在线| 久久动漫网址| 欧美丰满嫩嫩电影| 国产99久久精品一区二区| 91在线国产电影| 久久久久久久极品内射| 女同一区二区三区| 日韩欧美在线123| 亚洲一区日韩精品| 国产成人精品亚洲日本在线观看| 亚洲狠狠爱一区二区三区| 亚洲乱码一区二区三区| 婷婷在线免费视频| 久久精品国内一区二区三区| 奇米一区二区三区四区久久| 久久久久成人精品无码| 久久在线视频| 亚洲精品国产综合久久| 奇米777在线视频| 国产精品美女午夜爽爽| 狠狠躁夜夜躁久久躁别揉| 影音先锋在线亚洲| 成人在线免费观看| 国产婷婷色一区二区三区在线| 国产精品亚洲一区| 性生交生活影碟片| 国产aⅴ综合色| 91九色单男在线观看| 午夜精品久久久久久久久久久久久蜜桃| 欧美乱大交做爰xxxⅹ小说| av电影在线地址| 亚洲激情中文1区| 黄瓜视频免费观看在线观看www| 深爱五月激情五月| 北条麻妃国产九九精品视频| 国产精品久久精品视| 黄色av一区二区三区| 国内精品第一页| 亚洲精品免费在线视频| 国产绿帽刺激高潮对白| 激情深爱一区二区| 亚洲影院色在线观看免费| 亚洲图片小说视频| 蜜桃av噜噜一区| 国产日韩欧美中文在线播放| 黄色一区二区视频| 精品一区二区三区日韩| 国产精品偷伦一区二区| 欧美视频xxxx| 久久激情五月婷婷| 91免费版网站入口| www国产一区| 99国产欧美另类久久久精品| http;//www.99re视频| 亚洲乱码精品久久久久..| 国产成人精品一区二区三区网站观看| 99视频免费观看| 黄色三级网站在线观看| 国产一区二区在线视频观看| 影音先锋日韩精品| 欧美精品国产精品日韩精品| 日韩福利片在线观看| 国产一区白浆| 欧美性做爰毛片| www.久久网| 国产精品一区二区果冻传媒| 国产高清自拍一区| 好男人免费精品视频| 国产精品国产三级国产专播品爱网| 亚洲欧美日韩不卡一区二区三区| 中国日本在线视频中文字幕| 亚洲欧美日韩精品久久久久| 国产尤物av一区二区三区| 黄色18在线观看| 欧美日韩精品一区二区| 污免费在线观看| 欧美一级三级| 波霸ol色综合久久| 国产一级av毛片| 久久久精品五月天| 国产一区二区在线免费| 开心激情综合网| 亚洲欧美一区二区在线观看| 久久视频这里有精品| 国产91欧美| 日韩av中文字幕在线| 国产美女网站视频| 一区二区三区导航| 亚洲999一在线观看www| 欧美女子与性| 亚洲最新在线观看| 亚洲永久免费观看| 日韩av在线播放不卡| 日韩伦理精品| 日韩三级在线观看| 男人的天堂影院| 天天做天天爱天天综合网| 2019中文字幕在线观看| 亚洲视频一区二区三区四区| 不卡视频在线看| 最新av在线免费观看| 香蕉成人av| 亚洲国产高清福利视频| 99久久婷婷国产综合| 日本欧美一区二区三区| 精品免费国产| 午夜影院免费在线| 欧美日本一区二区三区| 亚洲av无码一区二区三区人| 亚洲激情影院| 91福利视频导航| www 日韩| 91九色最新地址| 一区二区三区免费在线观看视频| 欧美日韩一区二区三区四区在线观看| 国产精品入口福利| 国产午夜视频在线观看| 欧美日韩久久久久| 黄色国产在线视频| 国产综合视频| 成人免费视频视频在| 国产一二三区在线观看| 欧美日韩国产小视频在线观看| 99久久精品免费视频 | 国产一级不卡视频| 99精品美女视频在线观看热舞| 尤物tv国产一区| 九九热最新视频| 久久精品人人爽人人爽| 男女午夜激情视频| 伊甸园亚洲一区| 热草久综合在线| 你懂的在线免费观看| 精品日韩中文字幕| 欧美成人三级伦在线观看| 在线成人国产| 国内精品久久国产| 亚洲羞羞网站| 欧美大片一区二区| 久久精品国产亚洲av香蕉| 国产精品自拍三区| 韩国无码av片在线观看网站| 在线一区二区三区视频| 欧美精品电影免费在线观看| 色噜噜在线播放| 欧美日韩国产色视频| 少妇精品一区二区| 日韩国产欧美在线观看| 欧美人xxxxx| 成人在线免费av| 久久精品视频va| 亚洲成人精品女人久久久| 亚洲午夜日本在线观看| 精品国产午夜福利在线观看| 亚洲国产裸拍裸体视频在线观看乱了中文| 国产精品乱码一区二区三区| 麻豆理论在线观看| 亚洲视频欧美视频| 在线观看免费高清视频| 亚洲欧美日韩国产成人精品影院 | 精品无码人妻少妇久久久久久| 你懂的一区二区| 国产精品亚洲不卡a| 三上悠亚亚洲一区| 日韩中文视频免费在线观看| 国产ts变态重口人妖hd| 欧美日韩国产丝袜美女| 老司机福利在线观看| 国产老肥熟一区二区三区| 国产日韩av网站| 成人精品久久| 超碰97在线资源| 澳门成人av网| 欧美精品在线免费| 男人天堂亚洲二区| 欧美一区二区三区影视| 久草国产精品视频| 久久久久久久久免费| 五月六月丁香婷婷| 日本www在线视频| 99久久婷婷国产综合精品青牛牛| 日韩av电影免费观看高清| 欧美大片黄色| 精品国内亚洲在观看18黄 | 先锋影音网一区| 欧美变态网站| 国产精品毛片va一区二区三区| 亚洲一区av| 国产精品中文字幕久久久| 神马午夜在线视频| 欧美极品第一页| 亚洲男同gay网站| 久久综合久久八八| 日本在线看片免费人成视1000| 日韩www在线| 亚洲免费国产视频| 欧美成人午夜电影| 国产xxxx在线观看| 7777精品伊人久久久大香线蕉最新版| 中文字幕一区二区三区四区欧美| 亚洲国产日韩一级| 久久久久久久久久久久久久免费看 | 91精品国产美女浴室洗澡无遮挡| 久久久久久av无码免费看大片| 欧美性猛交xxxx免费看漫画| 日韩字幕在线观看| 性久久久久久久久久久久| 亚洲国产成人精品综合99| 亚洲人一二三区| 北条麻妃在线观看视频| 欧美国产视频在线| 丁香六月激情综合| 中文字幕一区视频| 中文字幕在线观看2018| 亚洲男人电影天堂| 国产a免费视频| 亚洲一区二区精品久久av| 黄色一级视频免费| 亚洲国产精品久久艾草纯爱 | 色婷婷av一区二区三区gif| 国产精品100| 欧美在线观看一区二区| 波多野结衣二区三区| 色88888久久久久久影院野外| 日韩免费av网站| 欧美午夜电影网| 一区二区三区午夜| 日韩一区二区中文字幕| 亚洲av永久无码国产精品久久 | 精品视频三区| 中文字幕亚洲欧美日韩2019| 日本www在线观看| 久久中文字幕一区| 97人人在线视频| 国产精品av在线播放| 国产成人精品一区二区三区在线 | 色综合久久88色综合天天看泰| 精品一性一色一乱农村| 97香蕉超级碰碰久久免费软件| 成人影院大全| 成人av番号网| 国产精品45p| 欧美重口乱码一区二区| 91九色精品| 国产精彩视频一区二区| 麻豆久久精品| 亚洲精品成人在线播放| 成人性视频免费网站| 精品欧美一区二区久久久| 《视频一区视频二区| 国产精品999久久久| 91福利在线观看| 精品人妻少妇嫩草av无码专区| 亚洲黄色在线观看| 91精彩视频在线观看| 欧美猛交ⅹxxx乱大交视频| 成人欧美magnet| 99r国产精品视频| 日韩有码av| 美女黄色片网站| 爽好多水快深点欧美视频| 91精品国产三级| 国产亚洲欧洲997久久综合| 动漫性做爰视频| 欧美伊人久久大香线蕉综合69| www.久久久久久久久久| 亚洲性线免费观看视频成熟| 欧洲成人综合网| 国产日韩欧美夫妻视频在线观看| 福利欧美精品在线| 伊人久久大香线蕉av一区| 亚洲每日在线| 亚洲精品无码久久久久久久| 久久九九久久九九| 日韩精品一区二区av| 欧美精品v日韩精品v韩国精品v| 日本高清视频免费观看| 久久精视频免费在线久久完整在线看| 亚洲精品永久免费视频| 91在线观看免费高清完整版在线观看| 综合干狼人综合首页| 国产精品入口芒果| 国产在线精品不卡| 欧日韩不卡视频| 91福利社在线观看| 欧美性孕妇孕交| 午夜精品久久久久久久99热浪潮| 综合久久伊人| 午夜精品视频在线观看一区二区| 99精品99| 国产女人18毛片水真多18| 亚洲精品中文字幕乱码三区| 中文字幕+乱码+中文乱码91| 日韩精品在线视频| 成人bbav| 国产精品一区二区不卡视频| 午夜精品亚洲| 又色又爽又黄视频| 国产精品毛片久久久久久久| 日韩三级一区二区| 亚洲摸下面视频| 欧美sm一区| 久久久久久a亚洲欧洲aⅴ| 亚洲国产国产亚洲一二三| 中文字幕亚洲日本| 亚洲伦理在线精品| 国产情侣激情自拍| 久久成年人免费电影| 国产精品美女久久久久人| 亚洲永久激情精品| 久久国产精品无码网站| 国产精品一区二区亚洲| 欧美日韩精品一区二区三区蜜桃 | 欧洲亚洲在线视频| 国产91一区| 国产视频手机在线播放| 欧美国产一区在线| 亚洲天堂狠狠干| 久久精视频免费在线久久完整在线看| 在线播放成人| 日本老太婆做爰视频| 岛国av在线一区| 国产 欧美 日韩 在线| 日韩久久精品电影| 免费高清视频在线一区| 亚洲女人毛片| 国产精品中文字幕欧美| 久久精品波多野结衣| 精品福利二区三区| 亚洲风情在线资源| 日本一区视频在线| 精品一区二区日韩| 国产在线拍揄自揄拍| 亚洲精品国产福利| 日韩国产网站| 香蕉视频免费版| 成人高清免费观看| 国产一区二区视频免费| 色多多国产成人永久免费网站 | 久久av在线| 丁香六月激情综合| 精品国产乱码久久久久久图片| 麻豆视频在线看| 亚洲精品在线观看免费| 国产一区二区三区日韩| 国产无码精品一区二区| 亚洲日本成人网| 亚洲国产综合在线观看| 97视频在线免费| 国产精品私人自拍| 囯产精品久久久久久| 国产999精品久久久| 欧美影视一区| 免费观看a级片| 日韩欧美不卡在线观看视频| 竹内纱里奈兽皇系列在线观看| 亚洲成人一区二区三区| 国产成人在线看| 最新在线中文字幕| 欧美精品videossex性护士| 国产影视一区| 风韵丰满熟妇啪啪区老熟熟女| 色综合久久久久综合99| 国产福利视频在线| 日本10禁啪啪无遮挡免费一区二区| 狠狠色丁香婷婷综合| 亚洲第一精品在线观看| 久热精品视频在线免费观看| 久久91麻豆精品一区|