写点什么

ELK 协议栈基本介绍

发布于: 2021 年 05 月 14 日
ELK协议栈基本介绍

1、集中式日志系统


日志,对于任何系统来说都是及其重要的组成部分。在计算机系统里面,更是如此。但是由于现在的计算机系统大多比较复杂,很多系统都不是在一个地方,甚至都是跨国界的;即使是在一个地方的系统,也有不同的来源,比如,操作系统,应用服务,业务逻辑等等。他们都在不停产生各种各样的日志数据。根据不完全统计,我们全球每天大约要产生 2EB 的数据。

面对如此海量的数据,又是分布在各个不同地方,如果我们需要去查找一些重要的信息,难道还是使用传统的方法,去登陆到一台台机器上查看?看来传统的工具和方法已经显得非常笨拙和低效了。于是,一些聪明人就提出了建立一套集中式的方法,把不同来源的数据集中整合到一个地方。

一个完整的集中式日志系统,是离不开以下几个主要特点的。

•          收集-能够采集多种来源的日志数据

•          传输-能够稳定的把日志数据传输到中央系统

•          存储-如何存储日志数据

•          分析-可以支持 UI 分析

•          警告-能够提供错误报告,监控机制

2、ELK 协议栈介绍及体系结构


ELK 其实并不是一款软件,而是一整套解决方案,是三个软件产品的首字母缩写,Elasticsearch,Logstash 和 Kibana。这三款软件都是开源软件,通常是配合使用,而且又先后归于 Elastic.co 公司名下,故被简称为 ELK 协议栈。

•          Elasticsearch

             Elasticsearch 是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文搜索引擎 Apache Lucene 基础上的搜索引擎,使用 Java 语言编写。

             主要特点

–          实时分析

–          分布式实时文件存储,并将每一个字段都编入索引

–          文档导向,所有的对象全部是文档

–          高可用性,易扩展,支持集群(Cluster)、分片和复制(Shards 和 Replicas)。见图 2 和图 3

–          接口友好,支持 JSON

•          Logstash

             Logstash 是一个具有实时渠道能力的数据收集引擎。使用 JRuby 语言编写。其作者是世界著名的运维工程师乔丹西塞 (JordanSissel)。

             主要特点

–          几乎可以访问任何数据

–          可以和多种外部应用结合

–          支持弹性扩展

             它由三个主要部分组成

–          Shipper-发送日志数据

–          Broker-收集数据,缺省内置 Redis

–          Indexer-数据写入

•          Kibana

             Kibana 是一款基于 Apache 开源协议,使用 JavaScript 语言编写,为 Elasticsearch 提供分析和可视化的 Web 平台。它可以在 Elasticsearch 的索引中查找,交互数据,并生成各种维度的表图。

3、Elk 整体架构


4、参考文档


ELK 官网:https://www.elastic.co/

ELK 官网文档:https://www.elastic.co/guide/index.html

ELK 中文手册:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html

ELK 中文社区:https://elasticsearch.cn/

发布于: 2021 年 05 月 14 日阅读数: 16
用户头像

专注于大数据技术研究 2020.11.10 加入

运营公众号:五分钟学大数据。大数据领域原创技术号,深入大数据技术

评论

发布
暂无评论
ELK协议栈基本介绍