入门:部署自己的平台来存储、搜索和可视化任何数据
编辑入门:部署自己的平台来存储、搜索和可视化任何数据编辑
本指南将向您展示如何设置一个通用 Elastic 部署,以存储、搜索和可视化任何数据。如果您有兴趣在 Elastic 搜索平台上构建自定义解决方案,请从这里开始。
先决条件编辑
要开始,您只需要一个互联网连接和一个电子邮件地址。
步骤 1:创建 Elastic Cloud 部署编辑
如果您已经注册了试用部署,则可以跳过此步骤。
Elastic Cloud 部署为您提供了 Elastic Stack 的所有功能,作为托管服务。要试用您的第一个部署,请注册免费的 Elastic Cloud 试用版
- 访问我们的 Elastic Cloud 试用版 页面。
-
输入您的电子邮件地址和密码。
-
登录后,您可以创建部署。为您的部署命名,然后选择 创建部署.
- 在部署设置期间,请记下您的
elastic
超级用户密码,并将其保存在安全的地方。 - 部署准备就绪后,选择 继续。此时,您可以访问 Kibana 和一些设置指南。
步骤 2:将数据添加到 Elasticsearch编辑
您可以通过将 JSON 对象(文档)通过 HTTP 发送到 Elasticsearch 来将数据添加到 Elasticsearch。无论您拥有结构化还是非结构化文本、数值数据还是地理空间数据,Elasticsearch 都可以高效地以支持快速搜索的方式存储和索引数据。
本教程使用 Kibana Dev Tools 控制台向 Elasticsearch 提交 REST 请求,但您可以使用任何 HTTP 客户端向 Elasticsearch 发送请求。Elasticsearch 为 Java、Javascript 和许多其他流行语言提供客户端。
使用 Elastic Agent 收集您需要监控的主机或容器中的数据。有关更多信息,请查看 监控应用程序和系统.
要将文档添加到新索引
- 选择 我想做点其他事 打开 Kibana 主页(请注意,您也可以始终通过单击 Elastic 徽标访问 Kibana 主页)。
-
打开 Kibana 主菜单,选择 Dev Tools,然后选择 控制台.
接下来的几个步骤包含具有
在控制台中查看
链接的代码示例。这些链接将代码示例粘贴到您的 Kibana 控制台中。要使用
在控制台中查看
,请配置连接并选择 在控制台中查看 链接。您只需配置一次连接。- 选择任何代码示例中的齿轮图标以打开连接设置。
- 从您的 Kibana > Dev Tools > 控制台 选项卡中复制 URL 并将其粘贴到连接设置中,作为 控制台编辑器 URL.
- 选择 保存.
-
提交包含 JSON 文档的 HTTP POST 请求。
PUT /customer/_doc/1 { "name": "John Doe" }
此请求会自动创建
customer
索引,添加一个 ID 为 1 的新文档,并将name
字段存储和索引。 -
新文档会立即从集群中的任何节点可用。您可以使用指定其文档 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 查询组合多个查询条件。您可以将条件指定为必需(必须匹配)、理想(应匹配)或不理想(必须不匹配)。
例如,以下请求搜索 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 中提供的更多功能和工具,您的数据应该与数据视图关联。
-
选择您要处理的数据
- 打开 Kibana 主菜单,然后选择 堆栈管理 > Kibana > 数据视图.
- 选择 创建数据视图.
-
输入您的数据视图的任何名称,并添加与一个或多个 Elasticsearch 索引匹配的索引模式。您可以使用 * 通配符创建跨多个索引的数据视图。对于此示例,请尝试使用
b*
索引模式。 - 选择 将数据视图保存到 Kibana.
- 从主菜单中选择 Discover.
-
通过添加过滤器来指定查询条件。
- 选择 + 图标以添加过滤器。
-
选择字段和运算符,输入值,然后选择 保存。对于此示例,您可以选择按以下条件进行过滤
age
字段,使用is
运算符,值为39
。-
state
字段,使用is not
运算符,值为PA
。
您也可以使用 Kibana 查询语言 (KQL) 或 Lucene 语法在查询栏中直接指定您的查询条件。
步骤 6:可视化您的数据编辑
您可以在 Kibana 中创建可视化并构建仪表板,以了解您的数据并共享信息。
- 打开 Kibana 主菜单,然后选择 仪表板.
- 选择 创建仪表板 > 创建可视化.
-
拖放字段以创建可视化,然后选择 保存并返回。例如,要创建显示按州划分的平均余额的条形图
- 将
state.keyword
字段拖到工作区中。 - 将
balance
字段拖到工作区中。 - 选择 水平条形图 作为可视化类型。
- 在图层窗格中,选择 state.keyword 的前 5 个值,编辑 名称 垂直轴,增加显示的州数,然后选择 关闭.
- 在图层窗格中,选择 balance 的中位数,将函数更改为 平均值,编辑 名称 水平轴,然后选择 关闭.
-
在图层窗格中,如果存在,请从水平轴中删除 记录计数.
- 将
- 创建更多可视化,或选择 保存并返回 保存仪表板。
观看 操作指南系列:Kibana,了解有关使用 Kibana Lens 创建可视化和构建仪表板的更多信息。
接下来做什么?编辑
了解有关 Elasticsearch 的更多信息
了解有关 Kibana 的更多信息
- 详细了解有关 数据视图 的信息。
- 了解有关 Kibana 查询语言 (KQL) 的信息,这是一种使用自由文本搜索或基于字段的搜索来过滤 Elasticsearch 数据的简单语法。
- 从您的地理数据创建功能齐全且美观的 地图。使用地图可视化、过滤和与您的数据交互。
- 使用 机器学习 对行为进行建模、检测和预测。
了解 Elastic 解决方案
- 想要监控您的基础设施、应用程序或用户体验?试试 Elastic 可观测性。
- 想要为您的网站、应用程序或组织数据添加搜索功能?试试 企业搜索。
- 想要 Elastic 来完成繁重的工作?使用机器学习来 检测异常。
- 想要保护您的端点免受安全威胁?试试 Elastic 安全。