Utilisation de l'espace disque par ElasticSearch
Comment puis-je trouver la quantité d'espace disque que la recherche élastique utilise pour mes index? Je l'exécute actuellement localement et j'essaye de voir combien d'espace disque je vais avoir besoin sur la VM que je vais faire tourner.
7 réponses
la façon de faire Elasticsearch serait d'utiliser _cat/shards
et regarder les store
colonne:
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 dans Linux pour voir l'espace par dossier utiliser:
du -hs /myelasticsearch/data/folder
ou pour afficher l'espace par le système de fichiers:
df -h
dans le cas où vous n'avez pas besoin de statistiques par fragment retournées par /_cat/shards
vous pouvez utiliser
curl -XGET localhost:9200/_cat/allocation?v
pour obtenir de l'espace disque utilisé et disponible pour chaque nœud.
vous pouvez utiliser l'API noeuds stats rest
voir: https://www.elastic.co/guide/en/elasticsearch/reference/1.6/cluster-nodes-stats.html
faire une demande pour les statistiques de fs comme si: http://:9200/_nodes/stats/fs?jolie=1
et vous verrez:
{
"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 indiqué:
"total" : {
"total_in_bytes" : 363667091456,
"free_in_bytes" : 185081352192,
"available_in_bytes" : 166608117760,
pour voir l'utilisation globale du disque / espace disponible sur le cluster ES, vous pouvez utiliser la commande suivante:
curl -XGET 'localhost:9200/_cat/allocation?v&pretty'
Espérons que cette aide.
Vous pouvez utiliser l'api _cat pour l'utilisation de l'espace disque nodewise
curl http://host:9200/_cat/nodes?h=h,diskAvail
Référence : https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-nodes.html
une solution plus concise pour trouver la taille des indices est d'utiliser
curl -XGET 'localhost:9200/_cat/indices?v'
la sortie a un ' store.taille ' colonne 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'
chercher l'information sur l'espace disque sous la touche '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é ceci pour la version 5.2.1 D'ElasticSearch
ou vous pouvez également interroger le disque directement pour mesurer l'espace disque pour chaque répertoire sous / var/lib/elasticsearch/[nom de l'environnement]/noeuds/0 / indices sur les noeuds Elasticsearch.
$ du -b --max-depth=1 /var/lib/elasticsearch/[environment name]/nodes/0/indices | sort -rn | numfmt --to=iec --suffix=B --padding=5
17 GO /var/lib/elasticsearch/env1/nœuds/0/indices 3.8 GO /var/lib/elasticsearch/env1/nœuds/0/indices/index1 2.1 GO /var/lib/elasticsearch/env1/nœuds/0/indices/index2 1.2 GB ...