Managementul sarcinilor Elasticsearch

Managementul Sarcinilor Elasticsearch



„În această postare, ne vom uita la unul dintre API-urile experimentale Elasticsearch (la momentul scrierii acestui ghid) care ne permite să vedem informații despre sarcinile care rulează în prezent într-un cluster.

Managementul sarcinilor este un factor uriaș pentru orice administrator, iar atunci când lucrați cu un sistem complex precum Elasticsearch, va trebui să monitorizați sarcinile.”

Permiteți-ne să discutăm ce presupune acest API și cum vă poate ajuta ca administrator de sistem.







NOTĂ: În funcție de configurația clusterului și de setările de securitate, acest API poate necesita privilegii de monitorizare.



Sintaxa de solicitare

Următoarele arată sintaxa pentru trimiterea cererii către API-ul de gestionare a activităților.



OBȚINE / _sarcini /< task_id >

OBȚINE / _sarcini

Odată ce solicitați API-ul, comanda ar trebui să returneze informații detaliate despre sarcinile curente sau despre sarcina cu ID-ul specificat.





Solicitați parametrii căii

Solicitarea acceptă un parametru de cale:

  • – o valoare ID unică pentru sarcina ale cărei informații doriți să le regăsiți. ID-ul sarcinii urmează modelul node_id:task_number.

Solicitați parametrii de interogare

Pentru a personaliza comportamentul și formatul de returnare al interogării, puteți specifica următorii parametri:



  1. Acțiuni – aceasta definește un set de acțiuni utilizate pentru a limita solicitarea. Aici, puteți defini acțiunile ca o listă de valori separate prin virgulă.
  2. Detaliat – acesta este un parametru boolean care definește dacă cererea afișează sau nu informații detaliate despre recuperările fragmentelor. Această opțiune este implicită false
  3. Group_by – setează cheile folosite pentru a grupa sarcinile din răspuns. Valorile acceptate includ:
    • Noduri – ID-ul nodului.
    • Părinți – ID de părinte.
    • Nod – nu grupați.
  4. Node_id – definește nodul sau o listă de noduri de la care să preia informațiile.
  5. parent_task_id – definește ID-ul părinte utilizat pentru a filtra informațiile de răspuns. Pentru a afișa toate sarcinile, specificați parent_task_id ca -1.
  6. master_timeout – specifică durata la care cererea așteaptă o conexiune la nodul master. Dacă cererea nu primește un răspuns de la master după expirarea duratei master_timeout, eșuează și returnează o eroare. Durata implicită este setată la 30 de secunde.
  7. Timeout – similar cu master_timeout, dar această valoare definește durata de așteptare pentru orice răspuns.
  8. Wait_for_completion – dacă este adevărat, cererea este blocată până la ieșirea operației. Implicit la fals.

Raspuns

Dacă are succes, cererea va returna informații detaliate despre sarcina sau sarcinile specificate. Dacă sarcina nu este găsită, cererea returnează un cod de stare 404.

Exemplu de utilizare

Următorul exemplu arată cum să utilizați API-ul de gestionare a activităților pentru a afișa informații despre toate sarcinile care rulează în cluster (toate nodurile).

curl -XGET „http://localhost:9200/_tasks” -H „kbn-xsrf: raportare”

Solicitarea ar trebui să ofere informații despre sarcinile din cluster, așa cum se arată în rezultatul de mai jos:

Exemplul 2

În exemplul următor, folosim parametrul nodes pentru a limita răspunsul doar la sarcinile care rulează în nodul slave_1

curl -XGET „http://localhost:9200/_tasks?nodes=slave_1” -H „kbn-xsrf: raportare”

Aceasta ar trebui să returneze sarcinile în nodul specificat, așa cum se arată în rezultatul de mai jos:

'sarcini' : {
„Fit416fGR1GJefJxOxLurw:1651265” : {
'nodul' : „slave_1” ,
'id' : 1651265 ,
'tip' : 'transport' ,
'acțiune' : „indices:monitor/fleet/global_checkpoints” ,
„start_time_in_millis” : 1664214054489 ,
„timp_de_rulare_în_nanos” : 94450056094 ,
'anulabil' : fals,
'anteturi' : {
„Originea-produsului-X-elastic” : 'flota'
}
}

Exemplul 3

În exemplul 3, folosim API-ul de gestionare a sarcinilor pentru a afișa informații despre sarcină cu ID-ul specificat:

curl -XGET „http://localhost:9200/_tasks/Fit416fGR1GJefJxOxLurw:1656310” -H „kbn-xsrf: raportare”

Informațiile despre sarcina de ieșire sunt așa cum se arată:

Exemplul 4

Pentru a afișa informații detaliate despre sarcină, adăugați parametrul detaliat la cerere, așa cum se arată:
[cc lang=”apache” width=”100%” height=”100%” escaped=”true” theme=”blackboard” nowrap=”0″]
curl -XGET „http://localhost:9200/_tasks?detailed=true” -H “kbn-xsrf: reporting”
[/c]c
Aceasta ar trebui să ofere informații suplimentare despre sarcini:

Concluzie

Această postare a fost explorată cum să utilizați API-ul de gestionare a sarcinilor în Elasticsearch. Acest API ne permite să extragem informații despre sarcinile care se execută în prezent în cluster.

Noroc!! & te voi prinde în următorul.