Graylog: Gerir a retenção

Como configurar a retenção de logs

👋 Bem-vindo à documentação da Stackhero!

A Stackhero oferece uma solução Graylog cloud pronta a usar que proporciona uma série de benefícios, incluindo:

  • Servidor de email SMTP ilimitado e dedicado incluído.
  • Atualizações sem esforço com apenas um clique.
  • Nome de domínio personalizável seguro com HTTPS (por exemplo, https://logs.sua-empresa.com).
  • Desempenho ótimo e segurança robusta alimentados por uma VM privada e dedicada.

Poupe tempo e simplifique a sua vida: são necessários apenas 5 minutos para experimentar a solução Graylog cloud hosting da Stackhero!

A retenção define o número de mensagens armazenadas na base de dados OpenSearch. Pode configurar a retenção com base num número de mensagens, numa idade máxima ou num limite de tamanho global.

Por exemplo, pode optar por manter mensagens dos últimos 365 dias, reter até 200 milhões de mensagens, ou reservar um total de 400 GB de espaço de armazenamento.

Antes de definir a sua política de retenção, é importante compreender como funcionam os índices utilizados pelo Graylog e OpenSearch. Pense nos índices como contentores físicos. O Graylog "abre" um contentor (um índice) e coloca as mensagens recebidas dentro dele. Quando a quota atribuída a esse contentor é excedida, o contentor é fechado, armazenado numa prateleira, e um novo contentor é iniciado para as mensagens subsequentes.

Pode definir esta quota utilizando diferentes critérios:

  1. Um número de mensagens: "Mantenha 20 milhões de mensagens por contentor, depois inicie um novo."
  2. Uma limitação de tempo: "Use um contentor durante 10 dias, depois mude para um novo."
  3. Uma limitação de tamanho: "Armazene 20 GB por contentor, depois passe para um novo."

Também é definido um número máximo de contentores que podem ser armazenados na prateleira. Se o número for excedido, os contentores mais antigos são automaticamente eliminados. Por exemplo, se definir um máximo de 20 contentores e tiver 22 na prateleira, os 2 contentores mais antigos serão removidos.

Nesta analogia, os contentores representam os índices, a prateleira é o OpenSearch, e o número máximo representa o número permitido de índices.

O Graylog oferece três estratégias de retenção:

  1. "Index time" define a duração máxima durante a qual as mensagens são mantidas em cada índice, por exemplo, 14 dias por índice.
  2. "Index message count" define o número máximo de mensagens por índice, por exemplo, 20 milhões de mensagens por índice.
  3. "Index size" limita o tamanho máximo de um índice, por exemplo, 40 GB por índice.

Pode selecionar uma destas estratégias com base nos seus requisitos específicos. Por exemplo, selecionar "Index time" ajuda a garantir que tem sempre logs dos últimos X dias.

Tenha cuidado para estimar com precisão as suas necessidades de armazenamento em disco.

Por exemplo, se armazenar 1 GB de logs por dia e decidir manter logs dos últimos 365 dias, precisará de 365 GB de espaço em disco. Lembre-se de que também deve ser reservado espaço operacional extra (ver abaixo).

Por padrão, o Graylog limita o número de índices a 20. Pode ajustar este valor conforme necessário. Por exemplo, se quiser armazenar logs dos últimos 365 dias, pode distribuir a retenção pelos índices dividindo 365 dias por 20 índices, o que resulta em aproximadamente 19 dias por índice.

Pode realizar cálculos semelhantes para as outras estratégias:

  1. Para a estratégia "Index message count": se quiser manter 200 milhões de mensagens com um máximo de 20 índices, então 200 milhões de mensagens divididas por 20 índices dão 10 milhões de mensagens por índice.
  2. Para a estratégia "Index size": se quiser manter 400 GB de logs com um máximo de 10 índices, então 400 GB divididos por 10 índices dão 40 GB por índice.

Recomendamos sempre manter pelo menos 15 GB de espaço livre em disco para logs, o jornal do Graylog e dados do MongoDB.

Se o espaço livre em disco se esgotar, o OpenSearch bloqueará as suas operações e poderá precisar de atualizar para uma instância maior.

Para configurar a política de retenção, navegue até à interface do Graylog. Em "System", selecione "Indices" e clique no botão "Edit" no "Default index set".

No exemplo abaixo, a configuração define um máximo de 27 índices, com cada índice retendo 14 dias de logs. Esta configuração retém logs por aproximadamente um ano (378 dias).

Não recomendamos manter mais de 14 dias de mensagens por índice.

Configuração de retenção para manter logs por um anoConfiguração de retenção para manter logs por um ano

Ao escolher "Index time" como política de rotação, precisa definir a duração usando o padrão ISO8601 Duration.

Por exemplo, "P7D" significa 7 dias, "P14D" significa 14 dias e assim por diante.

Se quiser saber mais sobre índices, encorajamos vivamente a leitura da documentação oficial.

Ocasionalmente, o OpenSearch pode mudar para o modo de leitura apenas e pode encontrar erros como:

  1. "Flood stage disk watermark exceeded, all indices on this node will be marked read-only"
  2. "FORBIDDEN/12/index read-only / allow delete (api)"

Estes erros ocorrem como parte do mecanismo de proteção do OpenSearch quando o espaço em disco é criticamente baixo. Quando o espaço disponível em disco cai abaixo de 7 GB, o OpenSearch define os índices como leitura apenas como medida de precaução para evitar a corrupção de dados.

Se encontrar estes erros, tem duas opções:

  1. Reconfigure a sua política de retenção para manter menos logs. Após ajustar a política, elimine o índice mais antigo para liberar espaço em disco e permitir que o OpenSearch volte ao modo de leitura-escrita. Note que eliminar um índice significa que todos os dados nesse índice serão perdidos.
  2. Atualize a sua instância para uma com um disco maior. Com um único clique no seu painel de controlo Stackhero, a instância reiniciará com espaço adicional em disco e o OpenSearch retornará automaticamente ao modo de leitura-escrita.