1.ELKstack介绍
[toc]
ELKstack大纲
ELKstack简介
什么是ELK?
通俗来讲,ELK是由Elasticsearch、Logstash、Kibana 三个开源软件的组成的一个组合体,这三个软件当中,每个软件用于完成不同的功能,ELK 又称为ELK stack,官方域名为elastic.co,ELK stack的主要优点有如下几个:
- 处理方式灵活: elasticsearch是实时全文索引,具有强大的搜索功能
- 配置相对简单:elasticsearch全部使用JSON 接口,logstash使用模块配置,kibana的配置文件部分更简单。
- 检索性能高效:基于优秀的设计,虽然每次查询都是实时,但是也可以达到百亿级数据的查询秒级响应。
- 集群线性扩展:elasticsearch和logstash都可以灵活线性扩展
- 前端操作绚丽:kibana的前端设计比较绚丽,而且操作简单
elk在5版本之前,可以用redis,6.7版本之后使用卡夫卡,不用redis
什么是Elasticsearch?
是一个高度可扩展的开源全文搜索和分析引擎,它可实现数据的实时全文搜索搜索、支持分布式可实现高可用、提供API接口,可以处理大规模日志数据,比如Nginx、Tomcat、系统日志等功能。
- 主要功能:
- 是个数据库,数据放在里面可以快速搜索、存储日志
- 数据库L是一个高度可拓展的开源实现全文搜索和分析引擎
什么是Logstash?
可以通过插件实现日志收集和转发,支持日志过滤,支持普通log、自定义json格式的日志解析。
filebeat由于轻量化的特性,通常用于代替logstash跑腿收集各个服务器的日志,统一放到redis里,也可以取出放到elasticsearch中
主要功能:
- 收集日志,转发日志
- 可以通过插件实现日志的收集和转发,实现日志过滤 支持普通log
filebeat:
- 是一个轻量级的日志收集工具;
logstash:
- 是一个重量级日志收集工具,可以做分析、使用正则表达式、分析用户IP、画地图、查看用户分布情况等功能
什么是Kibana?
主要是通过接口调用elasticsearch的数据,并进行前端数据可视化的展现。
- 主要功能:
- 通过接口调用Elasticsearch的数据,并进行数据的可视化的展示,web图形化日志展示
ELKstack集群工作流程
elasticsearch 是一个数据库,logstash可以理解为是一个中介,让filebeat跑腿收集各个服务器的日志放到reids里,再通过logstash把日志拿出来放到ES里。
Redis和Kafka的区别
Redis和Kafka是两种不同类型的数据处理和消息传递系统,它们有以下几点区别:
数据模型
- Redis
- 基于内存的数据存储系统,它提供了多种数据结构,如字符串、哈希表、列表、集合和有序集合等。
- Redis允许对这些数据结构进行快速读写操作,并提供了丰富的数据操作命令。
- Kafka
- 分布式消息队列系统,它以高吞吐量、可持久化、可靠性传递的方式处理消息。
- Kafka将消息以类似于日志的方式进行持久化存储,并通过分区和复制机制实现高可靠性的消息传递。
应用场景
- Redis
- 适用于缓存、会话存储、发布/订阅系统、实时数据分析和计数器等场景。
- 它以其快速的读写能力和丰富的数据结构,为高性能的数据访问和处理提供了支持。
- Kafka
- 适用于构建实时流处理、事件驱动架构、日志收集和分发、数据管道等场景。
- 它提供了可持久化的消息传递机制,并支持分布式、可水平扩展的消息处理。
数据处理模式
- Redis
- 是一个直接对数据进行操作的系统,它支持读写操作和丰富的数据处理命令。
- 数据通常以键值对的形式存储在内存中,可以快速地进行读写和操作。
- Kafka
- 是基于发布/订阅模式的消息队列系统,它将消息发布到主题(Topic),然后订阅者(Consumer)可以从主题中消费消息。
- Kafka以分区和偏移量的方式存储和组织消息,保证了消息的有序性和可靠性。
数据持久化
- Redis
- 支持将数据持久化到磁盘上,以防止数据丢失。它提供了两种持久化机制:RDB(Redis Database)快照和AOF(Append-Only File)日志。
- RDB可以定期将数据集的快照保存到磁盘,而AOF则记录每个写操作,以便在重启时重新执行这些操作。
- Kafka
- 通过持久化存储日志文件来保证消息的可靠性。消息被写入磁盘,并根据配置的保留策略进行管理。消费者可以根据自己的需求从特定的偏移量读取消息,并且Kafka可以保留指定时间段内的消息。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 奥利奥の麦旋风!