Sök…


Anmärkningar

Cluster Health ger mycket information om klustret, till exempel antalet skär som är tilldelade ("aktiva") och hur många som inte är tilldelade och flyttar. Dessutom tillhandahåller det det aktuella antalet noder och datanoder i klustret, vilket kan tillåta dig att polla efter saknade noder (t.ex. om du räknar med att den ska vara 15 , men den visar bara 14 , då saknar du en nod) .

För någon som känner till Elasticsearch kan "tilldelade" och "otilldelade" skärvor hjälpa dem att spåra problem.

Det vanligaste fältet som kontrolleras från Cluster Health är status , som kan vara i en av tre tillstånd:

  • röd
  • gul
  • grön

Färgerna betyder vardera en - och bara en - väldigt enkel sak:

  1. Rött indikerar att du saknar minst ett primärt skärv.
    • En saknad primär skärv betyder att ett index inte kan användas för att skriva (indexera) nya data i de flesta fall.
      • Tekniskt kan du fortfarande indexera alla primära skärvor som finns tillgängliga i det indexet, men praktiskt taget betyder det att du inte kan för att du inte generellt kontrollerar vilken skärv som får ett visst dokument.
      • Det är fortfarande möjligt att söka mot ett rött kluster, men det betyder att du får delvis resultat om något index du söker saknar skär.
    • Under normala omständigheter betyder det bara att det primära skäret tilldelas ( initializing_shards ).
    • Om en nod just lämnade klustret (t.ex. eftersom maskinen kör den förlorade strömmen) är det vettigt att du kommer att sakna några primära skärvor tillfälligt .
      • Varje replikskärm för det primära skäret kommer att främjas till att vara det primära skäret i detta scenario.
  2. Gul indikerar att alla primära skär är aktiva, men åtminstone en replikskärm saknas.
    • En saknad kopia påverkar bara indexeringen om konsistensinställningarna kräver att den påverkar indexeringen.
      • Som standard finns det bara en replika för alla primära och indexering kan hända med en enda saknad kopia.
    • Under normala omständigheter betyder det bara att replikskärven tilldelas ( initializing_shards ).
    • Ett kluster med en nod med repliker aktiverade kommer alltid att vara gult i bästa fall . Det kan vara rött om en primär skärv ännu inte har tilldelats.
      • Om du bara har en enda nod är det vettigt att inaktivera repliker eftersom du inte förväntar dig något. Då kan det vara grönt.
  3. Grönt indikerar att alla skär är aktiva.
    • Den enda skärvningsaktivitet som tillåts för ett grönt kluster är att relocating_shards .
    • Nya index, och därmed nya skärvor, kommer att få klustret att gå från röd till gul till grön, eftersom varje skärv tilldelas (primärt först, gör det gult, sedan repliker om möjligt, gör det grönt).
      • I Elasticsearch 5.x och senare kommer nya index inte att göra ditt kluster rött om det inte tar för lång tid att tilldela dem.

Mänsklig läsbar, tabell Cluster Health med rubriker

Exempel använder grundläggande HTTP-syntax. Alla <#> i exemplet bör tas bort vid kopiering.

Du kan använda _cat API: er för att få en mänsklig läsbar tabellutgång av olika skäl.

GET /_cat/health?v <1>
  1. ?v är valfritt, men det innebär att du vill "ordbok" -utdata.

_cat/health har funnits sedan Elasticsearch 1.x, men här är ett exempel på dess resultat från Elasticsearch 5.x:

Med ordinär utgång:

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%

Mänsklig läsbar, tabellformig Cluster Health utan rubriker

Exempel använder grundläggande HTTP-syntax. Alla <#> i exemplet bör tas bort vid kopiering.

Du kan använda _cat API: er för att få en mänsklig läsbar tabellutgång av olika skäl.

GET /_cat/health <1>

_cat/health har funnits sedan Elasticsearch 1.x, men här är ett exempel på dess resultat från Elasticsearch 5.x:

Utan ordförande utgång:

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

Mänsklig läsbar, tabellformig Cluster Health med utvalda rubriker

Exempel använder grundläggande HTTP-syntax. Alla <#> i exemplet bör tas bort vid kopiering.

Liksom de flesta _cat API: er i Elasticsearch svarar API selektivt med en standarduppsättning fält. Men andra fält finns från API: n om du vill ha dem:

GET /_cat/health?help <1>
  1. ?help API att returnera fälten (och korta namn) samt en kort beskrivning.

_cat/health har funnits sedan Elasticsearch 1.x, men här är ett exempel på dess resultat från Elasticsearch 5.x:

Fält tillgängliga från och med detta exempel:

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 

Du kan sedan använda detta för att bara skriva ut de fälten:

GET /_cat/health?h=timestamp,cl,status&v <1>
  1. h=... definierar listan med fält som du vill returnera.
  2. v (verbos) definierar att du vill att den ska skriva ut rubrikerna.

Output från en instans av Elasticsearch 5.x:

timestamp cl            status
15:38:00  elasticsearch yellow

JSON-baserad Cluster Health

Exempel använder grundläggande HTTP-syntax. Alla <#> i exemplet bör tas bort vid kopiering.

_cat API: erna är ofta praktiska för människor att få detaljerade detaljer om klustret. Men du vill ofta att konsekvent delbar utdata ska användas med programvara. I allmänhet är JSON API: er avsedda för detta ändamål.

GET /_cluster/health

_cluster/health har funnits sedan Elasticsearch 1.x, men här är ett exempel på dess resultat från 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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow