Kibana 启动失败并显示许可证信息,随后显示无法检索版本信息
Kibana startup fails with License information and later with Unable to retrieve version information
我尝试按照此 guideline 在 Centos 8(在一个 AWS 集群之上)上安装 ELK
。
安装 elastic
和 kibana
后,kibana
启动失败:
*"message":"License information could not be obtained from Elasticsearch
我googled它,意识到我应该使用OSS版本(最新是7.10.2)
所以确保只安装OSS版本。你可以使用这个 guideline
在那之后,我从 kibana.log
得到了新的错误
-08T07:19:32Z","tags":["error","savedobjects-service"],"pid":62767,"message":"Unable to retrieve version information from Elasticsearch nodes."}
我尝试 google 它,但没有适合我的解决方案。
我的kibana.yaml
:
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: "[my public AWS instance ip:9200]"
我的elasticsearch.yaml
:
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: "[my private AWS instance ip]"
cluster.initial_master_nodes: "[my private AWS instance ip]"
更新:
如果我将 kibana.yaml
文件中的这一行更改为:
elasticsearch.hosts: "http://localhost:9200"
然后就可以了。根本原因是什么?为什么它不能访问弹性 public IP 而只能访问本地?
根据@leandrojmp 的评论,问题确实出在 elasticsearch.hosts
中的 public IP。一旦我将它替换为我的私人 ip,它就可以工作
还有:
安装Elastic Stack时,必须在整个堆栈中使用相同的版本。例如,如果您使用 Elasticsearch 7.9.3,则安装 Beats 7.9.3、APM Server 7.9.3、Elasticsearch Hadoop 7.9.3、Kibana 7.9.3 和 Logstash 7.9.3。
使用 docker,我必须将 elasticsearch.hosts
指定为环境变量:-e "ELASTICSEARCH_HOSTS=http://localhost:9200"
,因此:
docker run -p 5601:5601 -e "ELASTICSEARCH_HOSTS=http://localhost:9200" arm64v8/kibana:7.16.3
在 kibana.yml 文件中将 elasticsearch.hosts ipaddress 设置为本地系统的主机 ipaddress。您还需要挂载本地 kibana.yml 文件,而 运行 docker 容器。
docker run -d --name kibana -p 5601:5601 -v /home/users/mySystemUserName/config/kibana.yml:/opt/kibana/config/kibana.yml kibana:7.16.3
在
中添加以下配置
kibana.yml
server.name: kibana
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: [ "http://192.168.0.102:9200" ]
我尝试按照此 guideline 在 Centos 8(在一个 AWS 集群之上)上安装 ELK
。
安装 elastic
和 kibana
后,kibana
启动失败:
*"message":"License information could not be obtained from Elasticsearch
我googled它,意识到我应该使用OSS版本(最新是7.10.2) 所以确保只安装OSS版本。你可以使用这个 guideline
在那之后,我从 kibana.log
-08T07:19:32Z","tags":["error","savedobjects-service"],"pid":62767,"message":"Unable to retrieve version information from Elasticsearch nodes."}
我尝试 google 它,但没有适合我的解决方案。
我的kibana.yaml
:
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: "[my public AWS instance ip:9200]"
我的elasticsearch.yaml
:
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: "[my private AWS instance ip]"
cluster.initial_master_nodes: "[my private AWS instance ip]"
更新:
如果我将 kibana.yaml
文件中的这一行更改为:
elasticsearch.hosts: "http://localhost:9200"
然后就可以了。根本原因是什么?为什么它不能访问弹性 public IP 而只能访问本地?
根据@leandrojmp 的评论,问题确实出在 elasticsearch.hosts
中的 public IP。一旦我将它替换为我的私人 ip,它就可以工作
还有:
安装Elastic Stack时,必须在整个堆栈中使用相同的版本。例如,如果您使用 Elasticsearch 7.9.3,则安装 Beats 7.9.3、APM Server 7.9.3、Elasticsearch Hadoop 7.9.3、Kibana 7.9.3 和 Logstash 7.9.3。
使用 docker,我必须将 elasticsearch.hosts
指定为环境变量:-e "ELASTICSEARCH_HOSTS=http://localhost:9200"
,因此:
docker run -p 5601:5601 -e "ELASTICSEARCH_HOSTS=http://localhost:9200" arm64v8/kibana:7.16.3
在 kibana.yml 文件中将 elasticsearch.hosts ipaddress 设置为本地系统的主机 ipaddress。您还需要挂载本地 kibana.yml 文件,而 运行 docker 容器。
docker run -d --name kibana -p 5601:5601 -v /home/users/mySystemUserName/config/kibana.yml:/opt/kibana/config/kibana.yml kibana:7.16.3
在
中添加以下配置kibana.yml
server.name: kibana
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: [ "http://192.168.0.102:9200" ]