Graylog: Gestire la retention

Come configurare la retention dei log

👋 Benvenuti nella documentazione di Stackhero!

Stackhero offre una soluzione Graylog cloud pronta all'uso che fornisce numerosi vantaggi, tra cui:

  • Server email SMTP illimitato e dedicato incluso.
  • Aggiornamenti senza sforzo con un solo clic.
  • Nome di dominio personalizzabile sicuro con HTTPS (ad esempio, https://logs.tua-azienda.com).
  • Prestazioni ottimali e sicurezza robusta grazie a una VM privata e dedicata.

Risparmia tempo e semplifica la tua vita: bastano 5 minuti per provare la soluzione Graylog cloud hosting di Stackhero!

La retention definisce il numero di messaggi memorizzati nel database OpenSearch. È possibile configurare la retention in base al numero di messaggi, a un'età massima o a un limite di dimensione complessiva.

Ad esempio, si può scegliere di conservare i messaggi degli ultimi 365 giorni, mantenere fino a 200 milioni di messaggi o riservare un totale di 400 GB di spazio di archiviazione.

Prima di definire la policy di retention, è importante capire come funzionano gli indici utilizzati da Graylog e OpenSearch. Si possono immaginare gli indici come contenitori fisici. Graylog "apre" un contenitore (un indice) e inserisce al suo interno i messaggi in arrivo. Quando il quota assegnato a quel contenitore viene superato, il contenitore viene chiuso, archiviato su uno scaffale e ne viene aperto uno nuovo per i messaggi successivi.

È possibile impostare questo quota utilizzando criteri diversi:

  1. Un numero di messaggi: "Mantieni 20 milioni di messaggi per contenitore, poi avviane uno nuovo."
  2. Una limitazione temporale: "Usa un contenitore per 10 giorni, poi passa a uno nuovo."
  3. Una limitazione di dimensione: "Archivia 20 GB per contenitore, poi passa al successivo."

Viene inoltre definito un numero massimo di contenitori che possono essere archiviati sullo scaffale. Se questo numero viene superato, i contenitori più vecchi vengono eliminati automaticamente. Ad esempio, se si imposta un massimo di 20 contenitori e ce ne sono 22 sullo scaffale, i 2 più vecchi verranno rimossi.

In questa analogia, i contenitori rappresentano gli indici, lo scaffale è OpenSearch e il numero massimo rappresenta il numero consentito di indici.

Graylog offre tre strategie di retention:

  1. "Index time" definisce la durata massima per cui i messaggi vengono conservati in ciascun indice, ad esempio 14 giorni per indice.
  2. "Index message count" imposta il numero massimo di messaggi per indice, ad esempio 20 milioni di messaggi per indice.
  3. "Index size" limita la dimensione massima di un indice, ad esempio 40 GB per indice.

È possibile selezionare una di queste strategie in base alle proprie esigenze specifiche. Ad esempio, selezionando "Index time" si garantisce di avere sempre i log degli ultimi X giorni.

Assicuratevi di stimare accuratamente le vostre necessità di spazio su disco.

Ad esempio, se si archiviano 1 GB di log al giorno e si decide di conservare i log degli ultimi 365 giorni, saranno necessari 365 GB di spazio su disco. Ricordate che è necessario riservare anche dello spazio operativo aggiuntivo (vedi sotto).

Per impostazione predefinita, Graylog limita il numero di indici a 20. È possibile modificare questo valore in base alle proprie esigenze. Ad esempio, se si desidera conservare i log degli ultimi 365 giorni, si può distribuire la retention tra gli indici dividendo 365 giorni per 20 indici, ottenendo circa 19 giorni per indice.

Si possono effettuare calcoli simili per le altre strategie:

  1. Per la strategia "Index message count": se si desidera mantenere 200 milioni di messaggi con un massimo di 20 indici, allora 200 milioni di messaggi divisi per 20 indici danno 10 milioni di messaggi per indice.
  2. Per la strategia "Index size": se si vogliono mantenere 400 GB di log con un massimo di 10 indici, allora 400 GB divisi per 10 indici danno 40 GB per indice.

Si consiglia di mantenere sempre almeno 15 GB di spazio libero su disco per i log, il journal di Graylog e i dati MongoDB.

Se lo spazio libero su disco si esaurisce, OpenSearch bloccherà le sue operazioni e potrebbe essere necessario effettuare un upgrade a un'istanza più grande.

Per configurare la policy di retention, accedete all'interfaccia di Graylog. Nel menu "System" selezionate "Indices" e fate clic sul pulsante "Edit" nella sezione "Default index set".

Nell'esempio qui sotto, la configurazione imposta un massimo di 27 indici, ciascuno dei quali conserva 14 giorni di log. Questa configurazione permette di mantenere i log per circa un anno (378 giorni).

Non consigliamo di mantenere più di 14 giorni di messaggi per indice.

Configurazione della retention per mantenere i log per un annoConfigurazione della retention per mantenere i log per un anno

Quando si sceglie "Index time" come policy di rotazione, è necessario definire la durata utilizzando lo standard ISO8601 Duration.

Ad esempio, "P7D" significa 7 giorni, "P14D" significa 14 giorni e così via.

Se desiderate saperne di più sugli indici, vi consigliamo vivamente di consultare la documentazione ufficiale.

Occasionalmente, OpenSearch può passare in modalità sola lettura e potreste incontrare errori come:

  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)"

Questi errori si verificano come parte del meccanismo di protezione di OpenSearch quando lo spazio su disco è in condizioni critiche. Quando lo spazio disponibile scende sotto i 7 GB, OpenSearch imposta gli indici in sola lettura come misura precauzionale per prevenire la corruzione dei dati.

Se riscontrate questi errori, avete due opzioni:

  1. Riconfigurate la vostra policy di retention per conservare meno log. Dopo aver modificato la policy, eliminate l'indice più vecchio per liberare spazio su disco e consentire a OpenSearch di tornare in modalità lettura-scrittura. Si noti che l'eliminazione di un indice comporta la perdita definitiva di tutti i dati in esso contenuti.
  2. Effettuate l'upgrade a un'istanza con un disco più grande. Con un solo clic dalla vostra dashboard Stackhero, l'istanza verrà riavviata con più spazio su disco e OpenSearch tornerà automaticamente in modalità lettura-scrittura.