L'API CAT di Elasticsearch è molto utile perché consente agli utenti di visualizzare le informazioni relative a varie risorse del motore di Elasticsearch nel testo compatto e allineato (CAT).
Questo tutorial ti mostrerà come utilizzare l'API _CAT per visualizzare le informazioni sui frammenti in un cluster di ElasticSearch, quale nodo è la replica, la dimensione che occupa il disco e altro ancora.
Come elencare tutti i frammenti in un cluster
Per visualizzare tutti i frammenti in un cluster di ElasticSearch, è possibile utilizzare la richiesta GE all'endpoint API _CAT/SHARDS, come segue:
Ottieni _cat/frammenti
Se sei un utente Curl, usa il comando seguente:
Curl -Xget “http: // localhost: 9200/_cat/shards”
L'esecuzione del comando sopra ti fornirà informazioni su tutti i frammenti nel cluster, come mostrato di seguito (output troncato):
kibana_sample_data_flights 0 p avviato 13059 5.3 MB 172.28.86.133 istanza-0000000003
kibana_sample_data_flights 0 r avviato 13059 5.3 MB 172.28.27.142 istanza-0000000001
.SLM-History-3-000001 0 p è iniziato 172.28.86.133 istanza-0000000003
.SLM-History-3-000001 0 R ha iniziato 172.28.27.142 istanza-0000000001
destinazione_index 0 p avviato 13232 5.9 MB 172.28.27.142 istanza-0000000001
.Monitoraggio-ES-7-2021.01.22 0 p è iniziato 279515 153.5 MB 172.28.86.133 istanza-0000000003
.Monitoraggio-ES-7-2021.01.22 0 R Iniziato 279467 268.5 MB 172.28.27.142 istanza-0000000001
.kibana_task_manager_1 0 p ha iniziato 6 205.6kb 172.28.86.133 istanza-0000000003
.kibana_task_manager_1 0 r avviato 6 871.5kb 172.28.27.142 istanza-0000000001
.Monitoraggio-Beats-7-2021.01.22 0 p è iniziato 6245 8 MB 172.28.86.133 istanza-0000000003
--------------------------------output troncato---------------------
È inoltre possibile filtrare l'output e specificare il formato del risultato. Ad esempio, per ottenere l'output in formato YAML, aggiungere il parametro Format = YAML alla richiesta, come segue:
Ottieni _cat/frammenti?Formato = Yaml
Il comando Curl per questo è:
Curl -Xget “http: // localhost: 9200/_cat/shards?formato = yaml "
L'output dovrebbe in formato YAML come:
- INDICE: "APM-7.10.2-Onboarding-2021.01.20 "
Shard: "0"
PREIREP: "P"
Stato: "Iniziato"
Documenti: "2"
negozio: "14.7kb "
IP: "172.28.27.142 "
nodo: "istanza-0000000001"
- INDICE: "Source_index"
Shard: "0"
PREIREP: "P"
Stato: "Iniziato"
Documenti: "0"
negozio: "208b"
IP: "172.28.86.133 "
nodo: "istanza-0000000003"
- INDICE: "kibana_sample_type_diff"
Shard: "0"
PREIREP: "P"
Stato: "Iniziato"
Documenti: "13059"
negozio: "5.7 MB "
IP: "172.28.86.133 "
nodo: "istanza-0000000003"
- INDICE: "kibana_sample_type_diff"
Shard: "0"
PREIREP: "R"
Stato: "Iniziato"
Documenti: "13059"
negozio: "9.8 MB "
IP: "172.28.27.142 "
nodo: "istanza-0000000001"
--------------------------------Output troncato---------------------
Puoi anche scegliere di ottenere intestazioni specifiche. Ad esempio, per ottenere il nome dell'indice, il nome del frammento, lo stato del frammento, lo spazio del disco shard, l'ID nodo e il nodo IP, filtro passandoli all'argomento dell'intestazione come:
Ottieni _cat/frammenti?H = INDICE, SHARD, STATO, STORE, ID, IP & FORMAT = JSON
Il comando Curl è il seguente:
Curl -Xget “http: // localhost: 9200/_cat/shards?H = INDICE, SHARD, STATO, STORE, ID, IP & FORMAT = JSON "
L'esecuzione del comando sopra fornisce informazioni selezionate sui frammenti nel formato JSON. Salta i parametri del formato per utilizzare il formato tabulare predefinito.
[
"INDICE": "kibana_sample_data_flights",
"Shard": "0",
"State": "ha iniziato",
"negozio": "5.3MB ",
"ID": "GSLMJTKYTEMOOX-EO7EM4W",
"IP": "172.28.86.133 "
,
"INDICE": "kibana_sample_data_flights",
"Shard": "0",
"State": "ha iniziato",
"negozio": "5.3MB ",
"Id": "ftd_2ixjsxudn_UA4tzhhg",
"IP": "172.28.27.142 "
,
"INDICE": ".SLM-History-3-000001 ",
"Shard": "0",
"State": "ha iniziato",
"negozio": null,
"ID": "GSLMJTKYTEMOOX-EO7EM4W",
"IP": "172.28.86.133 "
,
"INDICE": ".SLM-History-3-000001 ",
"Shard": "0",
"State": "ha iniziato",
"negozio": null,
"Id": "ftd_2ixjsxudn_UA4tzhhg",
"IP": "172.28.27.142 "
,
"INDICE": "Destination_index",
"Shard": "0",
"State": "ha iniziato",
"negozio": "5.9 MB ",
"Id": "ftd_2ixjsxudn_UA4tzhhg",
"IP": "172.28.27.142 "
,
"INDICE": ".Monitoraggio-ES-7-2021.01.22 ",
"Shard": "0",
"State": "ha iniziato",
"negozio": "154.7 MB ",
"ID": "GSLMJTKYTEMOOX-EO7EM4W",
"IP": "172.28.86.133 "
,
"INDICE": ".Monitoraggio-ES-7-2021.01.22 ",
"Shard": "0",
"State": "ha iniziato",
"negozio": "270.2 MB ",
"Id": "ftd_2ixjsxudn_UA4tzhhg",
"IP": "172.28.27.142 "
,
-----------------------------------Output troncato-------------------------
Informazioni sul frammento per indici specifici
T0 0Btain Informazioni su un frammento per un indice specifico, passano il nome dell'indice come segue:
Ottieni _cat/shards/kibana_sample_data_flights
Inserisci il comando Curl come segue:
CURL -XGET “http: // localhost: 9200/_cat/shards/kibana_sample_data_flights"
Questo comando ti fornisce informazioni sui frammenti di quell'indice specifico:
kibana_sample_data_flights 0 p avviato 13059 5.3 MB 172.28.86.133 istanza-0000000003
kibana_sample_data_flights 0 r avviato 13059 5.3 MB 172.28.27.142 istanza-0000000001
NOTA: Puoi anche utilizzare i parametri per filtrare i dati sopra.
Conclusione
In questa guida, ti abbiamo mostrato come utilizzare l'API Cat per ottenere informazioni sui frammenti in esecuzione nel cluster di Elasticsearch.