Ricerca…


Osservazioni

Cluster Health fornisce molte informazioni sul cluster, ad esempio il numero di frammenti allocati ("attivi") e il numero di assegnazioni non assegnate e di riposizionamento. Inoltre, fornisce il numero corrente di nodi e nodi dati nel cluster, che può consentire di eseguire il polling per i nodi mancanti (ad esempio, se ci si aspetta che sia 15 , ma mostra solo 14 , allora manca un nodo) .

Per qualcuno che conosce Elasticsearch, i frammenti "assegnati" e "non assegnati" possono aiutarli a rintracciare i problemi.

Il campo più comune verificato da Cluster Health è lo status , che può essere in uno dei tre stati:

  • rosso
  • giallo
  • verde

I colori significano ognuno - e solo uno - una cosa molto semplice:

  1. Il rosso indica che ti manca almeno un frammento primario.
    • Un frammento primario mancante indica che un indice non può essere utilizzato per scrivere (indicizzare) nuovi dati nella maggior parte dei casi.
      • Tecnicamente, puoi comunque indicizzare qualsiasi frammento primario disponibile in quell'indice, ma in pratica significa che non puoi farlo perché generalmente non controlli quale frammento riceve un determinato documento.
      • La ricerca è ancora possibile contro un cluster rosso, ma significa che otterrai risultati parziali se qualsiasi indice che cerchi manca di frammenti.
    • In circostanze normali, significa solo che il frammento primario è stato allocato ( initializing_shards ).
    • Se un nodo ha appena lasciato il cluster (ad esempio, poiché la macchina è in esecuzione ha perso potenza), allora ha senso che mancherà temporaneamente alcuni frammenti primari.
      • Qualsiasi frammento di replica per quel frammento primario verrà promosso come frammento primario in questo scenario.
  2. Il giallo indica che tutti i frammenti primari sono attivi, ma manca almeno un frammento di replica.
    • Una replica mancante influisce solo sull'indicizzazione se le impostazioni di coerenza richiedono un impatto sull'indicizzazione.
      • Per impostazione predefinita, esiste una sola replica per qualsiasi primario e l'indicizzazione può avvenire con una singola replica mancante.
    • In circostanze normali, significa solo che il frammento di replica è stato allocato ( initializing_shards ).
    • Un cluster con un nodo con repliche abilitate sarà sempre giallo al meglio . Può essere rosso se non è stato ancora assegnato un frammento primario.
      • Se si ha un solo nodo, allora ha senso disabilitare le repliche perché non le si prevedono. Quindi può essere verde.
  3. Il verde indica che tutti i frammenti sono attivi.
    • L'unica attività di shard consentita per un cluster verde è relocating_shards .
    • Nuovi indici, e quindi nuovi frammenti, faranno passare il cluster da rosso a giallo a verde, dato che ogni frammento viene allocato (primariamente per primo, rendendolo giallo, quindi repliche se possibile, rendendolo verde).
      • In Elasticsearch 5.xe versioni successive, i nuovi indici non renderanno il cluster rosso a meno che non impieghino troppo tempo per essere allocati.

Cruscotto umano leggibile, tabulare con intestazioni

Esempio utilizza la sintassi HTTP di base. Qualsiasi <#> nell'esempio dovrebbe essere rimosso quando lo si copia.

È possibile utilizzare le API _cat per ottenere un output tabulare leggibile dall'uomo per vari motivi.

GET /_cat/health?v <1>
  1. Il ?v è facoltativo, ma implica che si desidera un output "dettagliato".

_cat/health esiste da Elasticsearch 1.x, ma ecco un esempio del suo output da Elasticsearch 5.x:

Con output dettagliato:

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%

Cruscotto umano leggibile, tabulare senza intestazioni

Esempio utilizza la sintassi HTTP di base. Qualsiasi <#> nell'esempio dovrebbe essere rimosso quando lo si copia.

È possibile utilizzare le API _cat per ottenere un output tabulare leggibile dall'uomo per vari motivi.

GET /_cat/health <1>

_cat/health esiste da Elasticsearch 1.x, ma ecco un esempio del suo output da Elasticsearch 5.x:

Senza output dettagliato:

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

Cruscotto umano leggibile, tabulare con intestazioni selezionate

Esempio utilizza la sintassi HTTP di base. Qualsiasi <#> nell'esempio dovrebbe essere rimosso quando lo si copia.

Come la maggior _cat API _cat in Elasticsearch, l'API risponde selettivamente con un set predefinito di campi. Tuttavia, altri campi esistono dall'API se li vuoi:

GET /_cat/health?help <1>
  1. ?help fa sì che l'API restituisca i campi (e nomi brevi) e una breve descrizione.

_cat/health esiste da Elasticsearch 1.x, ma ecco un esempio del suo output da Elasticsearch 5.x:

Campi disponibili come: della data di creazione di questo esempio:

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 

Puoi quindi usarlo per stampare solo quei campi:

GET /_cat/health?h=timestamp,cl,status&v <1>
  1. h=... definisce l'elenco dei campi che vuoi vengano restituiti.
  2. v (verbose) definisce che si desidera che stampi le intestazioni.

L'output di un'istanza di Elasticsearch 5.x:

timestamp cl            status
15:38:00  elasticsearch yellow

Cluster Health basato su JSON

Esempio utilizza la sintassi HTTP di base. Qualsiasi <#> nell'esempio dovrebbe essere rimosso quando lo si copia.

Le API _cat sono spesso convenienti per gli utenti per ottenere dettagli a colpo d'occhio sul cluster. Ma spesso si desidera un output costantemente parsabile da utilizzare con il software. In generale, le API JSON sono pensate per questo scopo.

GET /_cluster/health

_cluster/health esiste da Elasticsearch 1.x, ma ecco un esempio del suo output da 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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow