关于Ubuntu16.04里安装elasticsearch-head显示集群健康值未连接的问题

在Ubuntu上安装好elasticsearch后,先用如下命令测试elasticsearch是否有问题:

         sudo systemctl start elasticsearch.service

         sudo systemctl stop elasticsearch.service

         如果输入命令后无反应,证明elasticsearch没问题。

         安装elasticsearch-head后,用npm run start启动后,显示“集群健康值:未连接”,看遍网上各种情况以及由于我自己过分小白而遭遇的想要打死自己奇葩情况,大概包括以下几种。

1) 打开“/etc/elasticsearch/elasticsearch.yml”文件,在文件最后添加如下代码保存,这里要注意添加的代码冒号后边都有一个空格。

http.cors.enabled: true

http.cors.allow-origin: "*"

http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE

http.cors.allow-headers: "X-Requested-With, Content-Type, Content-Length, X-User"

这里就出现了我的第一个奇葩问题,我在图形界面下想进elasticsearch文件夹进不去,他上边打了一个×,说我没权限,然后我就一脸懵逼。后来百度发现是要获取root权限才可以,linux下进入root权限:sodo su即可。然后在root权限下进入/etc/elasticsearch/,输入命令:sudo gedit elasticsearch.yml,打开elasticsearch.yml文件,在末尾加上上述的代码,保存关闭即可。重启elasticsearch-head,集群健康值就已经变成绿色连接状态了。

然而在这里,我并没有成功,然后就是一顿下边其他情况的各种尝试操作,全部失败,感觉生无可恋。然后这里是我遇到的第二个奇葩问题,安完elasticsearch,测试的时候,我先启动了es,没问题,然后我顺手又把它关了。。。但是启动elasticsearch-head的时候我又没启动elasticsearch!所以集群健康值一直显示未连接。所以在启动elasticsearch-head之前,先把elasticsearch启动了,然后再启动elasticsearch-head就显示绿色连接状态啦~但是这个操作是在加了上边的代码之后成功的。不知道会不会有人存在同样的问题,然后挣扎好久,怀疑人生。

2) 当初第一种情况解决不了问题,然后出现了第二种解决方法。打开elasticsearch.yml文件后,在文件末尾添加如下代码,仍然注意冒号后边的空格:

http.cors.enabled: true

http.cors.allow-origin: "*"

然后打开elasticsearch-head下Gruntfile.js,我的elasticsearch-head是在home文件夹下。在如下代码段处添加“hostname: '0.0.0.0',”这行代码,然后保存退出,重启elasticsearch-head即可。

connect: {

        server: {

            options: {

                hostname: '0.0.0.0',

                port: 9100,

                base: '.',

                keepalive: true

            }

        }

}  

3) 第二种还不行,又出现了第三种方法。

经过了1)或2)中添加代码的操作,仍然不行,结果发现是连接框这个位置要把localhost改成自己的ip,再连接就可以了。

这里有两种说法:

一种说法是通过查看连接信息里的ip,换成这个ip连接。

                  

另一种说法是换成elasticsearch.yml文件里的network.host对应的ip。 

4) 换完了ip还是不行,出现第四种方法。

要把elasticsearch.yml文件里的network.host这行和cluster.initial_master_nodes这两行的注释去掉。再重启elasticsearch-head。

 

 5) 第四种不行,又出现了第五种,第五种在第四种的基础上,把elasticsearch.yml文件里的network.host这行和cluster.initial_master_nodes这两行改成如下代码,仍然注意冒号后边的空格。

network.host: 0.0.0.0

cluster.initial_master_nodes: [“node-1”] 

 

 至此,你要是还没连接上,恕我能力有限,我这奇葩错误真就是个纯小白,我就希望万一有一个小白和我一样,他很崩溃,结果看了我写的多少有点帮助,我就觉得可以了。

posted on 2020-09-13 18:38  拥抱燕窝的小兔子  阅读(413)  评论(0编辑  收藏  举报