Zoeken…


Opmerkingen

Cluster Health biedt veel informatie over het cluster, zoals het aantal toegewezen shards ("actief") en hoeveel niet-toegewezen en verplaatst zijn. Bovendien biedt het het huidige aantal knooppunten en gegevensknooppunten in het cluster, waarmee u kunt pollen naar ontbrekende knooppunten (als u bijvoorbeeld verwacht dat het 15 , maar het toont slechts 14 , mist u een knooppunt) .

Voor iemand die op de hoogte is van Elasticsearch, kunnen 'toegewezen' en 'niet-toegewezen' scherven hen helpen problemen op te sporen.

Het meest gebruikte veld dat wordt aangevinkt door Cluster Health is de status , die zich in een van de drie toestanden kan bevinden:

  • rood
  • geel
  • groen

De kleuren betekenen elk één - en slechts één - heel eenvoudig ding:

  1. Rood geeft aan dat u ten minste één primaire scherf mist.
    • Een ontbrekende primaire scherf betekent dat een index in de meeste gevallen niet kan worden gebruikt om nieuwe gegevens te schrijven (indexeren).
      • Technisch gezien kunt u nog steeds indexeren naar primaire shards die in die index beschikbaar zijn, maar praktisch betekent dit dat u dat niet kunt, omdat u in het algemeen niet bepaalt welke shard een bepaald document ontvangt.
      • Zoeken is nog steeds mogelijk tegen een rode cluster, maar het betekent dat u gedeeltelijke resultaten krijgt als een index waarnaar u zoekt scherven mist.
    • In normale omstandigheden betekent dit alleen dat de primaire scherf wordt toegewezen ( initializing_shards ).
    • Als een knooppunt net het cluster heeft verlaten (bijvoorbeeld omdat de machine waarop het draait vermogen heeft verloren), is het logisch dat u tijdelijk enkele primaire scherven mist.
      • Elke replicaschard voor die primaire shard wordt in dit scenario gepromoveerd als de primaire shard.
  2. Geel geeft aan dat alle primaire scherven actief zijn, maar dat er ten minste één replicaschard ontbreekt.
    • Een ontbrekende replica heeft alleen invloed op de indexering als de consistentie-instellingen vereisen dat deze van invloed is op de indexering.
      • Standaard is er slechts één replica voor een primaire en indexering kan gebeuren met een enkele ontbrekende replica.
    • In normale omstandigheden betekent dit alleen dat de replica-shard wordt toegewezen ( initializing_shards ).
    • Een cluster met één knooppunt waarop replica's zijn ingeschakeld, is altijd het beste geel. Het kan rood zijn als er nog geen primaire scherf is toegewezen.
      • Als u slechts één knooppunt hebt, is het logisch om replica's uit te schakelen omdat u er geen verwacht. Dan kan het groen zijn.
  3. Groen geeft aan dat alle scherven actief zijn.
    • De enige scherfactiviteit die is toegestaan voor een groen cluster is relocating_shards .
    • Nieuwe indices, en dus nieuwe scherven, zorgen ervoor dat het cluster van rood naar geel naar groen gaat, omdat elke scherf wordt toegewezen (eerst primair, geel maken, dan replica's indien mogelijk, waardoor het groen wordt).
      • In Elasticsearch 5.x en later zullen nieuwe indices niet uw cluster rood, tenzij het duurt ze te lang om toe te wijzen.

Voor mensen leesbare, tabelvormige gezondheid van clusters met headers

Voorbeeld gebruikt standaard HTTP-syntaxis. Elke <#> in het voorbeeld moet worden verwijderd bij het kopiëren.

U kunt de _cat API's gebruiken om een voor mensen leesbare, tabeluitvoer te krijgen om verschillende redenen.

GET /_cat/health?v <1>
  1. De ?v is optioneel, maar het betekent dat u een uitvoerige uitvoer wilt.

_cat/health bestaat al sinds Elasticsearch 1.x, maar hier is een voorbeeld van de output van Elasticsearch 5.x:

Met uitgebreide output:

epoch      timestamp cluster       status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1469302011 15:26:51  elasticsearch yellow          1         1     45  45    0    0       44             0                  -                 50.6%

Voor mensen leesbare, tabelvormige gezondheid van clusters zonder kopteksten

Voorbeeld gebruikt standaard HTTP-syntaxis. Elke <#> in het voorbeeld moet worden verwijderd bij het kopiëren.

U kunt de _cat API's gebruiken om een voor mensen leesbare, tabeluitvoer te krijgen om verschillende redenen.

GET /_cat/health <1>

_cat/health bestaat al sinds Elasticsearch 1.x, maar hier is een voorbeeld van de output van Elasticsearch 5.x:

Zonder uitgebreide uitvoer:

1469302245 15:30:45 elasticsearch yellow 1 1 45 45 0 0 44 0 - 50.6%

Voor mensen leesbare, tabelvormige clustergezondheid met geselecteerde headers

Voorbeeld gebruikt standaard HTTP-syntaxis. Elke <#> in het voorbeeld moet worden verwijderd bij het kopiëren.

Zoals de meeste _cat API's in Elasticsearch, reageert de API selectief met een standaardset velden. Andere velden bestaan echter uit de API als u ze wilt:

GET /_cat/health?help <1>
  1. ?help zorgt ervoor dat de API de velden (en korte namen) retourneert, evenals een korte beschrijving.

_cat/health bestaat al sinds Elasticsearch 1.x, maar hier is een voorbeeld van de output van Elasticsearch 5.x:

Velden beschikbaar vanaf de aanmaakdatum van dit voorbeeld:

epoch                 | t,time                                   | seconds since 1970-01-01 00:00:00  
timestamp             | ts,hms,hhmmss                            | time in HH:MM:SS                   
cluster               | cl                                       | cluster name                       
status                | st                                       | health status                      
node.total            | nt,nodeTotal                             | total number of nodes              
node.data             | nd,nodeData                              | number of nodes that can store data
shards                | t,sh,shards.total,shardsTotal            | total number of shards             
pri                   | p,shards.primary,shardsPrimary           | number of primary shards           
relo                  | r,shards.relocating,shardsRelocating     | number of relocating nodes         
init                  | i,shards.initializing,shardsInitializing | number of initializing nodes       
unassign              | u,shards.unassigned,shardsUnassigned     | number of unassigned shards        
pending_tasks         | pt,pendingTasks                          | number of pending tasks            
max_task_wait_time    | mtwt,maxTaskWaitTime                     | wait time of longest task pending  
active_shards_percent | asp,activeShardsPercent                  | active number of shards in percent 

U kunt dit vervolgens gebruiken om alleen die velden af te drukken:

GET /_cat/health?h=timestamp,cl,status&v <1>
  1. h=... definieert de lijst met velden die u wilt retourneren.
  2. v (uitgebreid) definieert dat u de kopteksten wilt afdrukken.

De uitvoer van een exemplaar van Elasticsearch 5.x:

timestamp cl            status
15:38:00  elasticsearch yellow

JSON-gebaseerde Cluster Health

Voorbeeld gebruikt standaard HTTP-syntaxis. Elke <#> in het voorbeeld moet worden verwijderd bij het kopiëren.

De _cat API's zijn vaak handig voor mensen om in één oogopslag details over het cluster te krijgen. Maar u wilt vaak consequent parseerbare uitvoer voor gebruik met software. Over het algemeen zijn de JSON API's voor dit doel bedoeld.

GET /_cluster/health

_cluster/health bestaat al sinds Elasticsearch 1.x, maar hier is een voorbeeld van de output van Elasticsearch 5.x:

{
  "cluster_name": "elasticsearch",
  "status": "yellow",
  "timed_out": false,
  "number_of_nodes": 1,
  "number_of_data_nodes": 1,
  "active_primary_shards": 45,
  "active_shards": 45,
  "relocating_shards": 0,
  "initializing_shards": 0,
  "unassigned_shards": 44,
  "delayed_unassigned_shards": 0,
  "number_of_pending_tasks": 0,
  "number_of_in_flight_fetch": 0,
  "task_max_waiting_in_queue_millis": 0,
  "active_shards_percent_as_number": 50.56179775280899
}


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow