ElasticSearch находит дисковое пространство
Как я могу найти объем дискового пространства, который использует Elastic Search для моих индексов? В настоящее время я запускаю его локально, и я пытаюсь определить, сколько дискового пространства мне понадобится на виртуальной машине, которую я буду раскручивать.
Ответы
Ответ 1
Способ Elasticsearch для этого состоит в использовании _cat/shards
и просмотре столбца 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
В противном случае в Linux для просмотра пробела по папке используйте:
du -hs /myelasticsearch/data/folder
или для просмотра пространства файловой системой:
df -h
Ответ 2
Если вам не нужны статистические данные, полученные с помощью /_cat/shards
, вы можете использовать
curl -XGET localhost:9200/_cat/allocation?v
чтобы получить доступное и доступное дисковое пространство для каждого node.
Ответ 3
вы можете использовать API-интерфейс остатков узлов
см. https://www.elastic.co/guide/en/elasticsearch/reference/1.6/cluster-nodes-stats.html
сделать запрос для статистики fs следующим образом:
http://: 9200/_nodes/stats/fs? pretty = 1
и вы увидите:
{
"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"
} ]
}
}
}
}
указано место для привода данных:
"total" : {
"total_in_bytes" : 363667091456,
"free_in_bytes" : 185081352192,
"available_in_bytes" : 166608117760,
Ответ 4
Возможно, вы захотите использовать _cat api для использования пространства дискового пространства
curl http://host:9200/_cat/nodes?h=h,diskAvail
Ссылка: https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-nodes.html
Ответ 5
Более кратким решением найти размер индексов является использование
curl -XGET 'localhost:9200/_cat/indices?v'
На выходе есть столбец "store.size", который точно указывает размер индекса.
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
Кроме того, вы можете узнать о наличии свободного места на диске с помощью
curl -XGET 'localhost:9200/_nodes/_local/stats/fs'
Найдите информацию о дисковой памяти под клавишей "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
},
}
}
}
}
Я тестировал это для ElasticSearch версии 5.2.1
Ответ 6
Чтобы просмотреть общее использование диска/доступное пространство на кластере ES, вы можете использовать следующую команду:
curl -XGET 'localhost:9200/_cat/allocation?v&pretty'
Надеюсь, что это поможет.
Ответ 7
Или вы также можете запросить диск непосредственно для измерения дискового пространства для каждого каталога в каталоге/var/lib/elasticsearch/[имя среды]/узлы/0/индексы на узлах 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/индексы 3.8GB/var/lib/elasticsearch/env1/nodes/0/index/index1 2.1GB/var/lib/elasticsearch/env1/nodes/0/index/index2 1.2GB...