本地运行 Elasticsearch
要在你自己的机器上试验,我们建议使用docker同时运行Elasticsearch和Kibana。Docker映像获取可通过 Elastic Docker registry 。
🏳️ 从Elasticsearch8.0开始,安全防护默认开启。首次运行Es,会自动配置TLS加密,为
elastic用户产生一个密码,创建一个用于Kibana登记的token这样你就可以连接Kibana到你的安全的集群。
关于其它安装选项,查看 Elasticsearch 安装文档。
启动Elasticsearch
- 安装和启动 Docker 桌面。转到 首选项 > 资源 > 高级 设置内存至少4GB。
- 启动一个Elasticsearch容器。
docker network create elastic
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.4.3
docker run --name elasticsearch --net elastic -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -t docker.elastic.co/elasticsearch/elasticsearch:8.4.3
当你首次启动Elasticsearch时,产生的 elastic 用户的密码和Kibana登记的token会输出到终端。
🏳️ 你可能需要在终端向上滚动一点以查看密码和登记token。
- 拷贝产生的密码和登记token,将它们保存到一个安全的位置。这些值只会在首次启动Elasticsearch的时候显示。你将使用这些用于登记Kibana到你的集群里和登录。
启动Kibana
Kibana使你能够很容易的发送请求到Elasticsearch并且交互式的分析、可视化、和管理数据。
- 在一个新的终端会话,启动Kibana并连接它到你的Elasticsearch容器:
docker pull docker.elastic.co/kibana/kibana:8.4.3
docker run --name kibana --net elastic -p 5601:5601 docker.elastic.co/kibana/kibana:8.4.3
当你启动Kibana时,一个唯一的URL会输出到你的终端。
- 在你的浏览器里打开产生的URL以连接到Kibana。
- 将启动Elasticsearch时复制的登记token粘贴过来,点击按钮连接你的Kibana实例和Elasticsearch。
- 使用
elastic用户和你启动Elasticsearch时产生的用户密码登录到Kibana。
向Elasticsearch发送请求
你通过REST APIs向Elastic search发送数据和其它的请求。你可以使用任何能发送HTTP请求的客户端和Elasticsearch进行交互,比如 Elasticsearch 语言类客户端 和 curl 。 Kibana的开发者控制台为实验和测试请求提供了一个简单的方式。要访问控制台,转到 管理 > 开发工具。
添加数据
你可以通过REST APIs发送JSON对象(文档)来向Elasticsearch索引数据。不管你是有结构或非结构的文本、数字型数据,还是地球空间信息数据,Elasticsearch以一种支持快速搜索的方式来高效的存储和索引它。
关于像日志和度量带有时间戳的数据,你通常将documents添加到由多个自动生成的备份索引组成的数据流中。
要添加一个单独的document到一个index,提交一个指向那个index的HTTP post请求。
POST /customer/_doc/1
{
"firstname": "Jennifer",
"lastname": "Walters"
}
如果 customer index不存在的话这个请求会自动创建它,并且添加一个ID为1的新的document到它里面,并且存储和索引 firstname 和 lastname 域。
新建立的文档可以从集群的任何节点立即获得。你可以通过一个指定了它的document ID的GET请求来取回它。
GET /customer/_doc/1
要在一个请求里添加多个document,使用 _bulk API。堆积的数据必须是新行限制的JSON(NDJSON)。每一行必须以一个新行字符(\n)结束,包括最后的行。
PUT customer/_bulk
{ "create": { } }
{ "firstname": "Monica","lastname":"Rambeau"}
{ "create": { } }
{ "firstname": "Carol","lastname":"Danvers"}
{ "create": { } }
{ "firstname": "Wanda","lastname":"Maximoff"}
{ "create": { } }
{ "firstname": "Jennifer","lastname":"Takeda"}
搜索
索引后的document可以接近实时的搜索得到。下面的搜索匹配了customer index里所有 firstname 为 Jennifer的顾客。
GET customer/_search
{
"query" : {
"match" : { "firstname": "Jennifer" }
}
}
探索
你可以使用Kibana里的 Discover 交互式地搜索和过滤你的数据。在那你可以开始创建可视化,并且建立和分享仪表盘。
要开始的话,创建一个数据视图连接到一个或多个的Elasticsearch indices, 数据流,或者 index 别名。
- 转到 Management > Stack Management > Kibana > Data Views。
- 选择 Create data view。
- 为创建的数据视图输入一个名称,一个匹配一个或多个index的模式比如customer。
- 选择 Save data view to Kibana。
要开始探索,转到 Analytics > Discover。