入门指南:部署您自己的平台来存储、搜索和可视化任何数据

编辑

入门指南:部署您自己的平台来存储、搜索和可视化任何数据

编辑

本指南将向您展示如何设置一个通用的 Elastic 部署,以存储、搜索和可视化任何数据。如果您有兴趣在 Elastic 搜索平台上构建自定义解决方案,请从这里开始。

先决条件

编辑

要开始使用,您只需要一个互联网连接和一个电子邮件地址。

步骤 1:创建 Elastic Cloud 部署

编辑

如果您已经注册了试用部署,则可以跳过此步骤。

Elastic Cloud 部署为您提供 Elastic Stack 的所有功能,作为托管服务。要试用您的第一个部署,请注册免费的 Elastic Cloud 试用版

  1. 转到我们的 Elastic Cloud 试用版 页面。
  2. 输入您的电子邮件地址和密码。

    Start your free Elastic Cloud trial
  3. 在您登录后,您可以创建一个部署。给您的部署命名并选择 创建部署

    Create your first deployment
  4. 在部署设置时,请记下您的 elastic 超级用户密码,并将其保存在安全的地方。
  5. 部署准备就绪后,选择 继续。此时,您可以访问 Kibana 和一系列设置指南。

步骤 2:向 Elasticsearch 添加数据

编辑

您可以通过 HTTP 将 JSON 对象(文档)发送到 Elasticsearch 来向其添加数据。无论您拥有结构化或非结构化文本、数值数据还是地理空间数据,Elasticsearch 都会以支持快速搜索的方式高效地存储和索引它。

本教程使用 Kibana Dev Tools 控制台向 Elasticsearch 提交 REST 请求,但您可以使用任何 HTTP 客户端向 Elasticsearch 发送请求。Elasticsearch 为 Java、Javascript 和许多其他流行语言提供客户端。

使用 Elastic Agent 从您需要监控的主机或容器收集数据。有关更多信息,请查看 监控应用程序和系统

要向新索引添加文档

  1. 选择 我想做其他事情 以打开 Kibana 主页(请注意,您也可以始终通过单击 Elastic 徽标来访问 Kibana 主页)。
  2. 打开 Kibana 主菜单,选择 Dev Tools,然后选择 控制台

    Kibana Console page

    接下来的几个步骤有包含 在控制台中查看 链接的代码示例。这些链接会将代码示例粘贴到您的 Kibana 控制台中。

    要使用 在控制台中查看,请配置连接并选择 在控制台中查看 链接。您只需要配置一次连接。

    1. 选择任何代码示例中的齿轮图标以打开连接设置。
    2. 从您的 Kibana > Dev Tools > 控制台 选项卡复制 URL,并将其作为 控制台编辑器的 URL 粘贴到连接设置中。
    3. 选择 保存
    View in Console configuration example
  3. 提交包含 JSON 文档的 HTTP post 请求。

    PUT /customer/_doc/1
    {
      "name": "John Doe"
    }

    此请求会自动创建 customer 索引,添加 ID 为 1 的新文档,并存储和索引 name 字段。

  4. 新文档可立即从集群中的任何节点获得。您可以使用指定其文档 ID 的 GET 请求来检索它

    GET /customer/_doc/1

步骤 3:批量添加数据

编辑

您可以不一次添加一个文档,而是使用 _bulk 端点在一个请求中添加多个文档。这可以最大限度地减少网络往返,并且比一次添加一个文档要快得多。

想为自己的一些数据建立索引吗?您可以从 CSV、TSV、JSON 文件上传数据,或使用 Elastic 集成从 Nginx、AWS 和 MongoDB 等流行服务和平台收集数据。要查看可用的内容,请在 Kibana 主页上选择 添加集成

最佳批处理大小取决于许多因素:文档大小和复杂性、索引和搜索负载以及集群可用的资源。一个好的起点是使用 1,000 到 5,000 个文档的批次,总有效负载在 5MB 到 15MB 之间。

