当前位置: 首页 > article >正文

Kubernetes中部署ELK Stack日志收集平台

1 、ELK概念

ELK是Elasticsearch、Logstash、Kibana三大开源框架首字母大写简称。市面上也被成为Elastic Stack。其中:

Elasticsearch是一个基于Lucene、分布式、通过Restful方式进行交互的近实时搜索平台框架。像类似百度、谷歌这种大数据全文搜索引擎的场景都可以使用Elasticsearch作为底层支持框架,可见Elasticsearch提供的搜索能力确实强大,市面上很多时候我们简称Elasticsearch为es。官方网站:https://www.elastic.co/cn/products/  ;

Logstash是ELK的中央数据流引擎,用于从不同目标(文件/数据存储/MQ)收集的不同格式数据,经过过滤后支持输出到不同目的地(文件/MQ/redis/elasticsearch/kafka等);

Kibana可以将elasticsearch的数据通过友好的页面展示出来,提供实时分析的功能。 通过上面对ELK简单的介绍,我们知道了ELK字面意义包含的每个开源框架的功能。市面上很多开发只要提到ELK能够一致说出它是一个日志分析架构技术栈总称,但实际上ELK不仅仅适用于日志分析,它还可以支持其它任何数据分析和收集的场景,日志分析和收集只是更具有代表性。并非唯一性。我们本教程主要也是围绕通过ELK如何搭建一个生产级的日志分析平台来讲解ELK的使用;

2、收集日志的对象

(1)、k8s系统组件日志

(2)、k8s部署应用中的日志

3、日志采集方案

采集流程:

使用ELK+Filebeat架构,还需要明确Filebeat采集K8S集群日志的方式。

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

使用DaemonSet的方式去给每一个node上部署日志收集程序logging-agent 然后使用这个agent对本node节点上的/var/log和/var/lib/docker/containers/两个目录下的日志进行采集 或者把Pod中容器日志目录挂载到宿主机统一目录上,这样进行收集

Docker默认的日志驱动(LogDriver)是json-driver,其会将日志以JSON文件的方式存储。所有容器输出到控制台的日志,都会以*-json.log的命名方式保存在/var/lib/docker/containers/目录下。

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

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

方案三:应用程序直接推送日志

这个方案需要开发在代码中修改直接把应用程序直接推送到远程的存储上,不再输入出控制台或者本地文件了,使用不太多

4、方案对比:

方式

优势

缺点

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

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

应用程序日志需要写到标准输出和标准错误输出,不支持多行日志

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

低耦合,扩展性强,方便和升级

每个Pod启动一个日志收集代理,增加资源消耗


http://www.kler.cn/news/340093.html

相关文章:

  • C# HttpClient请求URL重定向后丢失Authorization认证头信息 .Net Core Web Api
  • Android 智能手机使用技巧:适用于 Android 的最佳图案锁移除程序列表
  • 一起了解AI的发展历程和AGI的未来展望
  • 布局性能优化
  • vue快速上手
  • 《重生到现代之从零开始的C语言生活》—— 联合体和枚举
  • C++ 语言特性14 - override 和 final 关键字
  • Qt 加载字库,相同的Family Name导致设置字体无效问题
  • 多区域OSPF路由协议
  • 耳夹式耳机好用吗?有平价些的耳夹式耳机推荐吗?答案当然是肯定的
  • 无人机航测内业常用建模软件手册下载(上)
  • 面试--java基础
  • 人工智能的未来:从知识廉价时代到AI主导国家模式
  • SolarWinds中如何添加华为交换机实现网络管理
  • elasticsearch 8.2 版本批量化数据写入
  • “聪明车”上线“智慧路”!批量苏州金龙海格公交甘肃静宁投运
  • 从《被程序员耽搁的外卖员》看IT就业前景
  • 【有啥问啥】 群体智能(Swarm Intelligence):从自然到人工智能的深度探索
  • 利用 Pgpool-II 实现 IvorySQL 集群读写分离
  • 利用可解释性技术增强制造质量预测模型