在 Ubuntu 16 上安装 ElasticSearch 6.8.6

在 Ubuntu 16 上安装 ElasticSearch 6.8.6

我在虚拟机上安装了 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 上执行接下来的几个步骤:

  1. sudo apt-get update

  2. sudo apt-get upgrade

  3. sudo add-apt-repository ppa:webupd8team/java

  4. sudo apt-get update

  5. sudo apt-get install oracle-java8-installer

  6. java -version

//适用于 2.x;elasticsearch 2.4.0

  1. wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/deb/elasticsearch/2.4.0/elasticsearch-2.4.0.deb

  2. sudo dpkg -i elasticsearch-2.4.0.deb

  3. service elasticsearch status

  4. sudo apt-get install -y curl lynx links

  5. lynx http : // localhost : 9200

或者

  1. curl -X GET 'http : // localhost:9200'

答案3

在 Ubuntu 16 上安装 ElasticSearch 6.8.6

撰写本文时最新版本是 7,但出于兼容性原因,我们需要版本 6,因此使用典型的apt-get包管理器不起作用。相反,我们选择直接安装包。

  1. 下载并安装 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
    
  2. 设置 elasticsearch 在启动时自动启动。

    sudo /bin/systemctl daemon-reload
    sudo /bin/systemctl enable elasticsearch.service
    
  3. 启动 elasticsearch 服务。

    bash
    sudo systemctl start elasticsearch.service
    
  4. 确认 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"
    } 
    

    注意:有时需要几秒钟才能旋转。

  5. 按需要配置:

    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'
    

更多细节这里

相关内容