k8s-EFK (filebeat)日志收集

这篇具有很好参考价值的文章主要介绍了k8s-EFK (filebeat)日志收集。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用elasticsearch+filebeat+kibana收集pod指定目录日志,filebeat用于收集日志,es用于存储,kibana用于展示。本例以收集部署于k8s内的nginx日志为例子。

1、部署es+kibana

version: '3.9'
services:
  elasticsearch:
    image: elasticsearch:7.13.3
    container_name: elasticsearch
    networks:
      - net-es
    volumes:
      - ./data/elasticsearch/data:/usr/share/elasticsearch/data  #这里将elasticsearch的数据文件映射本地,以保证下次如果删除>了容器还有数据
    environment:
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ports:
      - "9200:9200"

  elastichd:
    image: containerize/elastichd:latest
    container_name: elasticsearch-hd
    networks:
    - net-es
    ports:
      - "9800:9800"
    depends_on:
      - "elasticsearch"
    links:
      - "elasticsearch:demo"

  kibana:
    image: kibana:7.13.3
    container_name: kibana
    depends_on:
      - elasticsearch #kibana在elasticsearch启动之后再启动
    environment:
      ELASTICSEARCH_HOSTS: http://ip:9200 #设置访问elasticsearch的地址
      I18N_LOCALE: zh-CN
    ports:
      - 5601:5601
#这里要注意,es和eshd要在相同网络才能被links
networks:
  net-es:
    external: false

2.创建filebeat配置文件(基于elasticsearch存储)

