日志收集之kafka篇

简介: 日志收集     日志收集包括服务器日志收集和埋码日志收集两种。     服务器日志主要是nginx、tomcat等产生的访问和业务日志。     埋码收集主要是某些服务器无法收集,需要在前端进行收集的数据。 收集流程     日志处理是指将消息队列用在日志处理中,比如Kafka的应用,解

日志收集

    日志收集包括服务器日志收集和埋码日志收集两种。

    服务器日志主要是nginx、tomcat等产生的访问和业务日志。

    埋码收集主要是某些服务器无法收集,需要在前端进行收集的数据。

收集流程

    日志处理是指将消息队列用在日志处理中,比如Kafka的应用,解决大量日志传输的问题。

8015a5a7118c9c47133dc5c4a330ec50fedc2592

  • 日志采集客户端,负责日志数据采集,定时写受写入Kafka队列;
  • Kafka消息队列,负责日志数据的接收,存储和转发;
  • 日志处理应用:订阅并消费kafka队列中的日志数据;

      下面是一个应用的实例图

8cbff4f7e6938e27687fe41ad3964043472e63f9

      存储可以是Elasticsearch,对数据进行实时分析。

为什么kafka

    Kafka 是分布式发布-订阅消息系统。它最初由 LinkedIn 公司开发,使用 Scala语言编写,之后成为 Apache 项目的一部分。Kafka 是一个分布式的可划分的多订阅者,冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。如果对时时性要求较高的话,可以使用这种方案。

    它具备以下特点:

  • 同时为发布和订阅提供高吞吐量。据了解,Kafka 每秒可以生产约 25 万消息(50 MB),每秒处理 55 万消息(110 MB)。

  • 可进行持久化操作。将消息持久化到磁盘,因此可用于批量消费,例如 ETL,以及实时应用程序。通过将数据持久化到硬盘以及 replication 防止数据丢失。

  • 分布式系统,易于向外扩展。所有的 producerbroker consumer 都会有多个,均为分布式的。无需停机即可扩展机器。

  • 消息被处理的状态是在 consumer 端维护,而不是由 server 端维护。当失败时能自动平衡。

  • 支持 online offline 的场景。

kafka的测试效果

    下面是单机情况下的测试效果:

5a820d5db579694c3f497c57f8613e203fb18268

kafka的核心概念

    kafka中的核心概念如下:

  • Producer 特指消息的生产者
  • Consumer 特指消息的消费者
  • Consumer Group 消费者组,可以并行消费Topicpartition的消息
  • Broker:缓存代理,Kafa 集群中的一台或多台服务器统称为 broker
  • Topic:特指 Kafka 处理的消息源(feeds of messages)的不同分类。
  • PartitionTopic 物理上的分组,一个 topic 可以分为多个 partition,每个 partition 是一个有序的队列。partition 中的每条消息都会被分配一个有序的 idoffset)。
  • Message:消息,是通信的基本单位,每个 producer 可以向一个 topic(主题)发布一些消息。
  • Producers:消息和数据生产者,向 Kafka 的一个 topic 发布消息的过程叫做 producers 
  • Consumers:消息和数据消费者,订阅 topics 并处理其发布的消息的过程叫做 consumers

kafka的整体流程

    kafka的整体流程:

20d3ab6d9b4d8555de9b6bfd62cbef111a41bb06

          数据通过flume在客户端进行代理,收集各种日志信息,整体模式使用生产者,消费者的模型。

          producer可以根据配置设置发送的时间段。

          broker中分为不同的topic,topic中又可以分为不同的partition,这个有点儿类似于数据库中的分区表,对于数据量大的情况下非常适合。

          customer负责消费消息日志,如果需要时时消费,则可以使用storm或者spark streaming,如果离线消费,可以使用mapreduce。


kafka总结

    kafka可以完全应用到不同的业务场景中,配合zookeeper,保证系统的高可用性。



作者:skyme

联系方式:

邮箱【cloudskyme@163.com】

QQ【270800073】

本文版权归作者和云栖社区共同所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。



目录
相关文章
|
4月前
|
消息中间件 Kafka 网络安全
淘东电商项目(49) -ELK+Kafka分布式日志收集(docker下搭建kafka)
淘东电商项目(49) -ELK+Kafka分布式日志收集(docker下搭建kafka)
47 0
|
4月前
|
消息中间件 搜索推荐 关系型数据库
淘东电商项目(50) -ELK+Kafka分布式日志收集(实现篇)
淘东电商项目(50) -ELK+Kafka分布式日志收集(实现篇)
41 0
|
4月前
|
消息中间件 Kafka 数据库
淘东电商项目(48) -ELK+Kafka分布式日志收集(原理篇)
淘东电商项目(48) -ELK+Kafka分布式日志收集(原理篇)
32 0
淘东电商项目(48) -ELK+Kafka分布式日志收集(原理篇)
|
消息中间件 编解码 JSON
Kafka、Logstash、Nginx日志收集入门
Kafka、Logstash、Nginx日志收集入门
184 0
|
消息中间件 存储 JSON
Flink on yarn 实时日志收集到 kafka 打造日志检索系统
背景 在 Flink on yarn 的模式下,程序运行的日志会分散的存储在不同的 DN 上,当 Flink 任务发生异常的时候,我们需要查看日志来定位问题,一般我们会选择通过 Flink UI 上面的 logs 来查看日志,或者登录到对应的服务器上去查看,但是在任务日志量非常大的情况下,生成的日志文件就非常多,这对于我们排查问题来说,就造成了很大的不便,所以,我们需要有一种统一的日志收集,检索,展示的方案来帮忙我们快速的分析日志,定位问题.
|
消息中间件 数据可视化 NoSQL
ELK+Kafka搭建分布式日志收集系统
ELK+Kafka搭建分布式日志收集系统
413 0
ELK+Kafka搭建分布式日志收集系统
|
消息中间件 存储 Kafka
部署ELK+Kafka+Filebeat日志收集分析系统
ELK+Kafka+Filebeat日志系统 文章目录 ELK+Kafka+Filebeat日志系统 1.环境规划 2.部署elasticsearch集群 2.1.配置es-1节点 2.2.配置es-2节点 2.3.配置es-3节点 2.4.使用es-head插件查看集群状态 3.部署kibana 4.部署zookeeper 4.1.配置zookeeper-1节点 4.2.配置zookeeper-2节点 4.3.配置zookeeper-3节点 4.4.启动所有节点 5.部署kafka 5.1.配置kafka-1节点 5.2.配置kafka-2节点 5.3.配置kafka-3节点
662 0
部署ELK+Kafka+Filebeat日志收集分析系统
|
消息中间件 存储 监控
SpringBoot+kafka+ELK分布式日志收集
快速搭建ELK完成日志收集
9342 0
|
27天前
|
消息中间件 安全 Kafka
2024年了,如何更好的搭建Kafka集群?
我们基于Kraft模式和Docker Compose同时采用最新版Kafka v3.6.1来搭建集群。
2024年了,如何更好的搭建Kafka集群?