批量数据必须是换行符分隔的 JSON (NDJSON)。每行必须以换行符 (\n) 结尾,包括最后一行。

例如,提交以下批量请求以将 10 个文档添加到 bank 索引。

POST bank/_bulk
{ "create":{ } }
{ "account_number":1,"balance":39225,"firstname":"Amber","lastname":"Duke","age":32,"gender":"M","address":"880 Holmes Lane","employer":"Pyrami","email":"[email protected]","city":"Brogan","state":"IL" }
{ "create":{ } }
{ "account_number":6,"balance":5686,"firstname":"Hattie","lastname":"Bond","age":36,"gender":"M","address":"671 Bristol Street","employer":"Netagy","email":"[email protected]","city":"Dante","state":"TN" }
{ "create":{ } }
{ "account_number":13,"balance":32838,"firstname":"Nanette","lastname":"Bates","age":28,"gender":"F","address":"789 Madison Street","employer":"Quility","email":"[email protected]","city":"Nogal","state":"VA" }
{ "create":{ } }
{ "account_number":18,"balance":4180,"firstname":"Dale","lastname":"Adams","age":33,"gender":"M","address":"467 Hutchinson Court","employer":"Boink","email":"[email protected]","city":"Orick","state":"MD" }
{ "create":{ } }
{ "account_number":20,"balance":16418,"firstname":"Elinor","lastname":"Ratliff","age":36,"gender":"M","address":"282 Kings Place","employer":"Scentric","email":"[email protected]","city":"Ribera","state":"WA" }
{ "create":{ } }
{ "account_number":25,"balance":40540,"firstname":"Virginia","lastname":"Ayala","age":39,"gender":"F","address":"171 Putnam Avenue","employer":"Filodyne","email":"[email protected]","city":"Nicholson","state":"PA" }
{ "create":{ } }
{ "account_number":32,"balance":48086,"firstname":"Dillard","lastname":"Mcpherson","age":34,"gender":"F","address":"702 Quentin Street","employer":"Quailcom","email":"[email protected]","city":"Veguita","state":"IN" }
{ "create":{ } }
{ "account_number":37,"balance":18612,"firstname":"Mcgee","lastname":"Mooney","age":39,"gender":"M","address":"826 Fillmore Place","employer":"Reversus","email":"[email protected]","city":"Tooleville","state":"OK" }
{ "create":{ } }
{ "account_number":44,"balance":34487,"firstname":"Aurelia","lastname":"Harding","age":37,"gender":"M","address":"502 Baycliff Terrace","employer":"Orbalix","email":"[email protected]","city":"Yardville","state":"DE" }
{ "create":{ } }
{ "account_number":49,"balance":29104,"firstname":"Fulton","lastname":"Holt","age":23,"gender":"F","address":"451 Humboldt Street","employer":"Anocha","email":"[email protected]","city":"Sunriver","state":"RI" }

步骤 4:搜索和排序数据

编辑

已索引的文档可以近实时地进行搜索。要在字段中搜索特定术语,您可以使用 match 查询。例如,以下请求搜索 address 字段,以查找地址中包含 *mill* 或 *lane* 的客户

GET /bank/_search
{
  "query": { "match": { "address": "mill lane" } }
}

要构建更复杂的查询,您可以使用布尔查询来组合多个查询条件。您可以将条件指定为必需(必须匹配)、期望(应该匹配)或不期望(不得匹配)。

例如,以下请求在 bank 索引中搜索属于 39 岁客户的帐户,但排除任何居住在宾夕法尼亚州 (PA) 的人

GET /bank/_search
{
  "query": {
    "bool": {
      "must": [
        { "match": { "age": "39" } }
      ],
      "must_not": [
        { "match": { "state": "PA" } }
      ]
    }
  }
}

步骤 5:使用 Discover 搜索和探索您的数据

编辑

