大数据初探之Elastic Stack全面了解

原创做者,公众号【程序员读书】,欢迎关注公众号,转载文章请注明出处哦。node

相信不少作开发的小伙伴对Elasticsearch应该都听过或有必定的了解吧,毕竟Elasticsearch是时下最火的开源全文搜索引擎。linux

除了搜索功能以外,Elasticsearch也是一款大数据分析引擎,能够用于大数据实时分析,好比用于日志分析、指标监控、信息安全等方面,而要完成这些功能,则还须要与其余组件配合,这即是咱们如今要讲的Elastic Stack程序员

什么是Elastic Stack?

Elastic Stack是一套构建在开源基础之上,可让咱们安全可靠地采集任何来源、任何格式的数据,而且实时地对数据进行搜索、分析和可视化工具链。docker

从上面这段定义能够看出Elastic Stack的几个特色:采集、转换、搜索、分析、可视化,这些功能分别由ElasticSearchKibanaBeatsLogstash这几个组件来实现。api

Elasticsearch

ElasticsearchElastic Static的核心,能够用Elasticsearch来存储咱们的文档数据,利用Elasticsearch强大的搜索和分析功能为咱们的网站提供支持,ElasticSearch是分布式搜索引擎和大数据实时分析引擎,能够实时分析计算数据并得出结果,还能够经过Kibana的各类图表将分析结果可视化。浏览器

下面的思惟导图,是我学习Elasticsearch的一点简单的梳理:安全

Kibana

一图胜万言,KibanaElastic Stack产品中的一款可视化工具,支持柱状图、线状图、饼图、旭日图等多种图形,还可使用Vega 语法来设计独属于咱们本身的可视化图形。bash

经过Kibana能够实时呈现Elastichsearch聚合分析的数据,看到数据的趋势,为决策提供依据。服务器

Beats

Beats是一个轻量型采集器的平台,集合了多种轻量级的、单一的数据采集器,几乎能够兼容全部的数据类型,这些采集器能够从成千上万的系统中采集数据并向LogstashElasticsearch发送数据。restful

下面是Beats支持的采集器列表:

  • Filebeat:文件文件
  • Metricbeat:指标数据
  • Packetbeat:网络数据
  • Winlogbeat:Windows事件日志
  • Auditbea:审计数据
  • Heartbeat:运行时间监控
  • Functionbeat:无需服务器的采集器

固然,若是上面提供的采集器没法知足咱们的需求,Beats也支持自定义采集器。

Logstash

Logstash是开源的服务器端数据处理管道,可以同时从多个来源采集数据,转换数据,而后将数据发送到您最喜欢的存储库中,通常就是发送到Elasticsearch当中。

从上面的定义中,咱们能够看出,LogstashBeats有相似的功能,而实际上,Logstash的功能比Beats更强大,Logstash支持丰富的过滤器,能够经过过滤器将很是结构化的数据转换成结构化的数据,以下图所示:

经过上面的介绍,咱们应该对Elastich Stack中各个组件的功能有所了解,下面咱们经过示图意了解一下各组件之间的关系:

安装

Elastic Stack支持多种不一样的操做系统,不一样的操做系统也支持多种不一样的安装方式,咱们只是介绍在Linux操做系统的安装过程,使用的版本是最新的7.2

ElasticSearch安装

7.0以前的版本,安装Elasticsearch以前须要先安装Java SDK,在7.0以后,在Elasticsearch的安装中包含了Java SDK

下载安装

ElasticSearch支持多种操做系统,下面的示例是在Linux上的安装过程:

# 下载压缩安装包
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.2.0-linux-x86_64.tar.gz

# 解压
$ tar -zxvf elasticsearch-7.2.0-linux-x86_64.tar.gz

# 修改安装目录名称,不改也能够的
$ mv elasticsearch-7.2.0-linux-x86_64 /usr/local/elasticsearch
复制代码

安装的过程很是简单,直接解压即可以了。

启动ElasticSearch
# 进入到elasticsearch安装目录
$ cd /usr/local/elasticsearch

