首页 > 解决方案 > Kibana 未显示来自外部 Elasticsearch 节点的监控数据

问题描述

昨天我按照本指南设置了一个专用的单个监控节点。

我设法用相同的 ES 6.6.0 版本的集群启动了新的监控节点,然后将这些行添加到我所有 ES 集群节点上的 elasticsearch.yml 文件中:

xpack.monitoring.exporters:
  id1:
 type: http
  host: ["http://monitoring-node-ip-here:9200"]

然后重新启动所有节点和 Kibana(实际上是在 ES 集群的一个节点中运行)。

现在我可以看到今天的监控数据索引正在发送到新的监控外部节点,但 Kibana在访问“监控”部分时显示“您需要进行一些调整”。

We checked the  `cluster defaults`  settings for  `xpack.monitoring.exporters` , and found the 
reason:  `Remote exporters indicate a possible misconfiguration: id1`

Check that the intended exporters are enabled for sending statistics to the monitoring cluster, 
and that the monitoring cluster host matches the  `xpack.monitoring.elasticsearch`  setting in  
`kibana.yml`  to see monitoring data in this instance of Kibana.

我已经检查了所有节点是否可以互相 ping,而且我没有 xpack 安全性,所以我没有创建任何额外的“remote_monitor”用户。

我按照错误消息尝试在 kibana.yml 文件中添加xpack.monitoring.elasticsearch,但最终出现以下错误:

 FATAL  ValidationError: child "xpack" fails because [child "monitoring" fails because [child 
"elasticsearch" fails because ["url" is not allowed]]]

希望任何人都可以帮助我找出问题所在。

标签: elasticsearchkibanamonitoring

解决方案


我有完全相同的问题,但根本原因是不同的。

这里看看

好的,我以前也有同样的问题。

我的 kibana 没有显示监控图,但是我有监控索引.monitoring-es-* 可用

在我的情况下,问题的根源是我的主节点没有 :9200 局域网可用的 HTTP 套接字。那是我在主节点上的配置是:

...
transport.host: [ "192.168.7.190" ]
transport.port: 9300
http.port: 9200
http.host: [ "127.0.0.1" ]
...

如您所见,HTTP 套接字仅在主机内可用。

我不希望有人会从 LAN 向主机发出 HTTP 请求,因为这样做没有意义。

但是据我了解,Kibana 不仅从监控索引中读取数据

index .monitoring-es-*

也可以直接向高手提出一些要求,以获取一些信息。

这正是 Kibana 没有显示任何关于监控的原因的原因。

在我将主节点上的配置中的一行更改为

http.host: [ "192.168.0.190", "127.0.0.1" ]

kibana 立即开始显示监控图。

我多次重新创建了这个实验。

现在一切正常。

我还想强调,尽管现在一切都很好,但我的监控索引.monitoring-es-* 没有“cluster_stats”文档。

因此,如果您的 kibana 不显示监控图,我建议

  1. 检查索引 .monitoring-es-* 是否存在
  2. 检查您的主节点是否可以处理来自 LAN 的 HTTP 请求

推荐阅读