elk概述

作者: 北海北_6dc3 | 来源:发表于2020-04-20 11:21 被阅读0次

什么是ELK

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

Elasticsearch

Elasticsearch 是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文搜索引擎 Apache Lucene 基础上的搜索引擎,使用 Java 语言编写。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
在ELK组合中,ES的功能是数据存储、索引和提供查询接口。
主要特点

  1. 实时分析
  2. 分布式实时文件存储,并将每一个字段都编入索引
  3. 文档导向,所有的对象全部是文档
  4. 高可用性,易扩展,支持集群(Cluster)、分片和复制(Shards 和 1. Replicas)。
  5. 接口友好,支持 JSON

Logstash

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

  • 几乎可以访问任何数据
  • 可以和多种外部应用结合
  • 支持弹性扩展
  • 它由三个主要部分组成
  • Shipper-发送日志数据
  • Broker-收集数据,缺省内置 Redis
  • Indexer-数据写入
  • logstach支持读取数据类型:
    1. 标准输入(Stdin)
    2. 读取文件(File)
    3. 读取网络数据(TCP)
    4. 生成测试数据(Generator)
    5. 读取Syslog数据
    6. 读取Redis数据
    7. 读取Collectd数据
  • logstach支持输出数据类型:
    1. 标准输出(Stdout)
    2. 保存成文件(FIle)
    3. 保存进ElasticSearch
    4. 输出到Redis
    5. 输出网络数据(TCP)
    6. 输出到Statsd
    7. 报警到Nagios
    8. 发送邮件(Email)
    9. 调用命令执行(Exec)

Kibana

Kibana 是一款基于 Apache 开源协议,使用 JavaScript 语言编写,为 Elasticsearch 提供分析和可视化的 Web 平台。它可以在 Elasticsearch 的索引中查找,交互数据,并生成各种维度的表图。可以根据时间、索引(_index)、类型(_type)、或者是字段(_Field)进行检索。

Filebeat

ELK 协议栈的新成员,一个轻量级开源日志文件数据搜集器,基于 Logstash-Forwarder源代码开发,是对它的替代。在需要采集日志数据的 server 上安装Filebeat,并指定日志目录或日志文件后,Filebeat就能读取数据,迅速发送到Logstash进行解析,亦或直接发送到 Elasticsearch进行集中式存储和分析。

Elk整体架构

image.png

类似日志框架

  • Splunk
  • SILK

ELK beats平台介绍

beats有三个典型的例子:Filebeat、Topbeat、Packetbeat。Filebeat用来收集日志,Topbeat用来收集系统基础设置数据如cpu、内存、每个进程的统计信息,Packetbeat是一个网络包分析工具,统计收集网络信息。这三个是官方提供的。后续会慢慢介绍这三个beat。

参考资料:
ELK概述
集中式日志系统 ELK 协议栈详解
【ELK 实施与部署(一)】

基于 ELK Stack 和 Spark Streaming 的日志处理平台设计与实现

ELK beats平台介绍(11th)

相关文章

网友评论

      本文标题:elk概述

      本文链接:https://www.haomeiwen.com/subject/mnfrihtx.html