K8S 使用EFK日志的统一管理(详细步骤)

 更新时间:2025年01月26日 09:53:04   作者:Dusk_橙子  
在Kubernetes中,EFK是一种常见的日志统一管理方案,EFK堆栈允许你收集、存储、搜素、分析和可视化容器应用程序的日志,下面是如何在Kubernetes中使用EFK实现日志统一管理的详细步骤,感兴趣的朋友一起看看吧

在Kubernetes中,EFK是一种常见的日志统一管理方案。EFK堆栈允许你收集、存储、搜素、分析和可视化容器应用程序的日志。下面是如何在Kubernetes中使用EFK实现日志统一管理的详细步骤:

部署Elasticsearch

  • elasticsearch是一个分布式、RESTful风格的搜索和分析引擎,能够解决越来越多用例的查询语言,它通常用于日志和事件数据分析。
  • 首先,你需要再kubernetes集群中部署elasticsearch。这可以通过使用官方的elasticsearch helm chart或自定义yaml配置文件来完成。确保你的elasticsearch集群有足够的资源,并且已经正确配置以满足你的日志存储或查询需求。

部署Fluentd

  • Fluentd是一个开源的数据收集器,用于统一日志管理。在Kubernetes中,Fluentd通常违DaemonSet运行,在每个节点上收集容器日志。
  • 部署Fluentd涉及到创建一个DaemonSet资源对象,该对象会在每个节点上运行一个Fluentd实例。Fluentd的配置文件定义了日志的来源、过滤和处理方式,以及日志发送到Elasticsearch的方式。
  • 配置方式如下:
apiVersion: apps/v1  
kind: DaemonSet  
metadata:  
  name: fluentd-elasticsearch  
namespace: kube-system  
labels:  
	k8s-app: fluentd-logging  
spec:  
  selector:  
    matchLabels:  
     name: fluentd-elasticsearch  
template:  
  metadata:  
    labels:  
      name: fluentd-elasticsearch  
  spec:  
    containers:  
    - name: fluentd-elasticsearch  
      image: fluent/fluentd-kubernetes-daemonset:v1.11-debian-elasticsearch-1.0  
      env:  
        - name:  FLUENTD_ELASTICSEARCH_HOST  
          value: "elasticsearch-master.kube-system.svc:9200"  
        - name:  FLUENTD_ELASTICSEARCH_SCHEME  
          value: "http"  
      volumeMounts:  
      - name: varlog  
        mountPath: /var/log  
      - name: varlibdockercontainers  
        mountPath: /var/lib/docker/containers  
        readOnly: true  
    terminationGracePeriodSeconds: 30  
    volumes:  
    - name: varlog  
      hostPath:  
        path: /var/log  
    - name: varlibdockercontainers  
      hostPath:  
        path: /var/lib/docker/containers

在上面的配置中,Fluentd容器被配置为从主机的/var/log/var/lib/docker/containers路径收集日志,并将它们发送到Elasticsearch集群。

部署Kibana

  • kibana是一个web应用程序,用于搜索、查看和交互存储在elasticsearch索引中的日志数据。
  • 部署kibana可以通过使用官方的Kibana Helm Chart或自定义YAML配置文件来完成。Kibana的配置通常非常简单。主要用于指定他要连接的elasticsearch实例。
  • Kibana的Deployment示例配置:
apiVersion: apps/v1  
kind: Deployment  
metadata:  
  name: kibana  
  namespace: kube-system  
spec:  
  replicas: 1  
  selector:  
    matchLabels:  
      app: kibana  
  template:  
    metadata:  
      labels:  
        app: kibana  
    spec:  
      containers:  
      - name: kibana  
        image: docker.elastic.co/kibana/kibana:7.10.0  
        ports:  
        - containerPort: 5601  
        env:  
        - name: ELASTICSEARCH_URL  
          value: http://elasticsearch-master.kube-system.svc:9200  
        - name: ELASTICSEARCH_HOSTS  
          value: http://elasticsearch-master.kube-system.svc:9200

在这个配置中,Kibana容器被配置为连接到名为elasticsearch-master的elasticsearch服务。

验证和使用