# 在elasticsearch安装目录运行如下命令
$ bin/elasticsearch
复制代码
在Docker上运行

除了本身下载安装外,能够elasticsearch的docker镜像进行安装,这种方式也很方便。

# 拉取elasticsearch的docker镜像
$ docker pull docker.elastic.co/elasticsearch/elasticsearch:7.2.0 

# 运行镜像,建立容器
$ docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.2.0
复制代码
测试是否安装成功

在浏览器输入地址http://localhost:9200,或使用在命令行中使用curl工具,输入如下语句:

$ curl http://localhost:9200
复制代码

若是在浏览器或命令中输出以下Elasticsearch的状态信息,则说明已经安装成功。

{
  "name" : "localhost.localdomain",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "IcfpUJx8TOOU9udd2fXWkw",
  "version" : {
    "number" : "7.2.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "508c38a",
    "build_date" : "2019-06-20T15:54:18.811730Z",
    "build_snapshot" : false,
    "lucene_version" : "8.0.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}
复制代码

在安装成功后,即可以调用Elasticsearch提供的restful api,往Elasticsearch建立索引和文档,开始Elasticsearch的学习了。

Kibana安装

下载安装
# 使用wget命令获取安装包
$ wget https://artifacts.elastic.co/downloads/kibana/kibana-7.2.0-linux-x86_64.tar.gz
#解压
$ tar -zxvf kibana-7.2.0-linux-x86_64.tar.gz

# 修改安装目录名称,不改也能够的
$ mv kibana-7.2.0-linux-x86_64 /usr/local/kibana
复制代码

上面简单两条命令便已经安装好了kibana

启动kibana

安装成功后,可使用如下命令启动kibana

# 进入kibana安装目录
$ cd /usr/local/kibana

# 运行命令启动
$ bin/kibana
复制代码
测试是否安装成功

安装成功后,Kibana默认运行在5601端口,所以在浏览器中输入http://localhost:5601,若是安装成功,则会进入以下界面:

Beats安装

Beats是一个多种单一采集器的平台,每一种采集器都须要单独安装,所以咱们能够根据本身的须要进行安装,下面以Filebeat安装为例:

# 下载安装包
$ wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.2.0-linux-x86_64.tar.gz

# 解压
$ tar -zxvf filebeat-7.2.0-linux-x86_64.tar.gz

# 修改安装目录名称,不改也能够的
$ mv filebeat-7.2.0-linux-x86_64 /usr/local/filebeat
复制代码
启动filebeat
# 启动
/usr/local/filebeat/filebeat -e -c filebeat.yml
复制代码

Logstash安装

下载安装
# 下载
$ wget https://artifacts.elastic.co/downloads/logstash/logstash-7.2.0.tar.gz

#解压
$ tar -zxvf logstash-7.2.0.tar.gz

# 修改安装目录名称,不改也能够的
$ mv logstash-7.2.0 /usr/local/logstash
复制代码
启动Logstash

启动logstash时,须要指定一个配置文件,配置文件的结构通常是下面的结构,input指定数据来源,filter指定过滤器,output指定输出。

input {
  ...
}

filter {
  ...
}

output {
  ...
}
复制代码

好比咱们使用下面的logstash.conf文件,将一个txt文件的每一行记录导入到elasticsearch中:

input {
  file {
    path => "/data/users.txt"
    start_position => beginning
  }
}
filter {
  txt {
    separator => ","
    columns => ["id","username","age"]
  }
}
output {
   elasticsearch {
     hosts => "http://localhost:9200"
     index => "user_list"
     document_id => "%{id}"
   }
  stdout {}
}
复制代码

接下来使用下面的命令,即可以启动logstash了。

# 运行
logstash -f logstash.conf
复制代码

小结

在这篇文章中,咱们只是对Elastic Stack创建一个全面的了解以及如何安装,而对Elastic Stack的使用与开发,则须要在后续中更多地学习。


你的关注,是我写做路上最大的鼓励!

相关文章
相关标签/搜索