ELK大规模日志实时处理系统理论分析一

1.核心组成

ELK是一个应用套件,由 Elasticsearch(快速检索)、Logstash(收集过滤日志)和Kibana(基于web可视化平台)三部分组成,简称ELK。
特点:开源免费、功能强大的日志分析管理系统。
作用:ELK可以将我们的 系统日志、网站日志、应用系统日志等各种日志进行 收集、过滤、清洗,然后进行集中存放并可用于实时 检索、分析
这三款软件都是开源软件,通常是配合使用,而且又先后归于Elastic.co公司名下,故又被简称为ELK Stack。
如下图:
一、ELK架构介绍
1、Elasticsearch介绍
    Elasticsearch是一个实时的分布式 搜索和分析引擎,它可以用于 全文搜索,结构化搜索以及分析,采用java语言编写。
Elasticsearch支持集群架构,典型的集群架构如下图所示:
2.Logstash介绍
Logstash是一款轻量级的、开源的日志 收集、处理框架,它可以方便的把分散的、多样化的日志搜集起来,并进行自定义过滤分析处理,然后 传输到指定的位置,比如某个服务器或者文件。Logstash采用JRuby语言编写。
特点:
从功能上来讲, 它只做三件事:
  • input:数据收集
  • filter:数据加工,如过滤,改写等
  • output:数据输出
上图各部分含义如下
shipper、Indexer是重点核心
3.kibana介绍
Kibana是一个开源的数据分析可视化平台,可以为日志数据进行高效的搜索、可视化汇总和多维度分析,还可以与Elasticsearch搜索引擎之中的数据进行交互。它基于浏览器的界面操作可以快速创建动态仪表盘,实时监控ElasticSearch的数据状态与更改。
4.ELK工作流程
一般都是在需要收集日志的所有服务器上部署logstash,作为logstash中的shipper用于监控并收集、过滤日志,接着,将过滤后的日志发送给Broker,然后,Logstash 中的 Indexer将存放在Broker 中的数据在写入Elasticsearch,Elasticsearch对这些数据创建索引,最后由Kibana对其进行各种分析并以图表的形式展示。

二、Zookeeper基础与入门
概念介绍:
先介绍分布式协调技术,所谓分布式协调技术主要是用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种共享资源,防止造成资源竞争(脑裂)的结果。
Zookeeper概念
是一种为分布式应用所设计的高可用、高性能的开源协调服务。他提供分布式锁服务,也提供了数据的维护和管理机制,如统一命名服务、状态同步服务、集群管理、分布式消息队列分布式应用配置项的管理等等。
Zookeeper工作原理
(1)Master启动
对多个主节点配置,当他们启动后会向Zookeeper注册节点信息。注册完进行选举,编号最小的成为主节点。
2)master故障
当主节点发生故障,它所在Zookeeper所注册的节点信息会被自动删除,,Zookeeper会自动感知节点的变化、发现主节点故障后会再次发出选举,直到选举出新的主节点。
3)Master恢复
如果主节点恢复,他会再次向Zookeeper注册自身的节点信息,只不过这时候它注册的节点信息将会变成Master00003,而不是原来的信息,Zookeeper会再次发动选举,主节点B再次获胜继续担任节点,主节点A担任备用节点。
Zookeeper就是通过这样的协调、调度机制如此反复的对集群进行管理和状态同步的。
Zookeeper集群架构图

三、kafka基础入门
3.1kafka基本概念
Kafka是一种高吞吐量的分布式发布/订阅消息系统。是Apache组织下的一个开源系统。
特点:
实时的处理大量数据以满足各种需求场景:比如基于hadoop平台的数据分析、低时延的实时系统、storm/spark流式处理引擎等。kafka现在它已被多家大型公司作为多种类型的数据管道和消息系统使用。
3.2 Kafka角色术语
3.3 Kafka拓扑架构
3.4 Topic(主题)与Partition(队列)
3.5、Kafka消息发送的机制
3.6 Kafka消息消费机制
3.7    Kafka消息存储机制
segment数据文件有两个部分组成,分别index file和data file,此两个文件一一对应,成对出现,后缀“.index”和".log" 分别表示为segment索引文件和数据文件。
kafka 最核心的思想是使用磁盘,而不是使用内存,使用磁盘操作有以下几个好处:
  • 磁盘缓存由Linux系统维护,减少了程序员的不少工作。
  • 磁盘顺序读写超过内存随机读写。
  • JVM的GC效率低,内存占用大。使用磁盘可以避免这一问题。
  • 系统冷却后,磁盘依然可用

四、filebeat基础与入门
4.1、什么是filebeat
            filebeat是一个开源的文本日志收集器,他是elastic公司Beats数据采集产品的一个子产品,采用go语言开发,一般安装在业务服务器上作为代理来监测日志目录或特定的日志文件,并把它们发送到logstash、elasticsearch、redis或Kafka等。
filebeat主要由两个组件构成: prospector(探测器)和harvester(收集器)。这类组件一起协作完成filebeat的工作。

五、ELK常见应用架构
    1.简单的ELK应用架构
2、典型ELK应用架构
3、ELK集群架构
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑马金牌编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值