如何在Linux安装Elasticsearch

linux

Elasticsearch是当今最流行的日志分析平台——ELK Stack(Elasticsearch、Logstash和Kibana)的核心。Elasticsearch的角色非常重要,以至于它已成为ELK 本身名称的同义词。Elasticsearch主要用于搜索和日志分析,是当今最流行的数据库系统之一。

在本Elasticsearch教程将为新用户说明如何使用Elasticsearch的必备知识和工具。它包括安装说明、初始索引和数据处理的说明。

Elasticsearch(有时称为 ES)最初于 2010 年发布,是一种基于Apache Lucene的现代搜索和分析引擎。Elasticsearch完全开源并使用Java构建,是一个NoSQL数据库。这意味着它以非结构化的方式存储数据,并且您不能使用 SQL 来查询它。

这个Elasticsearch教程也可以被认为是一个NoSQL教程。然而,与大多数NoSQL数据库不同,Elasticsearch非常注重搜索功能和特性,从 ES 获取数据的最简单方法是使用Elasticsearch API进行搜索。

在数据分析的上下文中,Elasticsearch与ELK Stack、Logstash和Kibana中的其他组件一起使用,起到数据索引和存储的作用。

安装Elasticsearch

Elasticsearch的要求很简单:此外,您需要确保您的操作系统是否支持Elastic,否则您可能会遇到奇怪和不可预测的问题。完成后,您可以从安装 Elasticsearch开始。

您可以将 Elasticsearch作为独立发行版下载或使用aptyum存储库进行安装。我们将上一个Ubuntu 20.04机器上使用apt安装Elasticsearch。

首先,您需要添加Elastic的签名密钥,以便您可以验证下载的软件包(如果您已经安装了Elastic的软件包,请跳过此步骤):

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

对于Debian,我们需要安装apt-transport-https软件包:

sudo apt-get install apt-transport-https

下一步是将存储库定义添加到您的系统中:

echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

当前最新版本是7.16,这个版本号7.x可能会随着时间发生变化,建议安装最后发行版本。

接下来要做的是安装:

sudo apt-get update

sudo apt-get install elasticsearch

配置Elasticsearch

Elasticsearch配置是使用配置文件完成的,该文件的位置取决于您的操作系统。在此文件中,您可以配置常规设置(例如节点名称)以及网络设置(例如主机和端口)、数据存储位置、内存、日志文件等。

对于开发和测试目的,默认设置就足够了,但建议您在投入生产之前对应该手动定义的设置进行一些研究。

例如,尤其是在云上安装Elasticsearch时,将Elasticsearch绑定到私有IP或本地主机是一个很好的最佳实践,使用你喜欢的编辑器,这里推荐使用Vim编辑器:

sudo vim /etc/elasticsearch/elasticsearch.yml

network.host: "localhost"

http.port:9200

/etc/elasticsearch/elasticsearch.yml

运行Elasticsearch

Elasticsearch安装后不会自动运行,您需要手动启动它。如何运行Elasticsearch将取决于您的系统。在大多数基于Linux和Unix的系统上,您可以使用以下命令:

sudo systemctl start elasticsearch

如果一切正常,可以使用curl或您的浏览器打开http://localhost:9200,您应该会看到如下输出:

{

"name" : "33QdmXw",

"cluster_name" : "elasticsearch",

"cluster_uuid" : "mTkBe_AlSZGbX-vDIe_vZQ",

"version" : {

"number" : "6.1.2",

"build_hash" : "5b1fea5",

"build_date" : "2018-01-10T02:35:59.208Z",

"build_snapshot" : false,

"lucene_version" : "7.1.0",

"minimum_wire_compatibility_version" : "5.6.0",

"minimum_index_compatibility_version" : "5.0.0"

},

"tagline" : "You Know, for Search"

}

要调试Elasticsearch,请查看Elasticsearch日志文件/var/log/elasticsearch/

Elasticsearch自动启动

sudo systemctl enable elasticsearch

创建Elasticsearch索引

创建索引是将数据添加到Elasticsearch的过程。这是因为当您将数据提供给 Elasticsearch时,数据会被放入Apache Lucene索引中。这是有原因的,因为 Elasticsearch使用Lucene索引来存储和检索其数据。尽管您不需要对Lucene有很多了解,但当您开始认真使用Elasticsearch时,了解它的工作原理确实很有帮助。

