试试在发布纪念的Elasticsearch 5.1.1中新增的Kibana Profiler
摘要
在Kibana 5.1.1中,新增了Profiler的用户界面,正如在”Your profile never looked better”部分所介绍的那样。
现在,对于5.1.1版本,X-Pack基础(免费)安装包含了一个性能分析器的用户界面。在安装X-Pack之后,您可以在Kibana的开发工具区域找到它。性能分析器用户界面提供了带有与每个分支相关的时间的查询树结构,这使您能够深入了解耗时最长的部分。它还可以帮助您快速迭代,轻松启用查看新的(并且希望更快!)查询。它在我们的基础版本中可用,免费供生产或开发使用并注册。
我们的基本版可免费用于生产或开发,只需注册即可使用。
可以在基本版本中使用。
一听到新功能,我就忍不住想试试看的性格使然,以下是我在现有环境中尝试的记录。
操作步骤
获取Docker镜像
由于不喜欢本地环境变得混乱,我希望使用Docker进行这类验证。
获取弹性公司的官方Docker镜像。
docker pull docker.elastic.co/elasticsearch/elasticsearch:5.1.1
docker pull docker.elastic.co/kibana/kibana:5.1.1
由于据说Docker官方仓库没有进行维护,建议我们使用elastic的仓库。
不要因为docker search elasticsearch中的OFFICIAL是[OK]就盲目地去使用docker pull elasticsearch:latest之类的命令。否则你会被大谷先生指责的……。最好忍住冲动,先查看官方手册。
再次提醒:我们要使用Elastic提供的图像!
-
- 使用Docker安装Elasticsearch
- 设置Kibana » 在Docker上运行Kibana » 拉取镜像
这个图像上,包含了x-pack才是重点。
在启动后,若直接在浏览器中访问9200端口,则会提示需要进行身份验证,让人感到吃惊。
启动容器
我也会按照手册启动。
docker run -d --name es511 -p 9200:9200 -e "http.host=0.0.0.0" -e "transport.host=127.0.0.1" docker.elastic.co/elasticsearch/elasticsearch:5.1.1
docker run -d -p 5601:5601 --link es511:elasticsearch docker.elastic.co/kibana/kibana:5.1.1
似乎可以通过将kibana.yml传递给Kibana,以便在启动时传递配置信息。
最少,Elasticsearch在哪里运行,默认情况下为http://elasticsearch:9200/,因此我们使用–link传递信息,以便可以访问之前建立的Elasticsearch容器。
另外,Kibana 图像使用的默认值在此处提供。
https://www.elastic.co/guide/en/kibana/current/_configuring_kibana_on_docker.html#_docker_defaults
使用浏览器进行确认。
好的,现在从浏览器进入Kibana开始吧!首先会显示登录页面。
请用中文将以下内容释义转述,提供一种选项:
http://xxxxxxxxx:5601/

用户名和密码请设置为默认值elastic/changeme。
登录后的界面在这里。

个人身份验证界面
打算随意加入大约一万条测试数据,然后在Kibana左侧的菜单“开发工具”中,打开以前称为Sense的界面,现在是Console的界面。我想在Console的旁边应该添加了Profiler。

这次使用了一个掲示板的帖子记录,搜索结果约有8000条,作为一个验证用的查询。为了希望性能变差,我会无意义地使用星号。
GET test/_search
{
"query": {
"bool": {
"should": [
{
"match_phrase": {
"content": "お世話になっております"
}
},
{
"match_phrase": {
"content": "よろしく"
}
},
{
"term": {
"parent": {
"value": "0"
}
}
},
{
"match_phrase_prefix": {
"content": "ソリューション*"
}
}
]
}
}
,
"aggs": {
"category": {
"terms": {
"field": "category.keyword",
"size": 10
}
}
}
}
在Profiler的用户界面上,通过在左侧的Index、Type和Console等位置输入条件,然后按下“Profile”按钮,就会在右侧显示发出的查询和它们在哪里以及花费了多少时间。
索引(Index)和类型(Type)是可选项,如果未加入,则会包括监视和Kibana索引。
图像是这样的。

随想
当你感到某件事很慢时,检查Analyzer和调整查询的方法可能会有所帮助。
另外,Docker的官方文档和Elastic的官方文档是不同的,这一点让我受益匪浅。