ELK不是一个单独的系统,它是由elasticsearch(存储,搜索和分析数据),logstash(分析,整理,格式化数据),kibana(展示数据)三个开源的系统组成的一个分布式的数据处理系统
官网地址:https://www.elastic.co
E是指elasticsearch,是一个开源的分布式,可扩展,高可用的 RESTful 风格的搜索和数据分析引擎
L是指Logstash,是开源的服务器端数据处理管道,能够同时从多个来源采集数据、转换数据,然后将数据发送到你需要存储的地方(此处以elasticsearch为例)
K是指Kibana,通过Kibana,可以以可视化的图表形式展示出 Elasticsearch 中的数据并操作 Elastic Stack数据
一 ElasticSearchElasticSearch是一个基于Lucene的 开源的,分布式的,水平扩展的,高可用的数据搜索和分析引擎,其以近乎实时的速度读取,写入和分析数据,Lucene的介绍:, 提到分布式,高可用,扩展等,首先想到的就是集群部署了,ElasticSeach也不例外,并且其集群部署相当简单,基本上不需要配置任何东西.
基本概念:
集群(Cluster):一个集群有多个节点(Node)组成,通过所有的节点一起保存你的全部数据并且提供联合索引和搜索功能的节点集合,每个集群只有一个名字,这个名字非常重要,
其他的节点是通过该名称加入到集群的1. 节点(Node):集群是由一个个节点组成的,每个节点代表着一台服务器,通过设置节点的名称,可以知道的加入到集群
索引(Index):一个索引就是含有某些相似特性的文档的集合,可以简单的认为一个索引代表上存储了一部分数据,相当于关系型数据库的一张表
文档(Doc):存储在es中数据可被索引的数据的基础单元,相当于关系型数据库中的一行数据,一个索引可以根据需求存储多个文档
分片和复制(Shards & Replicas)
二 LogstashLogstash是一个开源的服务器端数据处理管道,可以从多个数据源实时的收集各种格式的数据。并且统一过滤来自不同源的数据,并按照开发者的制定的规范输出到目的地
基本概念
输入(Input):Input插件可以实时的时候包括文本,队列,redis为数据源的数据.
过滤(filter):filter插件可以对Input插件收集的数据进行数据的分析过滤和格式化
输出(output):output插件可以对filter插件分析过滤的数据输出到用户指定的存储位置
三 KibanaKibana 让你能够可视化 Elasticsearch 中的数据并操作 Elastic Stack
下图为基本的RLK日志系统架构