Elasticsearch(以下简称ES)是一个面向文档的实时分布式搜索和分析引擎。本文是在Mac系统下使用Homebrew安装ES+Kibana+Marvel的一份极简指南。
前置条件
想要安装ES的前提是已经在本机安装了Java环境,在命令行键入
$ java -version
如果正确打印出版本信息则说明已安装Java,否则请到Java官网下载最新版安装即可。
另外,本文使用Homebrew来安装ES,Homebrew是Mac环境里的一种包管理工具,可以方便地进行软件的安装、更新和卸载操作。如果本机未安装,可以使用以下命令进行安装。
$ ruby -e"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
完成以上步骤后,本机已具备Java和Homebrew,进入正题。
安装ES & Kibana
$ brew update
$ brew install elasticsearch
$ brew install kibana
以上命令将ES和Kibana安装到本地,其中Kibana是ES的一个配套工具,可以让用户在网页中与ES进行交互。安装完成后,在命令行键入
$ brew info elasticsearch
$ brew info kibana
可以分别看到两个软件的一些安装信息,比如安装路径和配置文件的路径等,后面会用到。
安装Marvel
Marvel也是ES的一个插件,能够让你通过Kibana非常容易地监视ES集群的健康状态等信息。最新版的Marvel已经集成到X-Pack模块当中。X-Pack是ES的一个安全框架,可以给网页端访问Kibana加入账号系统,使操作更加安全,更多介绍请移步官方文档
$ cd /usr/local/Cellar/elasticsearch/6.1.1/
$ bin/elasticsearch-plugin install x-pack
以上命令安装X-Pack模块到本地,至此安装部分完成。
启动ES & Kibana
$ brew services start elasticsearch
$ brew services start kibana
启动后可以在本地浏览器访问
Kibana:http://localhost:5601
首次进入Kibana页面时需要输入账号名和密码,默认的用户名是elastic,密码是changeme,可以通过以下命令修改密码
$ curl -XPUT -u elastic'localhost:9200/_xpack/security/user/kibana/_password'-H"Content-Type: application/json"-d'{
"password" : "kibanapassword"
}'
如果不想使用账号密码,可以将下面的配置写入ES和kibana的配置文件,配置文件所在目录可以通过brew info xxx查看 例如:brew info elasticsearch
xpack.security.enabled:false
笔者在这里遇到的问题:
1、默认初始密码无法访问,参考以上方法无法重置密码
解决方案:使用x-pack set-passwords 随机生成密码
我的x-pack文件在/usr/local/Cellar/elasticsearch/6.1.1/libexec/bin/x-pack
/usr/local/Cellar/elasticsearch/6.1.1/libexec/bin/x-pack auto
得到结果:
Changed password for user kibanaPASSWORD kibana = vpBhuFpJ+pQ-xgIU1jCJ Changed password for user logstash_systemPASSWORD logstash_system = n^?bkKTEwGgd&Yb4^dNw Changed password for user elasticPASSWORD elastic = 9JMXO+l^E3RiQ5MIE?F8
参考链接:https://www.elastic.co/guide/en/x-pack/current/security-getting-started.html
2、访问 Kibana:http://localhost:5601 无法输入账号密码 或者启动kibana时发生错误
log [06:03:18.229] [error][status][plugin:elasticsearch@6.1.1] Status changed from yellow to red - Request Timeout after 3000ms log [06:03:18.237] [error][status][plugin:security@6.1.1] Status changed from uninitialized to red - Request Timeout after 3000ms
是因为开启x-pack的安全验证,需要在kibana.yml文件配置elasticsearch账号密码
elasticsearch.username: "elastic"
elasticsearch.password: "9JMXO+l^E3RiQ5MIE?F8"
3、参考网上其他教程,发现kibana 也要安装x-pack
x-pack官网也提到需要安装,这个是因为不同的版本需要安装指定x-pack版本
参考链接:https://www.elastic.co/guide/en/x-pack/current/installing-xpack.html
执行
$ cd /usr/local/Cellar/kibana/6.1.1/
$ bin/kibana-plugin install x-pack
如果发现安装很慢可以脱机安装
Found previous install attempt. Deleting... Attempting to transfer from x-pack Attempting to transfer from https://artifacts.elastic.co/downloads/kibana-plugins/x-pack/x-pack-6.1.1.zip
找到以上安装地址下载下来,当然你还是需要翻墙的,不然还是很慢
https://artifacts.elastic.co/downloads/kibana-plugins/x-pack/x-pack-6.1.1.zip
$ cd /usr/local/Cellar/kibana/6.1.1/
$ bin/kibana-plugin install file://你的文件存放地址
参考地址:http://blog.csdn.net/u013066244/article/details/69349228
重启ES和Kibana后以上配置即可生效
$ brew services restart elasticsearch
$ brew services restart kibana
最后再提醒一句:
ES6以上开启了请求数据严格验证,具体请参考
https://www.elastic.co/blog/strict-content-type-checking-for-elasticsearch-rest-requests
然后可以在Kibana页面中的Dev Tools子页面下直接与ES交互。关于ES的具体命令,请参看《Elasticsearch 权威指南》