ELK 介绍

ELK介绍

官网说明:https://www.elastic.co/cn/products

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

一句话简单了解E,L,K这三个软件

elasticsearch: 分布式搜索引擎

logstash: 日志收集与过滤,输出给elasticsearch

Kibana: 图形化展示

ELK 介绍

Elasticsearch介绍

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

主要特点

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

   官方产品介绍https://www.elastic.co/cn/elasticsearch/

 

Elasticsearch的安装

       https://blog.****.net/weixin_42527168/article/details/108141985

基础概念

主要的基础概念有: Index,Type,Document,Field,shard和replicas.

Index(索引): 是具有相似特性的文档集合。

Type(类型): 在一个索引中可以定义一个或多个类型。

Documenet(文档): 索引信息的基本单位。

Field(字段): ES里更小的信息单位。

为了便于理解,我们和mysql这种关系型数据库做一个对比:

关系型数据库(如mysql,oracle等) elasticsearch
database index
table type
row document
column field

 

ES是分布式搜索引擎,每个索引有一个或多个分片(shard),索引的数据被分配到各个分片上。你可以看作是一份数据分成了多份给不同的节点。

当ES集群增加或删除节点时,shard会在多个节点中均衡分配。默认是5个primary shard(主分片)和1个replica shard(副本,用于容错)。

 

logstash介绍

 

logstash是一个开源的数据采集工具,通过数据源采集数据.然后进行过滤,并自定义格式输出到目的地

数据分为:

  1. 结构化数据 如:mysql数据库里的表等

  2. 半结构化数据 如: xml,yaml,json等

  3. 非结构化数据 如:文档,图片,音频,视频等

logstash可以采集任何格式的数据,当然我们这里主要是讨论采集系统日志,服务日志等日志类型数据。

它由三个主要部分组成

  • Shipper-发送日志数据
  • Broker-收集数据,缺省内置 Redis
  • Indexer-数据写入

官方产品介绍:https://www.elastic.co/cn/products/logstash

input插件: 用于导入日志源 (==配置必须==)

https://www.elastic.co/guide/en/logstash/current/input-plugins.html

filter插件: 用于过滤(==不是配置必须的==)

https://www.elastic.co/guide/en/logstash/current/filter-plugins.html

output插件: 用于导出(==配置必须==)

https://www.elastic.co/guide/en/logstash/current/output-plugins.html

logstash的安装和日志采集

 

 

kibana介绍

Kibana是一个开源可视化平台,可以为ElasticSearch集群的管理提供友好的Web界面,帮助汇总,分析搜索重要的日志数据。

官方产品介绍:https://www.elastic.co/cn/kibana

kibana的安装