16. Kubernetes运维篇-日志收集

EFK日志收集-Fluentd

简介

此处EFK指的是Elasticsearch+Fluentd+Kibana,主要用于收集宿主机日志

组件介绍

Elasticsearch + Fluentd + Kibana(通常简称为EFK)是一个流行的日志管理和分析堆栈,它结合了Elasticsearch的强大搜索和分析能力、Fluentd的高效日志收集以及Kibana的数据可视化功能。

  1. Elasticsearch
    • 一个开源的搜索引擎,基于Lucene构建,用于存储、搜索和分析大量数据。
    • 提供了强大的全文搜索能力,以及复杂的搜索和分析功能。
    • 数据以JSON文档的形式存储,易于扩展和分布式部署。
  2. Fluentd
    • 一个开源的数据收集器,用于统一日志收集。
    • 通过插件系统支持多种数据源和输出,可以轻松地收集和转发日志数据。
    • 高效的数据处理能力,以及低资源消耗,使其成为日志收集的理想选择。
    • Fluentd通常用作日志收集的“胶水”,因为它能够将来自不同来源的数据统一格式化并转发到各种后端系统。
  3. Kibana
    • 一个开源的数据可视化和仪表盘工具,与Elasticsearch紧密集成。
    • 允许用户创建可视化的仪表盘,以直观地展示和分析存储在Elasticsearch中的数据。
    • 提供了丰富的可视化选项,包括图表、地图、热图等。

工作流程

  1. 日志收集:Fluentd部署在应用程序服务器上,负责收集日志数据。它可以配置为监控特定的日志文件,或者直接从应用程序中捕获日志。
  2. 数据转发:收集到的日志数据被Fluentd处理并转发到Elasticsearch集群。在这个过程中,Fluentd可以根据需要转换和格式化数据。
  3. 数据存储和分析:Elasticsearch接收来自Fluentd的数据,并将其索引存储起来。这使得数据可以快速检索和分析。
  4. 数据可视化:Kibana连接到Elasticsearch集群,允许用户通过创建仪表盘和可视化来探索和分析数据。

示意图

部署

创建EFK目录

mkdir -p /data/efk

下载yaml

yaml参考文件,需要酌情修改

  • Elasticsearch

es-service.yaml
es-statefulset.yaml

  • Kibana

kibana-service.yaml
kibana-deployment.yaml

  • Fluentd

fluentd-es-configmap.yaml
fluentd-es-daemonset.yaml

调整yaml

  1. 一定要根据先前学习内容调整yaml配置,如:
  2. 根据需要调整NameSpace;
  3. 根据需要调整镜像地址;
  4. 根据需要调整存储方式;
  5. 根据需要调整Pod名称;
  6. 调整Kibana可以外网访问;
  7. 调整Kibana的SERVER_BASEPATH为注释;

部署EFK服务

cd /data/efk/
kubectl create -f es-service.yaml -f es-statefulset.yaml
kubectl create -f kibana-service.yaml -f kibana-deployment.yaml
kubectl create -f fluentd-es-configmap.yaml -f fluentd-es-daemonset.yaml

查看EFK服务

  • 查看Estaticsearch
kubectl get pod -n efk-logs | grep estaticsearch
  • 查看Kibana
kubectl get pod -n efk-logs | grep kibana
  • 查看fluentd
kubectl get pod -n efk-logs | grep fluentd

EFK日志收集-Filebeat

简介

此处EFK指的是Elasticsearch+Filebeat+Kibana,主要用于收集容器日志

组件介绍

Elasticsearch + Filebeat + Kibana(通常简称为EFK或EFKB)是另一个流行的日志管理和分析堆栈,它结合了Elasticsearch的搜索和分析能力、Filebeat的轻量级日志转发功能以及Kibana的数据可视化。

  1. Elasticsearch
    • 一个开源的搜索引擎,基于Lucene构建,用于存储、搜索和分析大量数据。
    • 提供了强大的全文搜索能力,以及复杂的搜索和分析功能。
    • 数据以JSON文档的形式存储,易于扩展和分布式部署。
  2. Filebeat
    • 一个轻量级的日志转发器,属于Elastic Stack中的Beats系列。
    • 专为转发日志文件而设计,可以监控指定的日志文件或目录,并将日志事件发送到Elasticsearch或Logstash。
    • 由于其轻量级特性,Filebeat对系统资源的占用很小,非常适合部署在生产和边缘服务器上。
    • Filebeat具有模块化的设计,可以快速配置来收集特定应用程序的日志,如Apache、Nginx、MySQL等。
  3. Kibana
    • 一个开源的数据可视化和仪表盘工具,与Elasticsearch紧密集成。
    • 允许用户创建可视化的仪表盘,以直观地展示和分析存储在Elasticsearch中的数据。
    • 提供了丰富的可视化选项,包括图表、地图、热图等。

工作流程

  1. 日志收集:Filebeat部署在应用程序服务器上,负责收集日志文件中的数据。它可以配置为监控特定的日志文件或目录。
  2. 数据转发:Filebeat处理收集到的日志数据,并将其转发到Elasticsearch集群。在转发过程中,Filebeat会保留日志事件的元数据,如时间戳、标签和字段。
  3. 数据存储和分析:Elasticsearch接收来自Filebeat的数据,并将其索引存储起来,以便进行快速检索和分析。
  4. 数据可视化:Kibana连接到Elasticsearch集群,允许用户通过创建仪表盘和可视化来探索和分析数据。

示意图

部署

创建EFK目录

mkdir -p /data/efk/

下载yaml

yaml参考文件,需要酌情修改

  • Elasticsearch

es-service.yaml
es-statefulset.yaml

  • Kibana

kibana-service.yaml
kibana-deployment.yaml

  • Filebeat

filebeat-configmap.yaml
filebeat-app-deployment.yaml

调整yaml

  1. 一定要根据先前学习内容调整yaml配置,如:
  2. 根据需要调整NameSpace;
  3. 根据需要调整镜像地址;
  4. 根据需要调整存储方式;
  5. 根据需要调整Pod名称;
  6. 调整Kibana可以外网访问;
  7. 调整Kibana的SERVER_BASEPATH为注释;

部署EFK服务

cd /data/efk/
kubectl create -f es-service.yaml -f es-statefulset.yaml
kubectl create -f kibana-service.yaml -f kibana-deployment.yaml
kubectl create -f filebeat-configmap.yaml -f filebeat-app-deployment.yaml

查看EFK服务

  • 查看Estaticsearch
kubectl get pod -n efk-logs | grep estaticsearch
  • 查看Kibana
kubectl get pod -n efk-logs | grep kibana
  • 查看fliebeat
kubectl get pod -n efk-logs | grep fliebeat
  • 32
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值