Elasticsearch和Kibana:Ubuntu 16.04上的安装和基本用法

Elasticsearch是一个用java编写的生产就绪搜索引擎,功能非常强大。 它可以用作网络的独立搜索引擎或电子商务Web应用程序的搜索引擎。

eBay,Facebook,Netflix是使用这个平台的一些公司。 这是受欢迎的,因为它不仅仅是一个搜索引擎。 它也是一个强大的分析引擎和日志管理和检索系统。 关于这个的最好的部分是它是开放源代码,可以随时使用。 Kibana是弹性提供的可视化工具。

在本教程中,我们将介绍Elasticsearch的安装步骤,然后安装Kibana,然后我们将使用Kibana来存储和检索数据。

1安装Java

由于Elasticsearch是用java编写的,所以必须首先安装。 使用以下命令安装jre和jdk的开源版本:

 sudo apt-get install default-jre
 sudo apt-get install default-jdk

这两个命令将在您的系统上安装最新的open-jre和open-jdk。 这是针对Java 8.以下图像显示,当您没有安装java并运行上述命令时,您将获得的输出。

2安装弹性搜索

Elasticsearch 5最近出来了。 与以前的2.x版本相比,它有一些巨大的变化。 在撰写本文时,版本5.2.2是最新版本,我们将安装。 所以请按照以下步骤进行安装。

mkdir elasticsearch; cd elasticsearch

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.2.deb

这样,.deb文件应该开始下载。 它将类似于下面的图像:

一旦下载成功完成,我们可以通过运行以下命令来安装它。 安装成功的输出如下。

sudo dpkg -i elasticsearch-5.2.2.deb

3配置并运行弹性搜索

弹性搜索作为后台进程运行。 但在开始之前,我们必须编辑配置文件,将当前系统添加为运行引擎的主机。 使用以下命令打开配置文件:

sudo gedit /etc/elasticsearch/elasticsearch.yml

编辑器打开后,您必须取消注释行:

#network.host: 192.168.0.1

然后将IP更改为localhost,如下图所示:

现在,我们准备好运行这个过程。 使用以下命令:

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
sudo systemctl restart elasticsearch

这三个命令将Elasticsearch进程添加到系统守护程序中,以便系统启动时自动启动,然后重新启动进程。 要测试系统是否启动并运行,请使用以下命令。 输出应与下图所示相似。

curl -XGET "http://localhost:9200"

4安装Kibana

使用以下命令下载并安装deb文件:

 wget https://artifacts.elastic.co/downloads/kibana/kibana-5.2.2-amd64.deb 
sudo dpkg -i kibana-5.2.2-amd64.deb

当运行第二个命令时,如果要求您修改现有的Kibana配置文件,可以按Enter键保留默认值并完成比赛。 一旦它被安装,它将看起来类似于下面的图像。

5配置和运行Kibana

在Kibana配置文件中,取消注释以下几行:

server.port:
server.host:
server.name:
elasticsearch.name:
kibana.index:

使用以下命令打开配置文件。 进行更改后的文件应如下图所示:

sudo gedit /etc/kibana/kibana.yml

“server.name”可以是任何东西,所以随时更改它。 完成这些更改后,保存并关闭文件。 最后要做的是将Kibana进程添加到系统进程列表,以便每次系统启动时自动启动。 运行以下命令:

sudo systemctl daemon-reload
sudo systemctl enable kibana
sudo systemctl start kibana

一旦运行这些命令,您可以打开Web浏览器,并使用以下URL来测试是否已经安装并正确运行。 下图显示了它的外观:

http://localhost:5601

而已。 你现在已经成功安装了Kibana和Elasticsearch。

6基本用法

我们可以使用Kibana提供的“开发工具”工具与Elasticsearch交谈。 它提供了一个干净简单的界面来将命令作为JSON对象执行。 我们将通过REST界面与核心引擎进行交互。

点击“开发工具” 左侧面板上的图标。 您也可以使用以下URL:

http://localhost:5601/app/kibana#/dev_tools/

一旦加载,您将获得一个“欢迎使用控制台”介绍UI。 您可以阅读,或只需点击该介绍底部的“ Get To Work ”按钮。 一旦您点击该按钮,UI将如下图所示:

在左侧,我们将键入命令,右侧面板是我们将获得输出的地方。 让我们尝试向搜索引擎发送和存储一些数据。

6.1创建索引

数据存储在索引中或以其他方式存储,索引将维护已存储在搜索引擎中的数据。 要创建索引,我们使用PUT调用。 请求JSON将包含索引的名称和我们可以提供的一些可选设置。 以下命令是创建名为“student”的索引的示例。

PUT student
{
"settings": {
"number_of_shards": 3

}
}

您可以在“开发工具”上键入,然后按下旁边的绿色播放按钮运行它。 输出将与下图相似:

6.2插入一些数据索引

我们将使用POST调用来插入数据进行索引。 要插入的数据是JSON的形式,所以让我们继续添加学生到索引。 命令是:

POST student/course
{
"name":"james",
"course": "mathematics"
}

在上述命令中,“course”表示索引的数据类型。 从响应中,您可以看到,此条目也具有唯一的ID。 在下面的命令中,您可以看到在“课程”之后还有另一个参数,这是如何指定此学生条目的ID。 这样弹性搜索不会打扰创建一个ID购买使用这个作为这个记录的ID。

POST student/course/2
{
"name":"tina",
"course": "physics"
}

以下是在运行这两个命令时显示搜索引擎响应的图像:

6.3从索引获取数据

您还可以从存储的记录或条目中获取数据到各个字段。 我们在上一步中保存的每个条目在Elasticsearch中称为文档。 我们将使用GET调用从索引中获取文档。 以下是使用“name”字段获取一个文档的方法:

GET student/course/_search
{
"query": {
"term": {
"name": {
"value": "james"
}
}
}
}

该命令在“ 学生 ”索引中搜索“ 课程 ”类型的文档,并尝试将具有值“ James ”的字段名称“ name ”与术语匹配。 由于索引中有一名名叫詹姆斯的学生,我们会收到如下图所示的回复:

这些只是基础,有很多事情可以用Elasticsearch完成,需要进行大量的探索来掌握这个框架,并将其用于最好的功能。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