亚马逊AWS官方博客

启动并运行 Open Distro for Elasticsearch

简介

2019 年 3 月 11 日,我们发布了 Open Distro for Elasticsearch,这是 Elasticsearch 的一个增值发行版,100% 开源(采用 Apache 2.0 许可证)并且由 AWS 提供支持。(另请参阅 Jeff Barr 的 Open Distro for Elasticsearch 和 Adrian Cockcroft 的 Keeping Open Source Open – Open Distro for Elasticsearch。) 除源代码存储库外,Open Distro for Elasticsearch 和 Kibana 还可作为 RPM 和 Docker 容器提供,并提供适用于 SQL JDBC 驱动程序和 PerfTop CLI 的独立下载版。您可以在笔记本电脑上、在数据中心里,或者在云中运行此代码。有关详细信息,请参阅 Open Distro for Elasticsearch 文档

想通过一种简单的方式深入了解并试用这些功能吗? 对于 Mac 和 Windows,您可以使用 Docker Desktop 部署和测试 Open Distro for Elasticsearch。本博文将引导您完成整个流程。

部署 Docker Desktop

Docker Desktop (DD) 为您提供了在隔离环境中在笔记本电脑上运行 Docker 的简便方法。我的笔记本电脑是 Macintosh,因此我从下载页面下载了 Docker Desktop 的 Mac 镜像,然后按照安装说明将 DD 拖到我的 Applications 文件夹中。

为了使用下面的 docker-compose 测试 Open Distro for Elasticsearch,您需要增加分配给 DD 的 RAM。在 Docker 完成初始启动后,我转到菜单栏中的 Docker 图标并选择 Preferences…

选择 Advanced 选项卡,然后将内存滑块移动到至少 4 GiB:

单击窗口的关闭框。单击 Apply 以允许 Docker 使用新设置重新启动。等待 Docker 重新启动,然后再继续。

运行 Open Distro for Elasticsearch

您首先需要提取 Open Distro for Elasticsearch Docker 镜像。打开终端窗口,然后运行:

docker pull amazon/opendistro-for-elasticsearch:0.7.0

Docker 将获取 Elasticsearch 的容器镜像。您还需要 Kibana 发行版。运行:

docker pull amazon/opendistro-for-elasticsearch-kibana:0.7.0

现在在您的笔记本电脑上创建一个目录,该目录将保存 docker-compose 文件以及与您的项目相关的任何其他资产:

mkdir odfe-docker
cd odfe-docker

使用以下内容创建 docker-compose.yml:

version: '3'
services:
  odfe-node1:
    image: amazon/opendistro-for-elasticsearch:0.7.0
    container_name: odfe-node1
    environment:
      - cluster.name=odfe-cluster
      - bootstrap.memory_lock=true # along with the memlock settings below, disables swapping
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m" # minimum and maximum Java heap size, recommend setting both to 50% of system RAM
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - odfe-data1:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
      - 9600:9600 # required for Performance Analyzer
    networks:
      - odfe-net
  odfe-node2:
    image: amazon/opendistro-for-elasticsearch:0.7.0
    container_name: odfe-node2
    environment:
      - cluster.name=odfe-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - discovery.zen.ping.unicast.hosts=odfe-node1
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - odfe-data2:/usr/share/elasticsearch/data
    networks:
      - odfe-net
  kibana:
    image: amazon/opendistro-for-elasticsearch-kibana:0.7.0
    container_name: odfe-kibana
    ports:
      - 5601:5601
    expose:
      - "5601"
    environment:
      ELASTICSEARCH_URL: https://odfe-node1:9200
    networks:
      - odfe-net

volumes:
  odfe-data1:
  odfe-data2:

networks:
  odfe-net:

从 odfe-docker 目录,运行:

docker-compose up

您可以使用 docker ps 查看正在运行的容器。(编辑以适合页面大小):

CONTAINER ID  IMAGE                                              STATUS  NAMES
fb1a78290e33  amazon/opendistro-for-elasticsearch-kibana:0.7.0   Up…      odfe-kibana
a53942e76501  amazon/opendistro-for-elasticsearch:0.7.0          Up…      odfe-node1
f33f91837f47  amazon/opendistro-for-elasticsearch:0.7.0          Up…      odfe-node2

要确保 Elasticsearch 正常响应,请运行:

curl -XGET https://localhost:9200 -u admin:admin --insecure

Elasticsearch 会做如下响应:

{
  "name" : "NHKRnp4",
  "cluster_name" : "odfe-cluster",
  "cluster_uuid" : "ItWH-yLSQSCD9eGiWbvDDQ",
  "version" : {
    "number" : "6.5.4",
    "build_flavor" : "oss",
    "build_type" : "tar",
    "build_hash" : "d2ef93d",
    "build_date" : "2018-12-17T21:17:40.758843Z",
    "build_snapshot" : false,
    "lucene_version" : "7.5.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

登录 Kibana

Kibana 是一个 Web 客户端,用于向 Elasticsearch 发送 API 请求以支持其可视化。在浏览器中,导航到 http://localhost:5601。您将看到 Open Distro for Elasticsearch 登录页面:

Open Distro for Elasticsearch 预先配置了 Username (admin) 和 Password (admin)。使用这些凭证登录。(请注意,此设置不安全。我们将在后续博文中向您展示如何更改这些密码。) 您会看到 Kibana 的启动页面。单击 Try our sample data。我在以下屏幕中添加了示例 Web 日志数据集。

检查样本数据

您可以正常方式与示例 Web 日志数据进行交互。单击 Discover 选项卡,将时间窗口扩展到 Last 7 days,您应该会看到如下内容

 

 

您可以使用 Kibana 的 Dev Tools 窗格来运行查询。单击选项卡,然后输入以下查询:

GET kibana_sample_data_logs/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "machine.os.keyword": {
              "value": "ios"
            }
          }
        },
        {
          "range": {
            "bytes": {
              "gte": 5000
            }
          }
        },
        {
          "term": {
            "clientip": {
              "value": "68.0.0.0/8"
            }
          }
        }
      ]
    }
  }
}

我有 8 条来自 IOS 设备的结果,其中返回 5000 多个字节,IP 地址位于 68.CIDR 块。

通常,您可以继续浏览 Kibana 和 Elasticsearch,构建或导入现有的可视化效果和控制面板等。

小结

祝贺您! 您已成功在笔记本电脑上以本地方式部署了 Open Distro for Elasticsearch,登录并浏览了 Kibana 的其中一个示例数据集。请随时关注! 我们将在即将发布的博文中深入探讨 Open Distro for Elasticsearch 的插件。

有问题或疑问? 希望参与讨论? 您可以在我们的论坛上获得帮助并讨论 Open Distro for Elasticsearch。您可以在这里提出问题

本篇作者

Jon Handler

Jon Handler

Jon Handler (@_searchgeek) 是总部位于加利福尼亚州帕罗奥图市的 Amazon Web Services 的首席解决方案架构师。Jon 与 CloudSearch 和 Elasticsearch 团队密切合作,为想要将搜索工作负载迁移到 AWS 云的广大客户提供帮助和指导。在加入 AWS 之前,Jon 作为一名软件开发人员,曾为某个大型电子商务搜索引擎编写代码长达四年。Jon 拥有宾夕法尼亚大学的文学学士学位,以及西北大学计算机科学和人工智能理学硕士和博士学位。