我在虚拟机上安装了 Ubuntu 16.04 LTS,我想安装elasticsearch
它以便使用它Ruby on Rails。我在 Google 上搜索了如何进行安装,但我发现多个指南有一些差异,这让我有点困惑,例如:
在 Ubuntu 16.04 上安装 elasticsearch
Digital Ocean:在 Ubuntu 16.04 上安装和配置 Elasticsearch
(参见@先决条件)
我应该如何安全地安装 elasticsearch,而不弄乱我的开发环境?
答案1
Elastic 有自己的指南,使用 Debian 包安装 elasticsearch。你可以在他们的网站上找到它。
https://www.elastic.co/guide/en/elasticsearch/reference/current/deb.html
我用过这个,现在一切都运行良好。
Elasticsearch 需要 Java 8 或更高版本:
$ sudo apt-get install openjdk-8-jdk
$ java -version
openjdk version "1.8.0_111"
安装 Elasticsearch
$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
$ sudo apt-get install apt-transport-https
$ echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
$ sudo apt-get update && sudo apt-get install elasticsearch
一些评论(来自 elastic 网站):
- 请勿使用,
add-apt-repository
因为它也会添加 deb-src 条目,但我们不提供源包。如果您已添加 deb-src 条目,您将看到如下错误:
Unable to find expected entry 'main/source/Sources' in Release file Wrong sources.list entry or malformed file)
=> 从 /etc/apt/sources.list 文件中删除 deb-src 条目,安装应该可以按预期工作。
- 如果同一个 Elasticsearch 存储库存在两个条目,您将在 apt-get 更新期间看到如下错误:
重复的 sources.list 条目 https://artifacts.elastic.co/packages/5.x/apt/...`
=> 检查/etc/apt/sources.list.d/elasticsearch-5.x.list
重复条目或在文件/etc/apt/sources.list.d/
和/etc/apt/sources.list
文件中找到重复条目
答案2
对于 ElasticSearch 的最基本的安装1.x 或 2.x在 Ubuntu 16.04 上
(Ubuntu 14.04 也是如此)在全新安装的 Ubuntu 上执行接下来的几个步骤:
sudo apt-get update
sudo apt-get upgrade
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
java -version
//适用于 2.x;elasticsearch 2.4.0
wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/deb/elasticsearch/2.4.0/elasticsearch-2.4.0.deb
sudo dpkg -i elasticsearch-2.4.0.deb
service elasticsearch status
sudo apt-get install -y curl lynx links
lynx http : // localhost : 9200
或者
curl -X GET 'http : // localhost:9200'
答案3
在 Ubuntu 16 上安装 ElasticSearch 6.8.6
撰写本文时最新版本是 7,但出于兼容性原因,我们需要版本 6,因此使用典型的apt-get
包管理器不起作用。相反,我们选择直接安装包。
下载并安装 6.8.6 版本的 debian 包:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.6.deb wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.6.deb.sha512 shasum -a 512 -c elasticsearch-6.8.6.deb.sha512 sudo dpkg -i elasticsearch-6.8.6.deb
设置 elasticsearch 在启动时自动启动。
sudo /bin/systemctl daemon-reload sudo /bin/systemctl enable elasticsearch.service
启动 elasticsearch 服务。
bash sudo systemctl start elasticsearch.service
确认 elasticsearch 正在运行:
$ curl -X GET "localhost:9200/?pretty" { "name" : "dfdnndd", "cluster_name" : "elasticsearch", "cluster_uuid" : "abcdadsf123234234", "version" : { "number" : "6.8.6", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "3d9f765", "build_date" : "2019-12-13T17:11:52.013738Z", "build_snapshot" : false, "lucene_version" : "7.7.2", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search" }
注意:有时需要几秒钟才能旋转。
按需要配置:
vi /etc/elasticsearch/elasticsearch.yml
例如,取消注释此行,
#network.host: localhost
并将其替换localhost
为您的服务器的 IP 地址,使其看起来像这样:network.host: 123.123.123.123
。
答案4
Ubuntu 20.04 上安装 Elasticsearch 7.x
安装 openjdk 11(第 8 版也已经使用过,没有问题):
sudo apt install openjdk-11-jre-headless
Elasticsearch 安装
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list sudo apt update sudo apt install elasticsearch
配置elasticsearch配置文件
/etc/elasticsearch/elasticsearch.yml
cluster.name: myclaster node.name: mynode1 network.host: 192.168.0.5
取消注释上述选项并指定您的 IP 地址,或者
localhost
如果您不希望通过本地网络授予访问权限。如果您希望允许从本地网络访问它,则仅指定您想要授予访问权限的特定机器的 IP 地址:
sudo ufw allow from 192.168.0.55 to any port 9200
不允许从任何主机访问,因为它没有限制。
启动elasticsearch服务:
sudo systemctl start elasticsearch
从两台机器(192.168.0.5 和 192.168.0.55)使用 telnet 测试你的 elasticsearch 服务是否正在运行:
telnet 192.168.0.5 9200
您将获得下一个
Trying 192.168.0.5... telnet: Unable to connect to remote host: Connection refused
如果 elasticsearch 服务没有运行
如果它正在运行但被防火墙阻止,您将看到以下内容:
Trying 192.168.0.5... telnet: Unable to connect to remote host: Connection timed out
如果服务正在运行并且防火墙允许,您将获得以下输出:
Trying 192.168.0.5... Connected to 192.168.0.5. Escape character is '^]'.
通过以下方式测试 elasticsearch 配置:
curl -X GET 'http://192.168.0.5:9200'
更多细节这里