最近学习 Elasticsearch ,搜了本《Elasticsearch权威指南》,照着例子安装了 Elasticsearch,用 curl 创建文档和检索文档时都还可以,但在跑 DSL 查询的时候发现就是执行不成功,只能按里面写的安装 Marvel 插件。结果插件安装时碰到了一些坑,书里和网上大部分文章说安装时是这样的:
在解压缩后的 Elasticsearch 目录下执行:
./bin/plugin -i elasticsearch/marvel/latest
但我下载的 elasticsearch-5.2.2 的 bin 目录下只有 elasticsearch-plugin ,猜想应该是改了名字,所以本机执行:
./bin/elasticsearch-plugin -i elasticsearch/marvel/latest
提示错误:i操作不能识别
根据提示可能用的命令是 install 而不是 -i ,所以换成了
./bin/elasticsearch-plugin install elasticsearch/marvel/latest
提示错误:未知的插件
后来搜到 github 上一个 Contributor 的回答,原来 Elasticsearch 的5.x版本已经把 Marvel 插件放到 X-Pack 里了。
原来 Elasticsearch、Logstash 随着 Kibana 的命名升级直接从2.4跳跃到了5.0,5.x版本的 ELK 在版本对应上要求相对较高,不再支持5.x和2.x的混搭,同时 Elastic 做了一个 package ,对原本的 marvel、watch、alert 做了一个封装,形成了 x-pack 。
而 Kibana 是一个为 ElasticSearch 提供的数据分析的 Web 接口,可用它对日志进行高效的搜索、可视化、分析等各种操作。这里为了可视化操作一起只能一起都安装了。
安装 Elasticsearch
到官网根据不同操作系统下载最新版本的Elasticsearch压缩包,之后本地解压缩。
Elasticsearch下载 x-pack
在 Elasticsearch 的根目录,运行 bin/elasticsearch-plugin 进行安装:
bin/elasticsearch-plugin install x-pack
安装到最后会跳出选项选y即可
运行 Elasticsearch
在 Elasticsearch 的根目录,运行bin/elasticsearch:
bin/elasticsearch
启动成功后浏览器打开 http://localhost:9200/?pretty 会发现在安装了 x-pack 之后访问受到限制:
这里默认的用户名:elastic,密码:changeme。可以通过 curl 修改默认密码:
curl -XPUT -u elastic 'localhost:9200/_xpack/security/user/elastic/_password' -d '{
"password" : "123456"
}
安装 Kibana
到官网根据不同操作系统下载最新版本的Kibana压缩包,选择和上面的Elasticsearch相同版本号的,之后本地解压缩。
Kibana 下载 x-pack
在 Kibana 根目录运行 bin/kibana-plugin 进行安装:
bin/kibana-plugin install x-pack
运行 Kibana
在 Kibana 的根目录,运行 bin/kibana:
bin/kibana
启动成功后浏览器打开 http://localhost:5601/ 会发现在安装了 x-pack 之后访问也受限制,这里默认的用户名:elastic,密码:changeme。可以通过 curl 修改默认密码:
curl -XPUT -u elastic 'localhost:9200/_xpack/security/user/kibana/_password' -d '{
"password" : "123456"
}'
Kibana 可视化管理
在页面左侧选择【DevTools】,就可以进行相应 REST 操作,
这里值得称赞的是使用 DSL 语句查询的时候在这个开发者工具界面能提供很多有用的输入提示: