ELK 介绍
ELK介绍
官网说明:https://www.elastic.co/cn/products
ELK 其实并不是一款软件,而是一整套解决方案,是三个软件产品的首字母缩写,Elasticsearch,Logstash 和 Kibana。这三款软件都是开源软件,通常是配合使用,而且又先后归于 Elastic.co 公司名下,故被简称为 ELK 协议栈
一句话简单了解E,L,K这三个软件
elasticsearch: 分布式搜索引擎
logstash: 日志收集与过滤,输出给elasticsearch
Kibana: 图形化展示
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是一个开源的数据采集工具,通过数据源采集数据.然后进行过滤,并自定义格式输出到目的地。
数据分为:
-
结构化数据 如:mysql数据库里的表等
-
半结构化数据 如: xml,yaml,json等
-
非结构化数据 如:文档,图片,音频,视频等
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的安装