前言
本章将为学习全文搜索引擎ElasticSearch基础概念的相关知识做铺垫
方法
1.Elastic Stack
官方网站:https://www.elastic.co/cn/
Elastic Stack也就是我们学习ES的一个技术栈。
那么Elastic Stack主要包含下面的一些内容:
在老版本的ES技术栈中,Elastic Stack被叫做ELK,即ElasticSearch+Logstash+Kibana,由于新成员Beats的加入,使得该技术栈的名字不得不做出一些改变,也就是我们现在称为的Elastic Stack!
2.Elastic Stack关系流程
图中虚线中的便是Elastic Stack的核心组件,即ElasticSearch+Logstash+Beats+Kibana
下面的图则表示各个组件之间的联系:
处理流程:
1)通过我们的Beats(如FileBeat、MetricBeat等)将数据信息进行收集
2)数据采集完成后,可以将数据直接交给ElasticSearch,也可以交给Logstash做进一步的处理
2.1)直接交给ElasticSearch,ES将数据进行存储
2.2)交给Logstash,可以将数据的格式做进一步的处理,将想要的格式数据转交给ES进行存储
3)ES中的数据可以通过Kibana做数据的图形化展示
ElasticSearch为Elastic Stack最为核心的部分!
3.Elastic Stack成员详解
ElasticSearch:
ElasticSearch基于Java,是一个开源分布式搜索引擎,它的特点有:分布式、零配置、自动发现、索引自动分片、索引副本机制、restful风格接口、多数据源、自动搜索负载等。
Logstash:
Logstash基于Java,是一个开源的用于收集分析和存储日志的工具
Kibana:
Kibana基于nodejs,也是一个开源免费的工具,Kibana可以为Logstash和ElasticSearch提供有好的Web界面,可以汇总、分析和搜索重要的数据日志。
Beats:
Beats是elastic公司开源的一款采集系统监控数据的代理agent,是在被监控服务器上以客户端的形式运行的数据收集器的统称,可以直接把数据发送给ElasticSearch或者通过Logstash发送给ElasticSearch,然后进行后续的数据分析活动。
Beats主要分为以下几种:
- Packetbeat:是一个网络数据包分析器,用于监控、收集网络流量信息,Packetbeat嗅探服务器之间的流量,解析应用层协议,并关联到消息的处理,其支持ICMP(v4 and v6)、DNS、HTTP、MySQL、PostgreSQL、Redis、MongoDB、memcache等协议;
- Filebeat:用于监控、收集服务器日志文件,其以已经取代logstash forwarder;
- Metricbeat:可定期获取外部系统的监控指标信息,其可以监控、收集Apache、HAProxy、MongoDB、MySQL、Nginx、PostgreSQL、Redis、System、Zookeeper等;
- Winlogbeat:用于监控、收集Windows系统的日志信息;