今天在配置elasticsearch 5.6的时候出的问题:
可以看到正常的head界面,但是显示集群未连接。原因是我访问head的时候用的公网的IP,但如图中箭头的地址配置的是内网的地址,而且我本地对该内网地址可不达,所以不管怎么调整es跟head的配置都不济于事。
主要是head这个插件只是运行的远程服务器上的一个客户端,而不是一个服务端,相当于你通过9100端口打开了一个web的client软件,对es集群的操作令仍然是从你本地发出的;而不是在server上查询后再返回给你。
附安装过程:
依赖: node >= 6.0 git
安装
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
修改es及head的相应配置
$ES_HOME/config/elasticsearch.yml
除了常规的设置外,需要增加跨域设置
http.cors.enabled: true
http.cors.allow-origin: "*"
ES默认不允许跨域访问
es-head中修改_site/app.js
将http://localhost:9200替换成你本地可以访问的http://ip:9200,
重起ES 和es-head
su - elasticsearch /opt/elasticsearch/bin/elasticsearch &
cd elasticsearch
npm run start &
ss -lnt #查看 9100端口是否正常监听
访问路径: http://ip:9100/