Elasticsearch的行为类似于REST API,因此您可以使用POSTPUT方法向Elasticsearch添加数据。您可以使用PUT,当你知道或想指定id的数据,或者如果你想Elasticsearch自动生成id ,请使用POST 。当在命令行中创建Elasticsearch的数据时,我们将会使用CURL发起请求:

curl -X POST 'localhost:9200/logs/my_app' -H 'Content-Type: application/json' -d'

{

"timestamp": "2018-01-24 12:34:56",

"message": "User logged in",

"user_id": 4,

"admin": false

}'

post请求
curl -X PUT 'localhost:9200/app/users/4' -H 'Content-Type: application/json' -d '

{

"id": 4,

"username": "john",

"last_login": "2018-01-25 12:34:56"

}

put请求
{"_index":"logs","_type":"my_app","_id":"ZsWdJ2EBir6MIbMWSMyF","_version":1,"result":"created","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":0,"_primary_term":1}{"_index":"app","_type":"users","_id":"4","_version":1,"result":"created","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":0,"_primary_term":1}
curl返回结果

文档的数据作为JSON对象发送。您可能想知道我们如何在不定义数据结构的情况下索引数据。好吧,使用 Elasticsearch,就像使用任何其他NoSQL数据库一样,无需事先定义数据的结构。不过,为了确保最佳性能,您可以根据数据类型定义 Elasticsearch映射。稍后会详细介绍。

如果您使用Filebeat,Metricbeat或Logstash的这些软件它将会自动创建索引。

要查看您的 Elasticsearch索引列表,请使用:

curl -X GET 'localhost:9200/_cat/indices?v&pretty'
health status index               uuid                   pri rep docs.count docs.deleted store.size pri.store.size

yellow open logstash-2018.01.23 y_-PguqyQ02qOqKiO6mkfA 5 1 17279 0 9.9mb 9.9mb

yellow open app GhzBirb-TKSUFLCZTCy-xg 5 1 1 0 5.2kb 5.2kb

yellow open .kibana Vne6TTWgTVeAHCSgSboa7Q 1 1 2 0 8.8kb 8.8kb

yellow open logs T9E6EdbMSxa8S_B7SDabTA 5 1 1 0 5.7kb 5.7kb

结果

本例中的列表包括我们上面创建的索引、一个Kibana索引和一个由Logstash管道创建的索引。

Elasticsearch搜索查询

将数据索引到Elasticsearch后,您就可以开始搜索或者分析它了。您可以执行的最简单查询是获取单个项目。

我们使用GET 请求方法调用Elasticsearch REST API:

curl -X GET 'localhost:9200/app/users/4?pretty'
{ 

“_index”:“app”,

_type”:“users”

,“_id”:“4”,“_version”:1,

“found”:true,

“ _source ”:{

“id”:4,

“用户名” " : "john",

"last_login" : "2018-01-25 12:34:56"

}

}

结果

下划线开头的字段都是结果的元字段。_source对象是已建立索引的原始文档。

使用搜索API搜索数据

我们还可以使用GET请求调用_search Api来进行搜索:

curl -XGET 'localhost:9200/_search?q=logged' 
{"took":173,"timed_out":false,"_shards":{"total":16,"successful":16,"skiped":0, "failed":0},"hits":{"total":1,"max_score":0.2876821,"hits":[{"_index":"logs","_type":"my_app","_id": "ZsWdJ2EBir6MIbMWSMyF","_score":0.2876821,"_source": 

{

"timestamp": " 2018-01-24 12:34:56 ",

"message": "用户登录",

"user_id": 4,

"admin ": false

}

}]}}

删除Elasticsearch数据

从Elasticsearch中删除文档就像在Elasticsearch中输入数据一样简单。这次使用的HTTP方法是DELETE

curl -X DELETE 'localhost:9200/app/users/4?pretty'
{

"_index" : "app",

"_type" : "users",

"_id" : "4",

"_version" : 2,

"result" : "deleted",

"_shards" : {

"total" : 2,

"successful" : 1,

"failed" : 0

},

"_seq_no" : 1,

"_primary_term" : 1

}

结果

结论

本教程帮助初学者使用Elasticsearch,因此仅提供Elasticsearch中CRUD操作的基本步骤。Elasticsearch是一个搜索引擎,因此要了解其搜索功能具有极大的难度。你也可以浏览官方Elasticsearch文档,深入了解其魅力。

以上是 如何在Linux安装Elasticsearch 的全部内容, 来源链接: utcz.com/z/507765.html

回到顶部