[root@master filebeat]# cat filebeat-es-cm.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: filebeatconf
data:
  filebeat.yml: |-
    filebeat.inputs:
    - input_type: log
      paths:
        - /data/log/*/*.log         # 收集日志的路径
      tail_files: true
      fields:
        pod_name: '${podName}'
        pod_ip: '${podIp}'
        pod_deploy_name: '${podDeployName}'
        pod_namespace: '${podNamespace}'
    output.elasticsearch:     # 可以使用kafka,redis做缓存,此处直接将数据存储在elasticsearch中
      hosts: ["ip:9200"]    # elasticsearch 的ip+port
      index: "app-%{+yyyy.MM.dd}"     # 索引名称定义
    setup.template.name: "filebeat-sidecar"
    setup.template.pattern: "filebeat-sidecar"

3、创建nginx-filebeat Sidecar(基于elasticsearch的配置)

[root@k8s-master elk]# cat nginx.yml 
# lishanbin-nginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: lishanbin-nginx
spec:
  selector:
    matchLabels:
      app: lishanbin-nginx
  template:
    metadata:
      labels:
        app: lishanbin-nginx
    spec:
      containers:
      - name: filebeat                        
        image: registry.cn-beijing.aliyuncs.com/dotbalo/filebeat:7.10.2 
        resources:
          requests:
            memory: "100Mi"
            cpu: "10m"
          limits:
            cpu: "200m"
            memory: "300Mi"
        imagePullPolicy: IfNotPresent
        env:
          - name: podIp
            valueFrom:
              fieldRef:
                apiVersion: v1
                fieldPath: status.podIP
          - name: podName
            valueFrom:
              fieldRef:
                apiVersion: v1
                fieldPath: metadata.name
          - name: podNamespace
            valueFrom:
              fieldRef:
                apiVersion: v1
                fieldPath: metadata.namespace
          - name: podDeployName
            value: app
          - name: TZ
            value: "Asia/Shanghai"
        securityContext:
          runAsUser: 0
        volumeMounts:
          - name: data-log
            mountPath: /data/log/app/
          - name: filebeatconf
            mountPath: /usr/share/filebeat/filebeat.yml 
            subPath: usr/share/filebeat/filebeat.yml
      - name: lishanbin-nginx
        image: nginx:1.23.1
        env:
        - name: "username"
          value: "lishanbin"
        - name: "password"
          value: "admin123"
        - name: HOST_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.hostIP
        - name: NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        - name: POD_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: POD_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.name
        ports:
        - containerPort: 80
        volumeMounts:
        - name: data-log
          mountPath: /var/log/nginx
      volumes: 
      - name: data-log
        hostPath:
          path: /tmp/hostpath  
      - emptyDir: {}
        name: logpath
      - name: local-time
        hostPath:
          path: /usr/share/zoneinfo/Asia/Shanghai
      - name: filebeatconf
        configMap:
          name: filebeatconf     # 挂载filebeat配置文件
          items:
            - key: filebeat.yml
              path: usr/share/filebeat/filebeat.yml
---
apiVersion: v1
kind: Service
metadata:
  name: lishanbin-nginx
  labels:
    app: lishanbin-nginx
spec:
  ports:
  - port: 80
    protocol: TCP
    name: http
  selector:
    app: lishanbin-nginx
---
apiVersion: v1
kind: Service
metadata:
  name: ishanbin-nginx-nodeport
spec:
  selector:
    app: lishanbin-nginx
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
    nodePort: 30080
  type: NodePort

---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: lishanbin-nginx
  namespace: default
spec:
  ingressClassName: lishanbin  # 使用 nginx 的 IngressClass(关联的 ingress-nginx 控制器)
  rules:
  - host: ngdemo.qikqiak.com  # 将域名映射到 lishanbin-nginx 服务
    http:
      paths:
      - path: /
        pathType: ImplementationSpecific
        backend:
          service:  # 将所有请求发送到 lishanbin-nginx 服务的 80 端口
            name: lishanbin-nginx
            port:
              number: 80
# 不过需要注意大部分Ingress控制器都不是直接转发到Service
# 而是只是通过Service来获取后端的Endpoints列表,直接转发到Pod,这样可以减少网络跳转,提高性能

4.kibana创建索引,查看采集到的日志

k8s efk,kubernetes,kubernetes,elasticsearch,容器

 文章来源地址https://www.toymoban.com/news/detail-550010.html

k8s efk,kubernetes,kubernetes,elasticsearch,容器

k8s efk,kubernetes,kubernetes,elasticsearch,容器

 

到了这里,关于k8s-EFK (filebeat)日志收集的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Kubernetes 企业项目实战】04、基于 K8s 构建 EFK+logstash+kafka 日志平台(中)

    目录 一、安装存储日志组件 Elasticsearch 1.1 创建名称空间 1.2 安装 elasticsearch 组件 1)创建 headless service 服务 2)通过 statefulset 创建 elasticsearch 集群 二、安装 kibana 可视化 UI 界面 本篇文章所用到的资料文件下载地址: kibana-v7.2.0-kubernetes文档类资源-CSDN下载 https://download.csdn.ne

    2023年04月08日
    浏览(31)
  • k8s搭建EFK日志系统

    前面大家介绍了 Kubernetes 集群中的几种日志收集方案,Kubernetes 中比较流行的日志收集解决方案是 Elasticsearch、Fluentd 和 Kibana(EFK)技术栈,也是官方现在比较推荐的一种方案。 Elasticsearch  是一个实时的、分布式的可扩展的搜索引擎,允许进行全文、结构化搜索,它通常用于

    2024年02月04日
    浏览(35)
  • 搭建EFK(Elasticsearch+Filebeat+Kibana)日志收集系统[windows]

    EFK简介 Elasticsearch 是一个实时的、分布式的可扩展的搜索引擎,允许进行全文、结构化搜索,它通常用于索引和搜索大量日志数据,也可用于搜索许多不同类型的文档。 FileBeats 是数据采集的得力工具。将 Beats 和您的容器一起置于服务器上,或者将 Beats 作为函数加以部署,然

    2024年02月08日
    浏览(44)
  • k8s--基础--24.3--efk--安装efk组件

    下面的步骤在k8s集群的master1节点操作 创建一个名称空间,将EFK组件安装到该名称空间中。 名称空间:kube-logging 内容 通过上面步骤已经创建了一个名称空间kube-logging,在这个名称空间下去安装日志收集组件efk 我们将部署一个3节点的Elasticsearch集群,我们使用3个Elasticsearch P

    2024年02月14日
    浏览(32)
  • k8s部署efk

    环境简介: kubernetes: v1.22.2 helm: v3.12.0 elasticsearch: 8.8.0 chart包:19.10.0 fluentd: 1.16.2 chart包: 5.9.4 kibana: 8.2.2 chart包:10.1.9 整体架构图 : 1.1、es角色分类 准主节点 :主节点负责集群级别的轻量级操作,包括创建和删除索引、跟踪集群中的所有节点以及分片分配等功能 数据节

    2024年04月16日
    浏览(27)
  • 【 云原生 kubernetes 】- 使用Filebeat采集k8s日志

    ⚡️: 日志采集器Logstash其功能虽然强大,但是它依赖java、在数据量大的时候,Logstash进程会消耗过多的系统资源,这将严重影响业务系统的性能,而filebeat就是一个完美的替代者,它基于Go语言没有任何依赖,配置文件简单,格式明了, ​ 用于转发和集中日志数据的轻量级托

    2024年02月12日
    浏览(30)
  • 电商大数据日志收集系统之EFK

    背景 日志管理的挑战: 关注点很多,任何一个点都有可能引起问题 日志分散在很多机器,出了问题时,才发现日志被删了 很多运维人员是消防员,哪里有问题去哪里 集中化日志管理思路: 日志收集 ——》格式化分析 ——》检索和可视化 ——》 风险告警 ELK架构: ELK架构

    2024年02月07日
    浏览(32)
  • Kubernetes+EFK构建日志分析平台

    目录 Fluentd 工作原理 1.1、主机初始化配置 1.2、部署docker环境 二、部署kubernetes集群 2.1、组件介绍 2.2、配置阿里云yum源 2.3、安装kubelet kubeadm kubectl 2.4、配置init-config.yaml 2.5、安装master节点 2.6、安装node节点 2.7、安装flannel 3、部署企业镜像仓库 3.1、部署Harbor仓库 3.2、导入EFK镜

    2024年02月12日
    浏览(22)
  • 基于Elasticsearch + Fluentd + Kibana(EFK)搭建日志收集管理系统

    目录 1、EFK简介 2、EFK框架 2.1、Fluentd系统架构 2.2、Elasticsearch系统架构

    2024年02月11日
    浏览(28)
  • 【运维知识大神篇】超详细的ELFK日志分析教程7(filebeat常用模块+filebeat采集固定格式日志+自定义日志格式写入ES+EFK架构转ELFK架构+两个业务实战练习)

    本篇文章继续给大家介绍ELFK日志分析,详细请见下面目录。 目录 filebeat采集nginx日志 filebeat模块使用 一、Nginx模块 二、tomcat模块 三、filebeat写数据到ES集群自定义索引 四、filebeat自定义字段之nginx写入ES 五、filebeat自定义字段之tomcat写入ES 六、indices模块实现多个input写入不同

    2024年02月05日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包