1.收集哪些日志?

  • K8S系统的组件日志
  • K8S Cluster里面部署的应用程序日志

 - 标准输出

 - 日志文件 (输出到指定文件里)

 - 日志轮转(本地保留30天)

  - 日志格式  (json,kv)

 

如果是kubeadm方式部署的k8s 日志是收集的 /var/log/message

如果是二进制部署的k8s 日志是配置文件中定义的日志路径

应用容器日志

/var/lib/docker/contianers/*/*-json.log

docker配置文件中定义了 默认日志格式为json

 

pod的日志路径

/var/lib/kubelet/pods/*/volumes/

2.ELK收集日志架构

 

其中logstash 是非必选的组件,如果日志场景比较复杂的时候可以加上logstash做出更好的预处理然后存入ES。

 

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

方案一:

Node上部署一个日志收集程序

  • DaemonSet方式部署日志收集程序
  • 对本节点/var/log/kubelet/pods和 /var/lib/docker/containers/两个目录下的日志进 行采集
  • Pod中容器日志目录挂载到宿主机统一目录上

方案二:

Pod中附加专用日志收集的容器

  • 每个运行应用程序的Pod中增加一个日志 收集容器,使用emtyDir共享日志目录让 日志收集程序读取到。

方案三:

应用程序直接推送日志

  • 超出Kubernetes范围

方案比较:

 

方式

优点

缺点

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

每个Node仅需部署一个日志收集程序, 资源消耗少,对应用无侵入

应用程序日志如果写到标准输出和标准错误输出, 那就不支持多行日志。

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

低耦合

每个Pod启动一个日志收集代理,增加资源消耗, 并增加运维维护成本

方案三:应用程序直接推送日志 无需额外收集工具

浸入应用,增加应用复杂度

 

 

4.k8s部署efk

mkdir efk  &&  cd efk

 

elasticsearch.yaml

 

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: elasticsearch
  namespace: kube-system
  labels:
    k8s-app: elasticsearch
spec:
  serviceName: elasticsearch
  selector:
    matchLabels:
      k8s-app: elasticsearch
  template:
    metadata:
      labels:
        k8s-app: elasticsearch
    spec:
      containers:
      - image: elasticsearch:7.3.2
        name: elasticsearch
        resources:
          limits:
            cpu: 1
            memory: 2Gi
          requests:
            cpu: 0.5 
            memory: 500Mi
        env:
          - name: "discovery.type"
            value: "single-node"
          - name: ES_JAVA_OPTS
            value: "-Xms512m -Xmx2g" 
        ports:
        - containerPort: 9200
          name: db
          protocol: TCP
        volumeMounts:
        - name: elasticsearch-data
          mountPath: /usr/share/elasticsearch/data
  volumeClaimTemplates:
  - metadata:
      name: elasticsearch-data
    spec:
      storageClassName: "managed-nfs-storage"
      accessModes

相关文章:

  • 2022-12-23
  • 2021-05-17
  • 2022-03-04
  • 2021-06-22
  • 2022-12-23
  • 2021-07-18
猜你喜欢
  • 2021-08-01
  • 2021-04-11
  • 2021-07-08
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-06
相关资源
相似解决方案