使用ELK(Elasticsearch、Logstash、Kibana)和Kafka实现微服务统一日志管理

由于传统的单体应用时代,大多数应用采用的是通过登录SSH客户端登服务器查看,使用less或者tail等指令。

使用ELK(Elasticsearch、Logstash、Kibana)和Kafka实现微服务统一日志管理,可以通过以下几个步骤来完成:

  1. 部署Kafka集群:首先需要部署一个Kafka集群,它将作为中间件来缓冲数据,确保高效的日志传输和处理。可以选择在Kubernetes中部署这些组件以实现容器化管理[2]。

  2. 部署ELK集群:在系统中部署Elasticsearch、Logstash和Kibana三个组件,搭建ELK日志系统。其中,Elasticsearch负责日志数据的存储与检索,Logstash负责从Kafka消费数据并将数据传输到Elasticsearch,Kibana则负责从Elasticsearch中读取日志数据并进行可视化展示[6]。

  3. 日志采集:可以使用Filebeat或者其他日志采集器收集微服务的日志数据,然后将数据发送到Kafka中[1]。

  4. 配置Logstash:配置Logstash以从Kafka消费数据,并将消费后的数据写入到Elasticsearch进行存储[4]。

  5. 使用Kibana进行日志查看与分析:在Kibana中创建索引模式,以便在Discover功能中查看和分析Elasticsearch中存储的日志数据。通过Kibana的Dashboard功能,可以进一步定制可视化面板,以便更直观地查看和分析日志数据[11]。

  6. 高可用性:为确保整个日志系统的高可用性,可以将Logstash、Elasticsearch和Kafka都通过集群模式进行构建[1]。

通过以上步骤,可以实现微服务统一日志管理的搭建。具体实施时,可以根据实际项目需求以及硬件资源进行相应的调整。

第四点中提到的什么是数据消费?

数据消费是一种以统计数据产品和统计数据服务为消费对象的消费活动,是比较特殊的信消息费用形式,是社会消费的重要组成部分。它是统计数据生产的目标和动力,是统计工作最终目标的体现。

1.1 最简单的ELK架构如下图:

1.2 引入kafka的典型ELK架构

为保证日志传输数据的可靠性和稳定性,引入Kafka作为消息缓冲队列,位于各个节点上的Logstash Agent(一级Logstash,主要用来传输数据)先将数据传递给消息队列,接着,Logstash server(二级Logstash,主要用来拉取消息队列数据,过滤并分析数据)将格式化的数据传递给Elasticsearch进行存储。最后,由Kibana将日志和数据呈现给用户。由于引入了Kafka缓冲机制,即使远端Logstash server因故障停止运行,数据也不会丢失,可靠性得到了大大的提升。

相比于最简单ELK架构优点:

Kafka+ELK

该架构优点在于引入了消息队列机制,提升日志数据的可靠性,但依然存在Logstash占用系统资源过多的问题,在海量数据应用场景下,可能会出现性能瓶颈。

1.3 FileBeats+Kafka+ELK集群架构

该架构从上面架构基础上改进而来的,主要是将前端收集数据的Logstash Agent换成了filebeat,消息队列使用了kafka集群,然后将Logstash和Elasticsearch都通过集群模式进行构建,完整架构如图所示:

FileBeats+Kafka+ELK集群架构

日志采集器Logstash其功能虽然强大,但是它依赖java、在数据量大的时候,Logstash进程会消耗过多的系统资源,这将严重影响业务系统的性能,而filebeat就是一个完美的替代者,它基于Go语言没有任何依赖,配置文件简单,格式明了,同时filebeat比logstash更加轻量级,所以占用系统资源极少,非常适合安装在生产机器上。这就是推荐使用filebeat,也是 ELK Stack 在 Agent 的第一选择。

此架构适合大型集群、海量数据的业务场景,它通过将前端Logstash Agent替换成filebeat,有效降低了收集日志对业务系统资源的消耗。同时,消息队列使用kafka集群架构,有效保障了收集数据的安全性和稳定性,而后端Logstash和Elasticsearch均采用集群模式搭建,从整体上提高了ELK系统的高效性、扩展性和吞吐量。我所在的项目组采用的就是这套架构,由于生产所需的配置较高,且涉及较多持久化操作,采用的都是性能高配的云主机搭建方式而非时下流行的容器搭建。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值