ELK 基础

简介

ELK是一个应用套件,由Elasticsearch,Logstash和Kibana组成

ElasticSearch

ElasticSearch是一个实时的分布式搜索和分析引擎,用于支持全文搜索,结构化搜索以及分析,采用java语言编写

  • ElasticSearch主要特点如下
    • 实时搜索,实时分析
    • 分布式架构,实时文件存储,将每一个字段都编入索引
    • 高可用性,易拓展,支持集群,分片和复制
    • 接口友好,支持json

架构如下:

由master和slave组成

Logstash

Logstash是一个轻量级的开源日志收集处理框架,可以方便的把分散的,多样化的日志搜集起来,并进行自定义过滤分析和处理,然后传输到指定的位置。

  • Logstash特点如下

    • 几乎可以访问任何数据
    • 可以和多种外部应用整合
    • 支持动态弹性扩展
  • Logstash功能:

    • input:数据收集
    • filter: 数据加工(例如:过滤,改写)
    • output:数据输出

    内部逻辑如下:

  • 每个部分的含义如下:
    • Shiper: 主要收集日志数据,负责监控本地日志文件的变化,及时把日志文件的最新内容收集起来,然后经过加工,过滤,输出到Broker
    • Broker:相当于日志的HUB,用来连接多个Shipper和多个Indexer(redis可以作为日志缓冲的broker)
    • Indexer:从Broker读取文本,经过加工,过滤输出到指定的介质(可以是文件,网络,ES)

kibana

kibana是一个开源的数据分析可视化平台,使用kibana对Logstash和Elasticsearch提供的日志数据进项高效的搜索,可视化汇总以及多维度分析

ELK工作流程

ELK常见架构

最简单的ELK架构

典型ELK架构