# Limpeza de index

**URL:** <https://discuss.elastic.co/t/limpeza-de-index/270056>\
**Category:** Elastic em Português - Brasil\
**Created:** [April 13, 2021, 7:17pm UTC](https://discuss.elastic.co/t/limpeza-de-index/270056 "2021-04-13T19:17:58Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Fernando\_Oliveira](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/fernando_oliveira/32/80628_2.png) [@Fernando\_Oliveira](https://discuss.elastic.co/u/Fernando_Oliveira)\
**Post date:** [April 13, 2021, 7:17pm UTC](https://discuss.elastic.co/t/limpeza-de-index/270056/1 "2021-04-13T19:17:58Z")

</div>

Bom dia, sou novo no elastic e utilizo a versão instalada em um servidor linux, tenho a necessidade de liberar espaço em disco consumindo pelo elastic, os arquivos estão sendo gerados em /var/lib/elasticsearch/nodes/0/indices/

Como tentativa utilizei as informações desse link :

> **[Tutorial: Automate rollover with ILM | Elasticsearch Guide \[7.12\] | Elastic](https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started-index-lifecycle-management.html#manage-time-series-data-without-data-streams)**

Porém apresentava alguns erros, hoje eu tenho 02 index , o principal é o que consome espaço em disco, gostaria de entender melhor o fluxo de limpeza do elastic (para liberar espaço em disco), no meu caso preciso manter dados dos últimos 6 meses, então gostaria de saber como funciona exatamente...se eu preciso criar um outro index para fazer a limpeza ? Se eu consigo aplicar a limpeza em um index existente e cheio de dados ?

Enfim, um norte de como é o fluxo e como fazer, meu muito obrigado !!

---

<div class="post-metadata">

**Author:** ![pmusa](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/pmusa/32/3498_2.png) [@pmusa](https://discuss.elastic.co/u/pmusa)\
**Post date:** [April 15, 2021, 10:40am UTC](https://discuss.elastic.co/t/limpeza-de-index/270056/2 "2021-04-15T10:40:52Z")

</div>

Oi Fernando,  
Se você tem os dados todos em único índice, você não está usando a premissa do ILM e portanto configurar o ILM não vai adiantar. Você pode usar o [delete\_by\_query](https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete-by-query.html) definindo o critério de deleção na query. Muito cuidado ao executar o comando para não deletar seus dados.

Parece que você está usando time-series data e deveria estar armazenando seus dados em mais de um único index para ter uma melhor performance e mais flexibilidade. Se quiser compartilhar mais detalhes do seu caso de uso, eu posso te dar mais dicas.

Abraços.

---

<div class="post-metadata">

**Author:** ![Fernando\_Oliveira](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/fernando_oliveira/32/80628_2.png) [@Fernando\_Oliveira](https://discuss.elastic.co/u/Fernando_Oliveira)\
**Post date:** [April 16, 2021, 12:26pm UTC](https://discuss.elastic.co/t/limpeza-de-index/270056/3 "2021-04-16T12:26:44Z")

</div>

Bom dia Pablo, muito obrigado pela resposta, a criação de índice foi outra equipe que fez, eu mesmo só instalei o Elastic, e realmente tem 2 índices (1 muito pequeno e o outro principal que consome grande espaço em disco), o timeseries o que seria ? Tem algum comando que posso rodar para trazer mais informações e postar aqui para você ter uma visão melhor de como posso proceder ?

---

<div class="post-metadata">

**Author:** ![pmusa](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/pmusa/32/3498_2.png) [@pmusa](https://discuss.elastic.co/u/pmusa)\
**Post date:** [April 19, 2021, 8:21am UTC](https://discuss.elastic.co/t/limpeza-de-index/270056/4 "2021-04-19T08:21:48Z")

</div>

Oi Fernando,  
`GET _cat/indices` e `GET _cat/shards` são bons comandos pra começar a ententer o cluster. Timeseries é um "modelo" e existem features que ajudam a implementar esse "modelo" de maneira mais simples, como o ILM. Como eu te falei o mais fácil é você compartilhar o caso de uso e alguns detalhes do deployment para podermos te enviar links que fazem sentido. Por exemplo, como você está ingerindo os dados? Qual o volume desses dados?

---

<div class="post-metadata">

**Author:** ![Fernando\_Oliveira](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/fernando_oliveira/32/80628_2.png) [@Fernando\_Oliveira](https://discuss.elastic.co/u/Fernando_Oliveira)\
**Post date:** [April 19, 2021, 1:43pm UTC](https://discuss.elastic.co/t/limpeza-de-index/270056/5 "2021-04-19T13:43:00Z")

</div>

Bom dia Pablo, estou anexando o resultado do comando GET \_cat/shards , tenho o indice excecao (que consome pouco espaço em disco) e o indice aplicacao (que consome bastante espaço), o estranho é na máquina que uso para homologar essa "limpeza" antes o indice aplicacao estava consumindo 240GB, hoje quando liguei mostra o consumo de 140GB, neste ambiente eu crie o ILM com polices, template , será que funcionou ? Tenho como conferir ?

 ![shards](https://us1.discourse-cdn.com/elastic/original/3X/4/7/47728eed7874b6fbf90af0aa2303d1b530d38201.jpeg)

---

<div class="post-metadata">

**Author:** ![Fernando\_Oliveira](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/fernando_oliveira/32/80628_2.png) [@Fernando\_Oliveira](https://discuss.elastic.co/u/Fernando_Oliveira)\
**Post date:** [April 23, 2021, 12:41pm UTC](https://discuss.elastic.co/t/limpeza-de-index/270056/6 "2021-04-23T12:41:30Z")

</div>

Por favor, alguém poderia auxiliar ?

Muito obrigado !

---

<div class="post-metadata">

**Author:** ![pmusa](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/pmusa/32/3498_2.png) [@pmusa](https://discuss.elastic.co/u/pmusa)\
**Post date:** [April 26, 2021, 11:55am UTC](https://discuss.elastic.co/t/limpeza-de-index/270056/7 "2021-04-26T11:55:16Z")

</div>

Oi Fernando,  
desculpas, mas por algum motivo, eu não recebi notificação pelo email. Você hoje em dia tem apenas um índice com todos os seus dados e não faz uso de ILM ou datastreams nesse índice. Como você está ingerindo os seus dados? E que tipo de dados são esses? Qual é a sua versão do Elasticsearch? Por hora, a única maneira de limpar o índice é usando o delete\_by\_query como falei anteriormente. Enquanto isso você trabalha na migração dos dados para poder usufruir do gerenciamento automático de indices/shards.

---

<div class="post-metadata">

**Author:** ![Fernando\_Oliveira](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/fernando_oliveira/32/80628_2.png) [@Fernando\_Oliveira](https://discuss.elastic.co/u/Fernando_Oliveira)\
**Post date:** [April 27, 2021, 12:20pm UTC](https://discuss.elastic.co/t/limpeza-de-index/270056/8 "2021-04-27T12:20:27Z")

</div>

Bom dia Pablo !  
Respondendo aos questionamentos :  
Como você está ingerindo os seus dados? E que tipo de dados são esses?  
Estamos gravando json em formato string com um post na url do endpoint do elasticsearch, o post é feito via HttpWebRequest usando StreamWriter e fazendo um GetResponse (HttpWebResponse).  
A versão do Elastic é 7.6.2.  
Pablo, para o meu cenário atual a única maneira de limpar os dados e manter os dados dos últimos 06 meses é usando delete\_by\_query ? (Não queremos apagar o indice, só manter os dados dos últimos 6 meses e também liberar espaço em disco).  
Se sim, você teria algum exemplo deste comando ? (Será feito em ambiente de teste)

---

<div class="post-metadata">

**Author:** ![pmusa](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/pmusa/32/3498_2.png) [@pmusa](https://discuss.elastic.co/u/pmusa)\
**Post date:** [April 28, 2021, 8:05am UTC](https://discuss.elastic.co/t/limpeza-de-index/270056/9 "2021-04-28T08:05:35Z")

</div>

O delete\_by\_query deletará apenas os documentos e não o índice. O link que eu te enviei tem exemplos do comando:

```auto
POST /my-index-000001/_delete_by_query
{
  "query": {
    "match": {
      "user.id": "elkbee"
    }
  }
}

```

No seu caso você vai ter que mudar o nome do índice e a query para provavelmente uma range query usando a data que você deseja. O Beats e o Logstash implementam as políticas de gerenciamento de índice automaticamente e acaba sendo muito mais fácil usá-los. Como não parece ser o seu caso, você vai ter que configurar sozinho.

A idéia é que você tem um entry-point (alias) para escrever e ler, mas internamente existem uma séries de índices que são criados baseado na sua política de retenção. Dá uma lida nos docs [aqui](https://www.elastic.co/guide/en/elasticsearch/reference/current/index-lifecycle-management.html) para entender melhor o conceito e vai postando as dúvidas aqui que te ajudo.

---

<div class="post-metadata">

**Author:** ![Fernando\_Oliveira](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/fernando_oliveira/32/80628_2.png) [@Fernando\_Oliveira](https://discuss.elastic.co/u/Fernando_Oliveira)\
**Post date:** [April 28, 2021, 11:30am UTC](https://discuss.elastic.co/t/limpeza-de-index/270056/10 "2021-04-28T11:30:06Z")

</div>

Pablo, o link que você mandou é o ILM (esse foi o que eu tentei implementar), mas pelo que eu entendi da forma que foi criada minha estrutura com apenas 1 indice , não é possível usar o ILM, é isso ?  
Então para o meu cenário o que me resta é usar a query delete\_by\_query, correto ?  
E posteriormente se eu instalar o Beast e o Logstash eu conseguiria fazer essa limpeza de forma automática, é isso ?  
Ou se não for nada disso por favor me diga, no seu cenário atual a única alternativa para limpeza é fazer X e para futuramente você conseguir a limpeza de forma automática precisa fazer Y  
Muito obrigado Pablo, estou fazendo esses questionamentos pois precisarei dividir com outras pessoas.

---

<div class="post-metadata">

**Author:** ![pmusa](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/pmusa/32/3498_2.png) [@pmusa](https://discuss.elastic.co/u/pmusa)\
**Post date:** [April 28, 2021, 1:14pm UTC](https://discuss.elastic.co/t/limpeza-de-index/270056/11 "2021-04-28T13:14:00Z")

</div>

Oi Fernando,  
vamos começar do início 🙂

Você tem um cluster rodando com um único índice com um único shard. Todos os seus documentos estão neles e você quer deletar alguns desses documentos. Para fazer isso, você precisa usar o [DELETE\_BY\_QUERY](https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete-by-query.html) (esse foi o primeiro link que te mandei 13 dias atrás e o código de exemplo que postei mais cedo).

**Depois de resolver esse problema** , você pode começar a pensar em optimizar esse processo (e por consequência o seu cluster). Você não me deu muitos detalhes de como você está usando o Elasticsearch, mas acredito que você precisa fazer o seguinte. Ao invés de ter um único índice, você precisa de um `alias` apontando para vários índices. Esses índices serão criados e gerenciados automaticamente pelo Elasticsearch de acordo com as suas políticas (7 dias, 50GB, etc.). Isso é feito usando o [ILM](https://www.elastic.co/guide/en/elasticsearch/reference/current/index-lifecycle-management.html) (segundo link que postei).

A transição da implementação atual para a nova implementação vai precisar ser feita com calma e testada antes para garantir que as coisas funcionam de acordo com o esperado.

Espero que agora esteja mais claro.

---

<div class="post-metadata">

**Author:** ![Fernando\_Oliveira](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/fernando_oliveira/32/80628_2.png) [@Fernando\_Oliveira](https://discuss.elastic.co/u/Fernando_Oliveira)\
**Post date:** [May 6, 2021, 6:59pm UTC](https://discuss.elastic.co/t/limpeza-de-index/270056/12 "2021-05-06T18:59:24Z")

</div>

Boa tarde Pablo, muito obrigado pela ajuda.

Consegui executar a limpeza utilizado o comando abaixo :  
POST /aplicacao/\_delete\_by\_query  
{  
"query": {  
"range": {  
"horaLog": {  
"lte": "now-6M"  
}  
}  
}  
}

Limpou, porém achei que liberou pouco espaço no indice e no disco (por volta de 20GB), hoje a pasta que consome praticamente todo o espaço em disco (200gb) é /var/lib/elasticsearch/nodes/0/indices/\_wqaSrJ4Tky3FP7YUy950w/0/index$

Depois do comando que passou, tem mais algum outro procedimento necessário para liberar o espaço em disco ? Exemplo reindex, algo do genero...

Em anexo um print que mostra os arquivos dentro da pasta mencionada

 ![consumo](https://us1.discourse-cdn.com/elastic/original/3X/2/e/2edac4f7125f43caab9cbc2fbb992fc85e1e7da3.jpeg)

---

<div class="post-metadata">

**Author:** ![pmusa](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/pmusa/32/3498_2.png) [@pmusa](https://discuss.elastic.co/u/pmusa)\
**Post date:** [May 7, 2021, 12:51pm UTC](https://discuss.elastic.co/t/limpeza-de-index/270056/13 "2021-05-07T12:51:38Z")

</div>

Oi Fernando,  
o Elasticsearch tem um sistema interno um pouco diferente do comum. Ele marca os documentos como deletados ao invés de deletar os documentos propriamente. E existe uma política automática que de tempos em tempos cuida da maioria dos documentos deletados. O seu caso é peculiar por ter um único shard com um tamanho grande em um caso de uso time-series. Enquanto você não implementa a solução completa que vai facilitar tudo a longo prazo, eu sugiro rodar o comando abaixo. Ele vai forçar o Lucene a dar uma avaliada nos seus segmentos e a de fato remover os documentos deletados.

_ATENÇÃO:_\* esse comando geralmente é pesado para o cluster. Ele faz uso intensivo de CPU e disco e pode levar muito tempo para executar. Ou seja, execute esse comando quando o cluster estiver tranquilo e puder rodar por muito tempo sem afetar os usuários..

```auto
POST aplicacao/_forcemerge?only_expunge_deletes=true

```

Abs

---

<div class="post-metadata">

**Author:** ![Fernando\_Oliveira](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/fernando_oliveira/32/80628_2.png) [@Fernando\_Oliveira](https://discuss.elastic.co/u/Fernando_Oliveira)\
**Post date:** [May 10, 2021, 2:07pm UTC](https://discuss.elastic.co/t/limpeza-de-index/270056/14 "2021-05-10T14:07:39Z")

</div>

Bom dia Pablo, mais uma vez muito obrigado pelo seu apoio !!!

Eu executei, até mais de uma vez para ter certeza, e finalizou (veja imagem), porém liberou por volta de 5GB apenas no tamanho do indice, tem algo a mais que precisa ser feito ?

 ![pos-delete](https://us1.discourse-cdn.com/elastic/original/3X/9/e/9e90c270875727876f5870523c990b9742f3cdce.jpeg)

---

<div class="post-metadata">

**Author:** ![pmusa](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/pmusa/32/3498_2.png) [@pmusa](https://discuss.elastic.co/u/pmusa)\
**Post date:** [May 10, 2021, 2:23pm UTC](https://discuss.elastic.co/t/limpeza-de-index/270056/15 "2021-05-10T14:23:04Z")

</div>

Oi Fernando,  
acredito que não. O que te leva a crer que o Elasticsearch não liberou todo o espaço que poderia?

---

<div class="post-metadata">

**Author:** ![Fernando\_Oliveira](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/fernando_oliveira/32/80628_2.png) [@Fernando\_Oliveira](https://discuss.elastic.co/u/Fernando_Oliveira)\
**Post date:** [May 11, 2021, 2:07pm UTC](https://discuss.elastic.co/t/limpeza-de-index/270056/16 "2021-05-11T14:07:46Z")

</div>

Bom dia Pablo, muito obrigado pela ajuda !

Investigando melhor e limpando mais dados identifiquei que o elastic está correto, na verdade nos últimos 2 meses o tamanho de logs é bem maior, resumindo quando deixei só 2 meses ficou com 100GB (antes com 6 meses estava com 200GB), com 1 mês ficou com 50GB, então nos últimos meses estava gravando mais dados.

Muito obrigado pela ajuda !!!! Sucesso para você !!!

---

<div class="post-metadata">

**Author:** ![pmusa](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/pmusa/32/3498_2.png) [@pmusa](https://discuss.elastic.co/u/pmusa)\
**Post date:** [May 11, 2021, 2:25pm UTC](https://discuss.elastic.co/t/limpeza-de-index/270056/17 "2021-05-11T14:25:01Z")

</div>

Que bom que deu tudo certo Fernando. Qualquer dúvida é só falar.

abs

---

<div class="post-metadata">

**Author:** ![Regenildo](https://avatars.discourse-cdn.com/v4/letter/r/9fc29f/32.png) [@Regenildo](https://discuss.elastic.co/u/Regenildo)\
**Post date:** [March 17, 2022, 1:28am UTC](https://discuss.elastic.co/t/limpeza-de-index/270056/18 "2022-03-17T01:28:42Z")

</div>

Olá Pablo!

Se não for pedir muito...  
Meu nobre, estou com um problema quanto as cargas que realizo no Kibana. Tenho um index que é alimentado com dados de alunos da rede municipal de educação, contudo, com a dinâmica típica que ocorre a exemplo as transferências de matricula de uma escola para outra, as cargas de dados diárias não atualizam essa mudança, sendo inserido novo registro.  
Em vista desse fato, pergunto: Existe algum comando / função / Script em que posso aplicar para que em toda nova carga possa ocorrer a **subscrição total dos dados** do index no Kibana?

ps.: Detalhe, utilizo o logstash para o processo da carga.

Desde já agradeço pela atenção!

---

<div class="post-metadata">

**Author:** ![leandrojmp](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/leandrojmp/32/107231_2.png) [@leandrojmp](https://discuss.elastic.co/u/leandrojmp)\
**Post date:** [March 17, 2022, 1:59am UTC](https://discuss.elastic.co/t/limpeza-de-index/270056/19 "2022-03-17T01:59:47Z")

</div>

Olá,

Acho que o ideal é você abrir um novo tópico com essa dúvida, explicando o que você tá fazendo e o que precisa fazer.

Se entendi direito você quer atualizar os dados no lugar de criar um novo registro?

Se o seu documento tiver um campo com identificador único você consegue configurar o logstash pra atualizar o documento caso o id dele já exista no Elasticsearch.

Seria algo mais ou menos assim:

```auto
output {
    elasticsearch {
        hosts => ["servidor-elastic]
        index => "indice"
        document_id => "%{[campo_com_id_unico]}"
        action => "update"
        doc_as_upsert => true
    }
}

```

Mas fora isso não tem nada que automatize a exclusão do indice/dados antes de fazer uma nova carga não.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [November 4, 2022, 8:28am UTC](https://discuss.elastic.co/t/limpeza-de-index/270056/20 "2022-11-04T08:28:41Z")

</div>


