如何在 Linux 上安装 Elasticsearch 和 Kibana

获取我们简化的安装 Elasticsearch 和 Kibana 的说明。
126 位读者喜欢这篇文章。
How to upgrade your Fedora Linux system with DNF

Opensource.com

如果您热衷于学习 Elasticsearch,这个基于开源 Lucene 库的著名开源搜索引擎,那么最好的方法莫过于在本地安装它。 Elasticsearch 网站 上详细概述了该过程,但如果您是初学者,官方说明包含的细节远超所需。本文采取了一种简化的方法。

添加 Elasticsearch 仓库

首先,将 Elasticsearch 软件仓库添加到您的系统,以便您可以安装它并在需要时接收更新。具体操作取决于您的发行版。在基于 RPM 的系统上,例如 FedoraCentOSRed Hat Enterprise Linux (RHEL)openSUSE,(本文中任何引用 Fedora 或 RHEL 的地方也适用于 CentOS 和 openSUSE)在 /etc/yum.repos.d/ 中创建一个名为 elasticsearch.repo 的仓库描述文件

$ cat << EOF | sudo tee /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/oss-7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

在 Ubuntu 或 Debian 上,请勿使用 add-apt-repository 实用程序。由于其默认值与 Elasticsearch 仓库提供的默认值不匹配,因此会导致错误。请改为设置以下内容

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

在您可以从该仓库安装之前,导入其 GPG 密钥,然后更新

$ sudo apt-key adv --keyserver \
hkp://keyserver.ubuntu.com:80 \
--recv D27D666CD88E42B4
$ sudo apt update

此仓库仅包含 Elasticsearch 的开源功能,采用 Apache 许可证,不包含订阅提供的额外功能。如果您需要仅限订阅的功能(这些功能不是开源的),则 baseurl 必须设置为

baseurl=https://artifacts.elastic.co/packages/7.x/yum

 

安装 Elasticsearch

您需要安装的软件包名称取决于您使用的是开源版本还是订阅版本。本文使用开源版本,它在软件包名称的末尾附加 -oss。如果不附加 -oss 到软件包名称,则您请求的是仅限订阅的版本。

如果您创建了一个指向订阅版本的仓库,但尝试安装开源版本,您将收到一个相当不具体的错误。如果您为开源版本创建了一个仓库,但未能将 -oss 附加到软件包名称,您也会收到错误。

使用您的软件包管理器安装 Elasticsearch。例如,在 Fedora、CentOS 或 RHEL 上,运行以下命令

$ sudo dnf install elasticsearch-oss

在 Ubuntu 或 Debian 上,运行

$ sudo apt install elasticsearch-oss

如果在安装 Elasticsearch 时遇到错误,则可能是您尝试安装错误的软件包。如果您的目的是使用开源软件包(如本文所示),请确保您在 Yum 配置中使用正确的 apt 仓库或 baseurl。

启动并启用 Elasticsearch

安装 Elasticsearch 后,您必须启动并启用它

$ sudo systemctl daemon-reload
$ sudo systemctl enable --now elasticsearch.service

然后,要确认 Elasticsearch 正在其默认端口 9200 上运行,请将 Web 浏览器指向 localhost:9200。您可以使用 GUI 浏览器,也可以在终端中执行此操作

$ curl localhost:9200
{

  "name" : "fedora30",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "OqSbb16NQB2M0ysynnX1hA",
  "version" : {
    "number" : "7.2.0",
    "build_flavor" : "oss",
    "build_type" : "rpm",
    "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"
}

安装 Kibana

Kibana 是 Elasticsearch 数据可视化的图形界面。它包含在 Elasticsearch 仓库中,因此您可以使用软件包管理器安装它。与 Elasticsearch 本身一样,如果您使用的是开源版本的 Elasticsearch,而不是订阅版本(两个安装需要匹配),则必须在软件包名称的末尾附加 -oss

$ sudo dnf install kibana-oss

在 Ubuntu 或 Debian 上

$ sudo apt install kibana-oss

Kibana 在端口 5601 上运行,因此启动图形 Web 浏览器并导航到 localhost:5601 以开始使用 Kibana 界面,如下所示

Kibana running in Firefox.

故障排除

如果在安装 Elasticsearch 时遇到错误,请尝试手动安装 Java 环境。在 Fedora、CentOS 和 RHEL 上

$ sudo dnf install java-openjdk-devel java-openjdk

在 Ubuntu 上

$ sudo apt install default-jdk

如果一切都失败了,请尝试直接从 Elasticsearch 服务器安装 Elasticsearch RPM

$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-oss-7.2.0-x86_64.rpm{,.sha512}
$ shasum -a 512 -c elasticsearch-oss-7.2.0-x86_64.rpm.sha512 && sudo rpm --install elasticsearch-oss-7.2.0-x86_64.rpm

在 Ubuntu 或 Debian 上,请改用 DEB 软件包。

如果您无法使用 Web 浏览器访问 Elasticsearch 或 Kibana,则可能是您的防火墙阻止了这些端口。您可以通过调整防火墙设置来允许这些端口上的流量。例如,如果您运行的是 firewalld(Fedora 和 RHEL 上的默认设置,并且可以在 Debian 和 Ubuntu 上安装),则可以使用 firewall-cmd

$ sudo firewall-cmd --add-port=9200/tcp --permanent
$ sudo firewall-cmd --add-port=5601/tcp --permanent
$ sudo firewall-cmd --reload

您现在已设置完成,可以继续阅读我们即将发布的 Elasticsearch 和 Kibana 安装文章。

接下来阅读什么
标签
Seth Kenlon
Seth Kenlon 是一位 UNIX 极客、自由文化倡导者、独立多媒体艺术家和 D&D 爱好者。他曾在电影和计算机行业工作,通常同时进行。

7 条评论

感谢这些链接。并非所有链接都适用于我的 Pop_OS,这很奇怪,因为它本质上是 Ubuntu/Debian。但我确实安装了 Elasticsearch 和 Kibana。如何使用它?

感谢提供信息

按照 Ubuntu 系统的说明,我遇到了经典的 NO_PUBKEY D27D666CD88E42B4 错误。

可以使用 "sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv D27D666CD88E42B4" 修复它

Paolo,这是一个很棒的技巧,谢谢。我在测试中没有遇到这种情况(为了获得正确的命令,我确实在 Ubuntu VM 中尝试过),但可能是因为我在摸索定义正确的仓库时,在看到错误之前就解决了问题。

感谢您的补充。如果您告诉我您具体在哪个步骤遇到此错误(引用文章中的一段话,我应该在该段话之后放置此修复,或者使用此处找到的 markdown 源代码向我发送补丁文件:https://gitlab.com/osdc/seth/blob/master/elasticsearch/elasticsearch.md ),我将很乐意将您的修复添加到文章中,使其不仅仅存在于评论中。

回复 作者:paolomascellani

嗨,Seth,

当然:在 “在 Ubuntu 或 Debian 上,请勿使用 add-apt-repository 实用程序。由于其默认值与 Elasticsearch 仓库提供的默认值不匹配,因此会导致错误。请改为设置以下内容:” 之后,您给出了正确的命令以设置 Debian/Ubuntu 仓库

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

但是,为了从仓库安装数据包,必须从密钥服务器获取密钥

> sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv D27D666CD88E42B4

此外,有必要更新数据包列表

> sudo apt update

再见,Paolo。

回复 作者:sethkenlon

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.