您可以使用 Discover 来搜索和筛选数据、获取有关字段结构的信息以及显示您的发现,而不是直接构建和向 Elasticsearch 提交 REST 请求。

Kibana 需要一个 数据视图 才能访问您想要探索的 Elasticsearch 数据。数据视图选择要使用的数据,并允许您定义字段的属性。

数据视图可以指向一个或多个索引、数据流或索引别名。例如,数据视图可以指向昨天的日志数据,或包含您所有数据的索引。

为了使用 Discover 和 Elastic Stack 中提供的许多其他功能和工具,您的数据应与数据视图关联。

  1. 选择要使用的数据

    1. 打开 Kibana 主菜单,然后选择 堆栈管理 > Kibana > 数据视图
    2. 选择 创建数据视图
    3. 输入数据视图的任意名称,并添加与一个或多个 Elasticsearch 索引匹配的索引模式。您可以使用 * 通配符在多个索引上创建数据视图。对于此示例,请尝试 b* 索引模式。

      Example of wildcard usage to create a data view
    4. 选择 将数据视图保存到 Kibana
  2. 从主菜单中选择 Discover
  3. 通过添加筛选器来指定查询条件。

    1. 选择 + 图标以添加筛选器。
    2. 选择字段和运算符,输入值,然后选择 保存。对于此示例,您可以选择按以下内容筛选

      • 带有运算符 is 和值 39age 字段。
      • 带有运算符 is not 和值 PAstate 字段。

        Example of query in Discover

您还可以在查询栏中使用 Kibana 查询语言 (KQL) 或 Lucene 语法直接指定查询条件。

步骤 6:可视化您的数据

编辑

您可以在 Kibana 中创建可视化效果并构建仪表板,以了解您的数据并共享信息。

  1. 打开 Kibana 主菜单,然后选择 仪表板
  2. 选择 创建仪表板 > 创建可视化效果
  3. 拖放字段以创建可视化效果,然后选择 保存并返回。例如,要创建显示按州平均余额的条形图

    1. state.keyword 字段拖到工作区。
    2. balance 字段拖到工作区。
    3. 选择 条形水平 作为可视化类型。
    4. 在图层窗格中,选择 state.keyword 的前 5 个值,编辑纵轴的 名称,增加显示的州数,然后选择 关闭
    5. 在图层窗格中,选择 balance 的中位数,将函数更改为 平均值,编辑横轴的 名称,然后选择 关闭
    6. 在图层窗格中,如果存在,请从横轴中删除 记录计数

      Example of Bar horizontal visualization in Kibana
  4. 创建更多可视化效果,或者选择保存并返回来保存仪表板。

观看操作指南系列:Kibana,了解更多关于使用 Kibana Lens 创建可视化效果和构建仪表板的信息。

下一步是什么?

编辑

了解更多关于 Elasticsearch 的信息

  • 映射是定义如何存储和索引文档及其包含的字段的过程。
  • 您在本指南中执行了一些简单的搜索,请了解更多关于搜索您的数据的信息。
  • 聚合将您的数据汇总为指标、统计数据或其他分析结果。

了解更多关于 Kibana 的信息

  • 了解关于数据视图的详细信息。
  • 了解Kibana 查询语言 (KQL),这是一种简单的语法,用于使用自由文本搜索或基于字段的搜索来过滤 Elasticsearch 数据。
  • 从您的地理数据创建实用且美观的地图。使用地图来可视化、过滤和交互您的数据。
  • 使用机器学习建模、检测和预测行为。

了解 Elastic 解决方案

  • 想要监控您的基础设施、应用程序或用户体验吗?尝试一下Elastic Observability
  • 想要为您的网站、应用程序或组织数据添加搜索功能吗?尝试一下Enterprise Search
  • 想让 Elastic 完成繁重的工作吗?使用机器学习来检测异常
  • 想保护您的端点免受安全威胁吗?尝试Elastic Security