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

编辑

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

编辑

本指南将向您展示如何设置一个通用的 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 向 Elasticsearch 发送 JSON 对象(文档)来向 Elasticsearch 添加数据。无论您拥有结构化文本还是非结构化文本、数值数据还是地理空间数据,Elasticsearch 都能高效地对其进行存储和索引,从而支持快速搜索。

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

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

要将文档添加到新的索引

  1. 选择 我想执行其他操作 以打开 Kibana 首页(请注意,您也可以始终通过单击 Elastic 徽标来访问 Kibana 首页)。
  2. 打开 Kibana 主菜单,选择 Dev Tools,然后选择 Console

    Kibana Console page

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

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

    1. 选择任何代码示例中的齿轮图标以打开连接设置。
    2. 从您的 Kibana > Dev Tools > Console 选项卡复制 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" } }
}

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

例如,以下请求搜索银行索引中属于 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 安全