一旦所有组件都部署完成,你可以通过访问Kibana的web界面(通常是http://<Kibana-Pod-IP>:5601)来验证日志统一管理是否正常工作。在Kibana中,你可以创建索引模式、搜索日志、创建可视化图表等。

注意实现

  • 确保elasticsearch、fluentd和kibana之间的网络连通性。
  • 根据你的日志量和存储需求,合理配置elasticsearch集群的存储和性能。
  • 监控elasticsearch和fluentd的性能和资源使用情况,确保它们不会成为集群的瓶颈。
  • 定期备份elasticsearch数据以防止数据丢失。
  • 考虑使用TLS/SSL加密Fluentd和Elasticsearch之间的通信以提高安全性。

到此这篇关于K8S 使用EFK日志的统一管理 的文章就介绍到这了,更多相关K8S EFK日志的统一管理 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • K8s HPA(自动伸缩)解读

    K8s HPA(自动伸缩)解读

    HPA(HorizontalPodAutoscaler)根据CPU/内存使用率自动调整Pod数量,实现水平扩展,与垂直扩展不同,需安装MetricsServer,支持Deployment、StatefulSet等资源,但不适用于DaemonSet
    2025-08-08
  • 使用kubectl获取pod日志小技巧分享

    使用kubectl获取pod日志小技巧分享

    文章介绍了如何使用kubectl命令查看K8S中Pod的日志,包括获取单个Pod日志、同一deployment下多个副本Pod的日志、最近xx行日志、最近一段时间的日志、上一个崩溃但还存在的Pod的日志、指定或所有容器的日志以及持续获取Pod日志的方法
    2026-02-02
  • Kubernetes部署可视化地图的十个步骤

    Kubernetes部署可视化地图的十个步骤

    这篇文章主要为大家介绍了十步骤Kubernetes部署的可视化地图,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-03-03
  • 节点NotReady后容器驱逐时间调整方式

    节点NotReady后容器驱逐时间调整方式

    文章介绍了Kubernetes早期版本中用于节点监控和Pod驱逐的参数,以及在k8s1.20版本后这些参数的废弃情况,通过测试,验证了新的TaintBasedEvictions机制的有效性,此外,还介绍了与Pod驱逐效率相关的kube-controller-manager参数,包括大规模集群的处理逻辑
    2026-01-01
  • k8s编排之Deployment知识点详解

    k8s编排之Deployment知识点详解

    这篇文章主要为大家介绍了k8s编排之Deployment知识点详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • Kubernetes组件和架构简介

    Kubernetes组件和架构简介

    Kubernetes是google开源的容器编排工具,本质是一组服务器集群,在集群的各个节点上运行程序来进行容器进行管理,最终实现资源管理智能化、自动化,这篇文章主要介绍了Kubernetes组件和架构简介,需要的朋友可以参考下
    2023-09-09
  • 详解k8s NetworkPolicy 网络策略是怎么样的

    详解k8s NetworkPolicy 网络策略是怎么样的

    这篇文章主要为大家介绍了k8s NetworkPolicy 网络策略是怎么样的深入解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • Kubernetes安装Jenkins的思路详解

    Kubernetes安装Jenkins的思路详解

    这篇文章主要介绍了Kubernetes安装Jenkins,Jenkins插件可以在Kubernetes集群中运行动态jenkins-slave代理,基于Kubernetes的docker,自动化在Kubernetes中运行的Jenkins-slave代理的缩放,需要的朋友可以参考下
    2022-06-06
  • K8S 实用工具之合并多个kubeconfig实现详解

    K8S 实用工具之合并多个kubeconfig实现详解

    这篇文章主要为大家介绍了K8S 实用工具之合并多个kubeconfig实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Kubernetes 1.28.2集群安装过程中的关键步骤详解(最新推荐)

    Kubernetes 1.28.2集群安装过程中的关键步骤详解(最新推荐)

    Kubernetes K8s是Google开源的容器编排平台,最初由Borg项目发展而来,K8s 1.28版本引入了非正常节点关闭恢复、内置Sidecar容器支持、Job优化、Proxy改进和调度框架优化等功能,本文介绍Kubernetes 1.28.2集群安装过程中的关键步骤,感兴趣的朋友一起看看吧
    2025-03-03

最新评论