未分配碎片的Elasticsearch索引红色

问题描述 投票:0回答:1

我正在使用ELK堆栈,并且我的名为metricbeat-7.4.0-000001的metricbeat索引没有分配的分片。

我的ELK堆栈上的信息:

  • Elastic,Logstask,Kibana版本:7.4.0(一旦一切顺利运行,我确实打算进行更新)
  • [单节点在Ubuntu 18.04 LTS上(我也打算尽快升级-我在20.04之前就开始了这个项目)]
  • 2 x Xeon E5-2620(6核,12线程@ 2GHz,具有64GB RAM)>
  • 系统平均负载为0.03,RAM消耗仅略低于7GB,因此我很难认为服务器的性能不足。
  • [1TB磁盘空间,正在使用147 GB,所以我也看不到它是磁盘消耗量
  • 在数不清的教程和支持页面之后,我已经为此苦苦挣扎了好几个星期,但都无济于事。据我所知,这是一个普遍的问题,如果没有磁盘空间,或者服务器没有可用的内存/处理资源。

从头开始重新创建群集的短暂时间,我觉得我已经尝试了所有方法。删除索引,重新导入所有metricbeat配置(索引模板,生命周期策略),重新路由(带有和不带重试失败)的次数超出了我的估计。 ILM策略似乎确实已链接在一起,但未分配碎片。

重新创建索引模板时,我停止了logstash(以防止创建任何不希望的索引),导出json,然后将其重新导入到Kibana Dev Tools中。然后,我仅修改索引模板以将索引模式更改为匹配我的索引,从默认的metricbeat-*更改为metricbeat-7.4.0-*。我的索引是用beatname-version-autoincrement模式创建的,例如metricbeat-7.4.0-000001

这不是唯一让我感到悲伤的指标。我在winlogbeat索引和心跳索引中遇到了相同的问题,但是我怀疑以某种方式,我已经设法用它们解决了这个特定问题。

当我对该索引的分配进行解释时,它会告诉我以下内容:

{
  "index" : "metricbeat-7.4.0-000001",
  "shard" : 0,
  "primary" : true,
  "current_state" : "unassigned",
  "unassigned_info" : {
    "reason" : "INDEX_CREATED",
    "at" : "2020-06-03T04:23:31.865Z",
    "last_allocation_status" : "no"
  },
  "can_allocate" : "no",
  "allocate_explanation" : "cannot allocate because allocation is not permitted to any of the nodes",
  "node_allocation_decisions" : [
    {
      "node_id" : "OQ3AFLyhRcao1z2es2p79w",
      "node_name" : "server.network.local",
      "transport_address" : "ipaddress:9300",
      "node_attributes" : {
        "rack_id" : "main",
        "ml.machine_memory" : "67501658112",
        "xpack.installed" : "true",
        "ml.max_open_jobs" : "20"
      },
      "node_decision" : "no",
      "weight_ranking" : 1,
      "deciders" : [
        {
          "decider" : "awareness",
          "decision" : "NO",
          "explanation" : "node does not contain the awareness attribute [main]; required attributes cluster setting [cluster.routing.allocation.awareness.attributes=main]"
        }
      ]
    }
  ]
}

但是,我已经在我的elasticsearch.yml node.attr.rack_id: main中分配了,这没有区别。但是,由于这是一个单一节点,因此我无法理解为什么在没有选择权的情况下它很难确定将其分配给哪里。

我的下一个怀疑是,也许只需要一点时间就可以弄清楚。我在某处读到Elasticsearch每15分钟运行一次生命周期策略,并想知道这是否可能与分配分片有关?但是,鉴于世界上的所有耐心(或者至少值得几个小时),我没有发现任何变化-我什至重新启动并等到第二天,仍然无济于事。

最近,我重新创建了索引(多次)。当前版本只有几个小时的历史,并且具有新的索引,仍然存在相同的问题。

[当我整理碎片时,我得到的东西包含以下内容。我可以看到心跳的期望值,但metricbeat主索引未显示碎片。

heartbeat-7.4.0-000001          0 p STARTED         0    283b ipaddress server.network.locak
heartbeat-7.4.0-000001          0 r UNASSIGNED                            
metricbeat-7.4.0-000001         0 p UNASSIGNED                            
metricbeat-7.4.0-000001         0 r UNASSIGNED                            

以下是我的elasticsearch.yml的注释已删除的版本:

node.name: auditsvr.ctperth.local
node.attr.rack_id: main
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: ipaddress
discovery.seed_hosts: ["ipaddress"]
discovery.type: single-node
xpack.monitoring.collection.enabled: true
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.key: cert.key
xpack.security.transport.ssl.certificate: cert.crt
xpack.security.transport.ssl.certificate_authorities: ca-cert.crt
xpack.security.transport.ssl.verification_mode: none

与metricbeat相同:

metricbeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false
setup.template.settings:
  index.number_of_shards: 1
  index.codec: best_compression
setup.kibana:
  host: "http://server.network.local:80"
output.logstash:
  hosts: ["ipaddress:5044"]
processors:
  - add_host_metadata: ~
  - add_cloud_metadata: ~
logging.level: info
logging.to_files: true
logging.files:
  path: /var/log/metricbeat
  name: metricbeat
  keepfiles: 7
  permissions: 0644
setup.ilm.enabled: auto
setup.ilm.rollover_alias: "metricbeat"
setup.ilm.pattern: "{now/d}-000001"

我的下一步将是重新开始,但是我只能想象这是一个配置问题,这意味着我需要重新开始。我觉得这需要比我更熟悉Elastic的人,我通常可以弄清楚这些事情,但是对此需要一点指导。

预先感谢

UPDATE

根据Val的要求,请在此处找到metricbeat索引模板:

https://sandbox.michael-thompson.net/StackOverflow/62169773/metricbeat-7.4.0%20Index%20Template.json

以及此处的群集设置:

https://sandbox.michael-thompson.net/StackOverflow/62169773/clustersettingsincludedefaultstrue.json

不幸的是,它们对于pastebin来说太大了。

谢谢

我正在使用ELK堆栈,并且有一个问题,我名为metricbeat-7.4.0-000001的metricbeat索引没有分配的分片。我的ELK堆栈上的信息:Elastic,Logstask,Kibana版本:7.4.0(I ...

elasticsearch elastic-stack
1个回答
0
投票

有问题的群集设置是以下设置,您知道它如何到达那里吗?

© www.soinside.com 2019 - 2024. All rights reserved.