入门指南:部署您自己的平台来存储、搜索和可视化任何数据
编辑入门指南:部署您自己的平台来存储、搜索和可视化任何数据
编辑本指南将向您展示如何设置一个通用的 Elastic 部署,以存储、搜索和可视化任何数据。如果您有兴趣在 Elastic 搜索平台上构建自定义解决方案,请从此处开始。
前提条件
编辑要开始,您只需要互联网连接和电子邮件地址。
步骤 1:创建 Elastic Cloud 部署
编辑如果您已经注册了试用部署,您可以跳过此步骤。
Elastic Cloud 部署为您提供 Elastic Stack 的所有功能,作为托管服务。要试用您的第一个部署,请注册免费的 Elastic Cloud 试用版
- 访问我们的 Elastic Cloud 试用版 页面。
-
输入您的电子邮件地址和密码。
-
完成 登录 后,您可以创建一个部署。为您的部署命名并选择 创建部署。
- 在部署设置过程中,请记下您的
elastic
超级用户密码,并将其保存在安全的地方。 - 部署准备就绪后,选择 继续。此时,您可以访问 Kibana 和一系列设置指南。
步骤 2:向 Elasticsearch 添加数据
编辑您可以通过通过 HTTP 向 Elasticsearch 发送 JSON 对象(文档)来向 Elasticsearch 添加数据。无论您拥有结构化文本还是非结构化文本、数值数据还是地理空间数据,Elasticsearch 都能高效地对其进行存储和索引,从而支持快速搜索。
本教程使用 Kibana Dev Tools 控制台向 Elasticsearch 提交 REST 请求,但您可以使用任何 HTTP 客户端向 Elasticsearch 发送请求。Elasticsearch 提供了针对 Java、Javascript 和许多其他流行语言的客户端。
使用 Elastic Agent 收集您需要监控的主机或容器中的数据。有关更多信息,请查看 监控应用程序和系统。
要将文档添加到新的索引
- 选择 我想执行其他操作 以打开 Kibana 首页(请注意,您也可以始终通过单击 Elastic 徽标来访问 Kibana 首页)。
-
打开 Kibana 主菜单,选择 Dev Tools,然后选择 Console。
接下来的几个步骤包含带有
在控制台中查看
链接的代码示例。这些链接会将代码示例粘贴到您的 Kibana 控制台中。要使用
在控制台中查看
,请配置连接并选择 在控制台中查看 链接。您只需配置一次连接。- 选择任何代码示例中的齿轮图标以打开连接设置。
- 从您的 Kibana > Dev Tools > Console 选项卡复制 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 查询来组合多个查询条件。您可以将条件指定为必需(必须匹配)、理想(应匹配)或不理想(必须不匹配)。
例如,以下请求搜索银行索引中属于 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 安全。