ElasticSearch简介

ElasticSearch(ES)是基于Lucene构建的开源、分布式近实时的数据搜索和分析引擎。通过ES可以实时的完成大量数据的存储、搜索和分析等工作,而其分布式的特点使得通过简单添节点就可以扩展ES集群的处理能力。ES强大功能、易于使用等特点使得ES成为目前全球最受欢迎的全文数据搜索引擎。

通常ElasticSearch,和Kibana和Logstash等软件一起被称为“Elastic Stack”。其中Logstash负责数据的收集功能,ElasticSearch负责数据的解析存储和搜索,而Kibana则负责数据的展示和可视化。

ESDA用什么软件来做 es软件是什么_elasticsearch

基于Elastic Stack可以构建功能完善的日志分析系统,全文检索系统,以及数据可视化系统。目前,Elastic Stack已经被广泛运用在近实时大数据处理领域。

本文只简单的介绍ElasticSearch,不会涉及具体复杂的概念。所以下面会基于Elastic Stack搭建一个简单的日志分析系统,让我们对ES有一个初步直观的了解。

基于Elastic Stack搭建日志分析系统

这里我们使用CentOS 7.3作为服务器,并使用CentOS自带的包管理工具Yum来安装对应ElasticSearch,Kibana和Logstash。

  • 首先,在安装之前,需要设置Yum安装源。
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
vi /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
  • 安装并启动ElasticSearch
yum install elasticsearch
chkconfig --add elasticsearch
chkconfig  elasticsearch on

service elasticsearch start

curl -X GET "http://localhost:9200/?pretty"

现在我们可以看到ElasticSearch已经启动,并监听在9200端口。

ESDA用什么软件来做 es软件是什么_数据_02

  • 安装配置Logstash
yum install logstash

完成Logstash的安装后,我们就可以使用logstash采集数据并输入ElasticSearch。作为一个演示,我们这里导入一个简单的CSV文件,文件包含3列,分别是Time, Level,Message。

ESDA用什么软件来做 es软件是什么_搜索引擎_03

创建如下一个Logstash配置文件,并用这个配置启动Logstash。我们可以看到我们的卖二手手机数据被输入ElasticSearch。

vim logstash-app.conf
input {
    file {
       path => "/root/demo/app.log"
       start_position => "beginning"
       sincedb_path => "/dev/null"
    }
}

filter {
    csv {
        separator => ","
        columns => ["Time","Level", "Message"]
    }
}

output {
    elasticsearch {
        hosts => "http://localhost:9200"
        index => "app-log-index"
    }
    stdout {}
}
/usr/share/logstash/bin/logstash -f logstash-app.conf

ESDA用什么软件来做 es软件是什么_数据_04

  • 安装配置 Kibana
yum install kibana

Kibana默认只监听在localhost的5601端口。为了能从其它机器访问Kibana, 我们需要修改一下Kibana的配置。

vi /etc/kibana/kibana.yml
#server.port: 5601

server.host: "0.0.0.0"
chkconfig --add kibana
chkconfig  kibana on
service kibana start

现在启动Kibana启动,我们就可以从浏览器访问Kibana的控制台了。首次登陆,我们需要Kibana中对我们的数据创建索引(Index Patterns)。

ESDA用什么软件来做 es软件是什么_大数据_05

创建索引后,我就可以从Discover面板中对我们的数据做检索和分析,例如我们下面的一个简单的日志搜索。

ESDA用什么软件来做 es软件是什么_大数据_06

最后

到这里为止,我们应该已经对ElasticSearch有了一个初步的了解。