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

编辑

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

本指南将向您展示如何设置一个通用 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编辑

您可以通过将 JSON 对象(文档)通过 HTTP 发送到 Elasticsearch 来将数据添加到 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 字段以查找地址包含 milllane 的客户

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

要构建更复杂的查询,可以使用 bool 查询组合多个查询条件。您可以将条件指定为必需(必须匹配)、理想(应匹配)或不理想(必须不匹配)。

例如,以下请求搜索 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. 选择字段和运算符,输入值,然后选择 保存。对于此示例,您可以选择按以下条件进行过滤

      • age 字段,使用 is 运算符,值为 39
      • state 字段,使用 is not 运算符,值为 PA

        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 可观测性
  • 想要为您的网站、应用程序或组织数据添加搜索功能?试试 企业搜索
  • 想要 Elastic 来完成繁重的工作?使用机器学习来 检测异常
  • 想要保护您的端点免受安全威胁?试试 Elastic 安全