为什么我们需要两个字段让Kibana知道监测数据在哪里。
elasticsearch.hosts
monitoring.ui.elasticsearch.hosts
但是当我在这些属性中的任何一个给出我的监视集群时,它就可以工作了。我错误地认为elasticsearch.hosts是我的实际生产集群,而不是监视集群。
除了why部分之外,我对这个集成属性的理解正确吗?
有什么想法吗?谢谢。
Kibana.yml:
server.host: "ip.ad.re.ss"
#elasticsearch.hosts: ["http://host1:9200","http://host2:9200","FewMoreHosts"]
monitoring.ui.elasticsearch.hosts: ["http://MonitoringNode:9200"]我没有在监视节点的elasticsearch.yml中更改任何部分。
metricbeat.yml:
output.elasticsearch:
host: ["http://MonitoringNode:9200"]
setup.kibana:
host: kibanaHost在Modes.d/elasticsearch-xPack.yml中,我保留了默认配置。
elasticsearch.yml:
cluster.name: es_cluster
node.name: master-1
node.data: false
node.master: true
node.ingest: true
node.max_local_storage_nodes: 3
transport.tcp.port: 9300
bootstrap.memory_lock: false
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["master1.ip", "master2.ip","master3.ip"]
cluster.initial_master_nodes: ["master-1","master-2"]监控集群yml:
network.host: 0.0.0.0
discovery.type: single-node当我在Kibana.yml中启用这两个属性时,我会在日志中得到以下错误。
{
"type": "log",
"@timestamp": "2021-04-21T14:48:34-04:00",
"tags": [
"error",
"plugins",
"data",
"data",
"indexPatterns"
],
"pid": 29959,
"message": "Error: No indices match pattern \"metricbeat-*\"\n at createNoMatchingIndicesError (/usr/share/kibana/src/plugins/data/server/index_patterns/fetcher/lib/errors.js:45:29)\n at convertEsError (/usr/share/kibana/src/plugins/data/server/index_patterns/fetcher/lib/errors.js:71:12)\n at callFieldCapsApi (/usr/share/kibana/src/plugins/data/server/index_patterns/fetcher/lib/es_api.js:69:38)\n at runMicrotasks (<anonymous>)\n at processTicksAndRejections (internal/process/task_queues.js:93:5)\n at getFieldCapabilities (/usr/share/kibana/src/plugins/data/server/index_patterns/fetcher/lib/field_capabilities/field_capabilities.js:35:23)\n at IndexPatternsFetcher.getFieldsForWildcard (/usr/share/kibana/src/plugins/data/server/index_patterns/fetcher/index_patterns_fetcher.js:49:31)\n at IndexPatternsApiServer.getFieldsForWildcard (/usr/share/kibana/src/plugins/data/server/index_patterns/index_patterns_api_client.js:27:12)\n at IndexPatternsService.refreshFieldSpecMap (/usr/share/kibana/src/plugins/data/common/index_patterns/index_patterns/index_patterns.js:216:27)\n at IndexPatternsService.getSavedObjectAndInit (/usr/share/kibana/src/plugins/data/common/index_patterns/index_patterns/index_patterns.js:320:23) {\n data: null,\n isBoom: true,\n isServer: false,\n output: {\n statusCode: 404,\n payload: {\n statusCode: 404,\n error: 'Not Found',\n message: 'No indices match pattern \"metricbeat-*\"',\n code: 'no_matching_indices'\n },\n headers: {}\n }\n}"
}但是如果我只设置monitoring.ui.elasticsearch.hosts,Kibana就会显示数据。
发布于 2021-04-21 05:07:13
elasticsearch.hosts是设置存储数据的主机、要查询的数据的地方,这应该是您的生产集群。
如果monitoring.ui.elasticsearch.hosts有一个独立的监视集群,那么您将在中设置监视集群的主机。
根据集群的大小,建议只使用单独的集群进行监视,例如,这可能是一个使用基本许可证的单节点集群。
发布于 2021-04-22 08:58:57
在这些上下文中使用的安全令牌是特定于集群的,因此不能使用单个Kibana实例连接到生产和监视群集。
正如在文档中提到的,我认为我们需要有单独的Kibana实例来从两个集群收集数据。
我对安全令牌不太确定。
https://stackoverflow.com/questions/67185723
复制相似问题