k8s filebeat收集日志

kubernetes中filebeat以sidecar方式和应用一起部署,并且传入环境变量
kubernetes集群是通过kubeadm安装的,filebeat版本为6.2.4

具体配置文件如下:

---
apiVersion: v1
kind: ConfigMap
metadata:
  name: filebeat-config
  labels:
    k8s-app: filebeat
data:
  filebeat.yml: |-
    filebeat.prospectors:
    - type: log
      paths:
        - /logdata/*.log
      tail_files: true
      fields:
        pod_name: '${pod_name}'
        POD_IP: '${POD_IP}'
    output.file:
      path: "/tmp/filebeat"
      filename: filebeat
      codec.format:
        string: '%{[@timestamp]} %{[message]} pod_name %{[fields][pod_name]} %{[fields][POD_IP]}'

---
apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-test-config
  labels:
    k8s-app: nginx-test-config
data:
  nginx-test-config: |-
    server {
        listen       80;
        server_name  localhost;
        access_log  /logdata/access.log  main;
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    }

---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx-prod
  labels:
    app: nginx-log
spec:
  template:
    metadata:
      labels:
        app: nginx-log
    spec:
      containers:
      - image: nginx
        name: nginx
        ports:
        - containerPort: 80
          protocol: TCP
        resources: {}
        volumeMounts:
        - name: logdata
          mountPath: /logdata
        - name: nginx-test-config
          mountPath:  /etc/nginx/conf.d/
      - name: filebeat
        image: docker.elastic.co/beats/filebeat:6.2.4
        args: [
          "-c", "/opt/filebeat/filebeat.yml",
          "-e",
        ]
        env:
        - name: POD_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: pod_name
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.name
        securityContext:
          runAsUser: 0
        resources:
          limits:
            memory: 200Mi
          requests:
            cpu: 100m
            memory: 100Mi
        volumeMounts:
        - name: config
          mountPath: /opt/filebeat/
        - name: data
          mountPath: /usr/share/filebeat/data
        - name: logdata
          mountPath: /logdata
      volumes:
      - name: nginx-test-config
        configMap:
          name: nginx-test-config
          items:
          - key: nginx-test-config
            path: test.conf
      - name: logdata
        emptyDir: {}
      - name: config
        configMap:
          name: filebeat-config
          items:
          - key: filebeat.yml
            path: filebeat.yml
      - name: data
        emptyDir: {}
问题: k8s filebeat的部署方式是什么? 回答: 在k8s中部署filebeat有多种方式。一种常见的方式是使用DaemonSet模式,即在每个节点上运行一个filebeat实例,用于收集该节点上所有容器的日志。这种方式可以确保每个节点都有filebeat实例运行,从而保证日志收集的全面性和高可用性。可以通过使用官方提供的filebeat-kubernetes.yaml文件进行部署。可以通过以下命令来下载该文件:curl -L -O https://raw.githubusercontent.com/elastic/beats/7.9/deploy/kubernetes/filebeat-kubernetes.yaml。另外,也可以使用Elastic Cloud on Kubernetes (ECK)来部署filebeat,并与Elasticsearch和Kibana集群进行集成。这种方式需要先使用ECK部署Elasticsearch和Kibana集群,然后再部署filebeat并配置与集群的连接。详细的部署步骤可以参考相关文档。123 #### 引用[.reference_title] - *1* *2* [filebeat收集K8S日志,写入自动创建的索引](https://blog.csdn.net/yanggd1987/article/details/108414587)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] - *3* [【k8s容器日志收集】EFK收集日志,kubernetes守护进程方式部署filebeat收集k8s集群容器日志elasticsearch+...](https://blog.csdn.net/qq_35270805/article/details/124862134)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值