【问题标题】:Kibana configuration foe es with production and monitoring clusters生产和监控集群的 Kibana 配置敌人
【发布时间】:2021-04-22 16:58:57
【问题描述】:

我提到了thisthis

为什么我们需要两个字段来让 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

在 modules.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 会显示数据。

【问题讨论】:

    标签: elasticsearch kibana


    【解决方案1】:

    elasticsearch.hosts 是您将设置存储数据的主机的地方,您要查询的数据,这应该是您的生产集群。

    monitoring.ui.elasticsearch.hosts 是您设置监控集群主机的位置如果您有一个单独的监控集群。

    根据您的集群大小,建议使用单独的集群仅用于监控,例如,这可以是使用基本许可证的单节点集群。

    【讨论】:

    • 假设 metricbeat 将数据发送到在 monitoring.ui.elasticsearch.hosts 中配置的监控集群。实际生产数据集群详细信息加载在 elasticsearch.hosts 中。如果我这样做,kibana 会抛出 metricbeat-* not found 的错误。如果我把它放在monitoring.ui.elasticsearch.hosts 中,它会在kibana 中显示metricbeat 集合。这意味着启用两者都不起作用。我的理解正确吗?
    • 对于您所描述的,您不是将监控数据发送到您的监控集群,而是发送到您的生产集群。如果您将生产集群放在monitoring.ui.elasticsearch.hosts 选项中并且您可以看到监控数据,那么您的监控数据没有被传送到监控集群。
    • 我试图保留两个集群。一是生产集群。另一个是监控集群。我希望所有节拍数据都存储在监控集群上。同时,我还想在 Kibana 中可视化生产数据和指标。因此,正如您所说,当我将 elasticsearch.hosts 设置为生产集群,将 monitoring.ui.elasticsearch.hosts 设置为监控集群时,我在 kibana 中收到一个错误,即找不到 metricbeat 集合。我没有更改集合名称的默认值。但是当我只设置 monitoring.ui.elasticsearch.hosts 来监控集群时,它会在 kibana 中显示指标。
    • 您需要提供更多信息,使用您的 metricbeat.yml 文件和两个集群中的 elasticsearch.yml 更新您的问题。正如我所说,您的监控数据似乎没有进入监控 elasticsearch 集群。
    • 您好,感谢您的帮助。我已经添加了详细信息。请检查。
    【解决方案2】:

    在这些上下文中使用的安全令牌是特定于集群的,因此您不能使用单个 Kibana 实例同时连接到生产和监控集群

    正如documentation 中提到的,我认为我们需要有单独的 Kibana 实例来从两个集群中收集数据。

    我对安全令牌不太确定。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-08
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-07
      相关资源
      最近更新 更多