Qual é o propósito dos logs do elasticsearch? Como gerenciá-los?

3

Pelo que entendi, os índices (ou dados) estão sendo armazenados em

/var/lib/elasticsearch

por padrão, essa pasta contém as pastas nodes with 0 e 1 e o tamanho geral dessas pastas é 376M .

Os logs estão sendo armazenados em

/var/log/elasticsearch

-rw-r--r-- 1 elasticsearch elasticsearch 1.4G Dec 17 23:59 elasticsearch.log.2014-12-17
-rw-r--r-- 1 elasticsearch elasticsearch 1.5G Dec 18 19:35 elasticsearch.log.2014-12-18
-rw-r--r-- 1 elasticsearch elasticsearch 383M Dec 19 20:11 elasticsearch.log.2014-12-19
-rw-r--r-- 1 elasticsearch elasticsearch 7.2G Dec 30 23:59 elasticsearch.log.2014-12-30
-rw-r--r-- 1 elasticsearch elasticsearch 9.1G Jan  1 23:59 elasticsearch.log.2015-01-01
-rw-r--r-- 1 elasticsearch elasticsearch  29G Jan  2 23:59 elasticsearch.log.2015-01-02
-rw-r--r-- 1 elasticsearch elasticsearch 928K Jan  3 23:59 elasticsearch.log.2015-01-03
-rw-r--r-- 1 elasticsearch elasticsearch  91M Jan  4 23:59 elasticsearch.log.2015-01-04

E como você pode ver, eles usam WAY TOO MUCH space, e até fui forçado a remover um arquivo com tamanho de 28G para liberar algum espaço no servidor.

Meu elasticsearch version é 0.90.7

De acordo com documentos oficiais:

From version 0.90 onwards, store compression is always enabled.

No meu caso, não vejo nenhuma compactação, ela está sendo aplicada a logs? Se os dados estiverem em /var/lib/ , qual é o propósito dos logs, meu aplicativo funcionará se eu remover todos os logs? Por que eu deveria mantê-los? E se assim for, eu não entendo o que fazer com o tamanho, não posso fazer meus índices menores, talvez eu possa usar o logrotate?

    
por Rustam A. Gasanov 05.01.2015 / 06:07

2 respostas

2

Os registros ES contêm informações sobre seu aplicativo em execução, ou seja, erros. Se você não encontrar nenhum problema em seus registros, poderá excluir com segurança os logs antigos manualmente ou por logrotate.

Para reduzir o tamanho de seus índices, é necessário remover alguns documentos deles porque os índices são o local em que o ES armazena os dados. Não use logrotate para índices ou coisas estranhas acontecerão.

    
por 05.01.2015 / 08:15
5

Se alguém estiver interessado em saber como resolvi um problema com os registros ...

Após algumas investigações, descobri que você pode definir a quantidade de logs a serem armazenados em logging.yml , que por padrão está em /etc/elasticsearch , adicionando:

maxBackupIndex: x

linha assim:

file:
  type: dailyRollingFile
  file: ${path.logs}/${cluster.name}.log
  datePattern: "'.'yyyy-MM-dd"
  maxBackupIndex: 7
  layout:
    type: pattern
    conversionPattern: "[%d{ISO8601}][%-5p][%-25c] %m%n"

que salvará apenas 7 arquivos de log mais recentes.

Mas como meus arquivos de log são muito grandes e a solução acima não aplica compactação, decidi usar logrotate com compactação, aqui está minha configuração /etc/logrotate.d/elasticsearch :

/var/log/elasticsearch/elasticsearch.log.????-??-?? {
  daily
  missingok
  rotate 1
  compress
  notifempty
}

Breve descrição: uma vez por dia comprimir arquivos com datas no final (haveria 1 novo arquivo criado por elasticsearch a cada dia), não faça nada se estiver vazio, não relate erros.

    
por 05.01.2015 / 17:58