Comment trouver la quantité d'espace disque utilisée par Elastic Search pour mes index? Je l'utilise actuellement localement et j'essaie de voir combien d'espace disque il me faudra sur la VM que je vais créer.
Pour ce faire, Elasticsearch pourrait utiliser _cat/shards
et consulter la colonne store
:
curl -XGET "http://localhost:9200/_cat/shards?v"
index shard prirep state docs store ip node
myindex_2014_12_19 2 r STARTED 76661 415.6mb 192.168.1.1 Georgianna Castleberry
myindex_2014_12_19 2 p STARTED 76661 417.3mb 192.168.1.2 Frederick Slade
myindex_2014_12_19 2 r STARTED 76661 416.9mb 192.168.1.3 Maverick
myindex_2014_12_19 0 r STARTED 76984 525.9mb 192.168.1.1 Georgianna Castleberry
myindex_2014_12_19 0 r STARTED 76984 527mb 192.168.1.2 Frederick Slade
myindex_2014_12_19 0 p STARTED 76984 526mb 192.168.1.3 Maverick
myindex_2014_12_19 3 r STARTED 163 208.5kb 192.168.1.1 Georgianna Castleberry
myindex_2014_12_19 3 p STARTED 163 191.4kb 192.168.1.2 Frederick Slade
myindex_2014_12_19 3 r STARTED 163 181.6kb 192.168.1.3 Maverick
myindex_2014_12_19 1 p STARTED 424923 2.1gb 192.168.1.1 Georgianna Castleberry
myindex_2014_12_19 1 r STARTED 424923 2.1gb 192.168.1.2 Frederick Slade
myindex_2014_12_19 1 r STARTED 424923 2.1gb 192.168.1.3 Maverick
myindex_2014_12_19 4 r STARTED 81020 435.9mb 192.168.1.1 Georgianna Castleberry
myindex_2014_12_19 4 p STARTED 81020 437.8mb 192.168.1.2 Frederick Slade
myindex_2014_12_19 4 r STARTED 81020 437.8mb 192.168.1.3 Maverick
Sinon sous Linux pour afficher l'espace par dossier, utilisez:
du -hs /myelasticsearch/data/folder
ou pour afficher l'espace par système de fichiers:
df -h
Si vous n'avez pas besoin de statistiques par fragment renvoyées par /_cat/shards
, vous pouvez utiliser
curl -XGET localhost:9200/_cat/allocation?v
pour obtenir l’espace disque disponible et utilisé pour chaque nœud.
vous pouvez utiliser l'API repos de noeuds stats stats
voir: https://www.elastic.co/guide/fr/elasticsearch/reference/1.6/cluster-nodes-stats.html
faire une demande pour les statistiques fs comme suit: http: //: 9200/_nodes/stats/fs? pretty = 1
et vous allez voir:
{
"cluster_name" : "<cluster>",
"nodes" : {
"pEO34wutR7qk3Ix8N7MgyA" : {
"timestamp" : 1438880525206,
"name" : "<name>",
"transport_address" : "inet[/10.128.37.111:9300]",
"Host" : "<Host>",
"ip" : [ "inet[/10.128.37.111:9300]", "NONE" ],
"fs" : {
"timestamp" : 1438880525206,
"total" : {
"total_in_bytes" : 363667091456,
"free_in_bytes" : 185081352192,
"available_in_bytes" : 166608117760,
"disk_reads" : 154891,
"disk_writes" : 482628039,
"disk_io_op" : 482782930,
"disk_read_size_in_bytes" : 6070391808,
"disk_write_size_in_bytes" : 1989713248256,
"disk_io_size_in_bytes" : 1995783640064,
"disk_queue" : "0",
"disk_service_time" : "0"
},
"data" : [ {
"path" : "/data1/elasticsearch/data/<cluster>/nodes/0",
"mount" : "/data1",
"dev" : "/dev/sda4",
"total_in_bytes" : 363667091456,
"free_in_bytes" : 185081352192,
"available_in_bytes" : 166608117760,
"disk_reads" : 154891,
"disk_writes" : 482628039,
"disk_io_op" : 482782930,
"disk_read_size_in_bytes" : 6070391808,
"disk_write_size_in_bytes" : 1989713248256,
"disk_io_size_in_bytes" : 1995783640064,
"disk_queue" : "0",
"disk_service_time" : "0"
} ]
}
}
}
}
l'espace pour le lecteur de données est répertorié:
"total" : {
"total_in_bytes" : 363667091456,
"free_in_bytes" : 185081352192,
"available_in_bytes" : 166608117760,
Pour afficher l'utilisation totale du disque/l'espace disponible sur le cluster ES, vous pouvez utiliser la commande suivante:
curl -XGET 'localhost:9200/_cat/allocation?v&pretty'
J'espère que cela t'aides.
Vous voudrez peut-être utiliser l’API _cat pour utiliser davantage l’espace disque
curl http://Host:9200/_cat/nodes?h=h,diskAvail
Référence: https://www.elastic.co/guide/fr/elasticsearch/reference/current/cat-nodes.html
Une solution plus concise pour trouver la taille des indices consiste à utiliser
curl -XGET 'localhost:9200/_cat/indices?v'
La sortie contient une colonne 'store.size' qui vous indique exactement la taille d'un index.
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
yellow open logstash-2017.03.01 TfraFM8TQkSXdxjx13CnpQ 5 1 33330000 0 1gb 1gb
yellow open .monitoring-es-2-2017.03.02 10YscrcfQuGny5wMxeb0TA 1 1 68834 88 30.3mb 30.3mb
yellow open .kibana GE6xXV7QT-mNbX7xTPbZ4Q 1 1 3 0 14.5kb 14.5kb
yellow open .monitoring-es-2-2017.03.01 SPeQNnPlRB6y7G6w1Axokw 1 1 29441 108 14.7mb 14.7mb
yellow open .monitoring-data-2 LLeWqsD-QE-rPFblwu5K_Q 1 1 3 0 6.9kb 6.9kb
yellow open .monitoring-kibana-2-2017.03.02 l_MAPERUTmSbq0xbhpnf2Q 1 1 5320 0 1.1mb 1.1mb
yellow open .monitoring-kibana-2-2017.03.01 UFVg9c7TTA-nbsEd2d4oFw 1 1 2699 0 763.4kb 763.4kb
De plus, vous pouvez vous renseigner sur l’espace disque disponible en utilisant
curl -XGET 'localhost:9200/_nodes/_local/stats/fs'
Recherchez les informations sur l'espace disque sous la clé 'fs'
{
"_nodes": {
"total": 1,
"successful": 1,
"failed": 0
},
"cluster_name": "elasticsearch",
"nodes": {
"MfgVaoRQT9iRAZtAvO549Q": {
"fs": {
"timestamp": 1488466297268,
"total": {
"total_in_bytes": 29475753984,
"free_in_bytes": 18352095232,
"available_in_bytes": 18352095232
},
}
}
}
}
J'ai testé cela pour ElasticSearch version 5.2.1
Vous pouvez également interroger directement le disque pour mesurer l'espace disque de chaque répertoire sous/var/lib/elasticsearch/[nom de l'environnement]/nodes/0/indices sur les nœuds Elasticsearch.
$ du -b --max-depth=1 /var/lib/elasticsearch/[environment name]/nodes/0/indices | sort -rn | numfmt --to=iec --suffix=B --padding=5
17GB /var/lib/elasticsearch/env1/nodes/0/indices 3.8GB /var/lib/elasticsearch/env1/nodes/0/indices/index1 2.1GB /var/lib/elasticsearch/env1/nodes/0/indices/index2 1,2 Go ...