入门指南:部署您自己的平台来存储、搜索和可视化任何数据
编辑入门指南:部署您自己的平台来存储、搜索和可视化任何数据
编辑本指南将向您展示如何设置一个通用的 Elastic 部署,以存储、搜索和可视化任何数据。如果您有兴趣在 Elastic 搜索平台上构建自定义解决方案,请从这里开始。
先决条件
编辑要开始使用,您只需要一个互联网连接和一个电子邮件地址。
步骤 1:创建 Elastic Cloud 部署
编辑如果您已经注册了试用部署,则可以跳过此步骤。
Elastic Cloud 部署为您提供 Elastic Stack 的所有功能,作为托管服务。要试用您的第一个部署,请注册免费的 Elastic Cloud 试用版
- 转到我们的 Elastic Cloud 试用版 页面。
-
输入您的电子邮件地址和密码。
-
在您登录后,您可以创建一个部署。给您的部署命名并选择 创建部署。
- 在部署设置时,请记下您的
elastic
超级用户密码,并将其保存在安全的地方。 - 部署准备就绪后,选择 继续。此时,您可以访问 Kibana 和一系列设置指南。
步骤 2:向 Elasticsearch 添加数据
编辑您可以通过 HTTP 将 JSON 对象(文档)发送到 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" } } }
要构建更复杂的查询,您可以使用布尔查询来组合多个查询条件。您可以将条件指定为必需(必须匹配)、期望(应该匹配)或不期望(不得匹配)。
例如,以下请求在 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。
-
通过添加筛选器来指定查询条件。
- 选择 + 图标以添加筛选器。
-
选择字段和运算符,输入值,然后选择 保存。对于此示例,您可以选择按以下内容筛选
- 带有运算符
is
和值39
的age
字段。 -
带有运算符
is not
和值PA
的state
字段。
- 带有运算符
您还可以在查询栏中使用 Kibana 查询语言 (KQL) 或 Lucene 语法直接指定查询条件。
步骤 6:可视化您的数据
编辑您可以在 Kibana 中创建可视化效果并构建仪表板,以了解您的数据并共享信息。
- 打开 Kibana 主菜单,然后选择 仪表板。
- 选择 创建仪表板 > 创建可视化效果。
-
拖放字段以创建可视化效果,然后选择 保存并返回。例如,要创建显示按州平均余额的条形图
- 将
state.keyword
字段拖到工作区。 - 将
balance
字段拖到工作区。 - 选择 条形水平 作为可视化类型。
- 在图层窗格中,选择 state.keyword 的前 5 个值,编辑纵轴的 名称,增加显示的州数,然后选择 关闭。
- 在图层窗格中,选择 balance 的中位数,将函数更改为 平均值,编辑横轴的 名称,然后选择 关闭。
-
在图层窗格中,如果存在,请从横轴中删除 记录计数。
- 将
- 创建更多可视化效果,或者选择保存并返回来保存仪表板。
观看操作指南系列:Kibana,了解更多关于使用 Kibana Lens 创建可视化效果和构建仪表板的信息。
下一步是什么?
编辑了解更多关于 Elasticsearch 的信息
了解更多关于 Kibana 的信息
- 了解关于数据视图的详细信息。
- 了解Kibana 查询语言 (KQL),这是一种简单的语法,用于使用自由文本搜索或基于字段的搜索来过滤 Elasticsearch 数据。
- 从您的地理数据创建实用且美观的地图。使用地图来可视化、过滤和交互您的数据。
- 使用机器学习建模、检测和预测行为。
了解 Elastic 解决方案
- 想要监控您的基础设施、应用程序或用户体验吗?尝试一下Elastic Observability。
- 想要为您的网站、应用程序或组织数据添加搜索功能吗?尝试一下Enterprise Search。
- 想让 Elastic 完成繁重的工作吗?使用机器学习来检测异常。
- 想保护您的端点免受安全威胁吗?尝试Elastic Security。