Graylog: Selezionare il formato di input

Questa documentazione fa parte della guida Scegliere i tipi di input. Consulta la guida completa qui: Come scegliere il tipo di input Graylog più adatto.

👋 Benvenuto nella documentazione di Stackhero

Stackhero offre una soluzione Graylog cloud completamente gestita, progettata per garantire velocità e semplicità. Puoi:

  • Affidarti a un server SMTP email dedicato e illimitato incluso nel tuo servizio.
  • Applicare facilmente gli aggiornamenti con un solo clic, senza necessità di interventi manuali.
  • Utilizzare un nome di dominio personalizzato protetto da HTTPS (ad esempio, https://logs.tua-azienda.com), offrendo al tuo team un accesso diretto e sicuro.
  • Sfruttare elevate prestazioni e sicurezza su un'infrastruttura privata e dedicata, senza risorse condivise o "noisy neighbors".

Concentrati sui tuoi dati, non sugli strumenti: puoi iniziare a utilizzare la soluzione Graylog cloud hosting di Stackhero in pochi minuti.

La prima decisione riguarda la scelta del formato dei messaggi di log. Esistono tre opzioni principali: RAW/Plaintext, Syslog oppure GELF.

Questo è il formato più semplice. Funziona con qualsiasi sistema perché invia un messaggio in testo semplice. È molto facile da utilizzare ed è perfetto per test iniziali, come l'invio di un messaggio tramite l'utilità netcat.

Per provarlo, potete creare un input "Raw/Plaintext UDP" e poi inviare un log di test utilizzando una delle seguenti linee di comando:

  1. Da macOS: echo "Hello Graylog from UDP" | nc -u -w1 -c <XXXXXX>.stackhero-network.com 5555
  2. Da Linux: echo "Hello Graylog from UDP" | nc -u -w1 <XXXXXX>.stackhero-network.com 5555

È molto semplice, vero? Tuttavia, trattandosi di un formato basilare, incontrerete presto dei limiti. Per questo motivo, sconsigliamo di utilizzarlo oltre semplici test.

Si tratta di un formato ben noto, ampiamente utilizzato per memorizzare e inviare log negli ambienti server. È presente su Linux, Windows, *BSD e altri sistemi operativi.

Se utilizzate Syslog, Rsyslog o un altro servizio compatibile e desiderate inviare log da un server a Graylog, l'input syslog rappresenta l'opzione più semplice.

Tuttavia, poiché GELF è più potente, se avete la possibilità di inviare messaggi in formato GELF, vi consigliamo di farlo, come spiegato di seguito.

Si noti che il formato syslog è limitato a 1024 caratteri.

GELF significa "Graylog Extended Log Format". Questo formato è stato creato da Graylog e oggi è ampiamente adottato da molti prodotti, diventando uno standard di fatto.

Il formato GELF è potente perché consente di inviare log in modo strutturato. Il logging strutturato permette di trasmettere più campi e valori, invece di un semplice messaggio di testo non strutturato. Questo facilita l'analisi e la ricerca delle informazioni da parte di Graylog.

Ad esempio, se desiderate inviare un log che contiene un indirizzo IP e un tipo di richiesta, potete inviare un messaggio con due campi denominati ip e request_type. Dal lato Graylog, potrete poi effettuare ricerche direttamente su questi campi, ad esempio cercando tutte le richieste con la query: request_type: POST.

GELF si basa su JSON e deve includere almeno i campi version, host e short_message. Potete poi aggiungere altri campi, che devono essere preceduti da un underscore (_).

Ad esempio, un messaggio semplice con un campo aggiuntivo chiamato device_id sarà così:

{
  "version": "1.1",
  "host": "myIotDevice",
  "short_message": "Something is happening",
  "_device_id": "abcd"
}

Potrete quindi cercare tutti i messaggi provenienti dal dispositivo "abcd" su Graylog utilizzando la query: device_id: abcd.

Per ulteriori dettagli su GELF, potete consultare la specifica ufficiale qui: https://docs.graylog.org/en/4.0/pages/gelf.html.

Se desiderate inviare log da server o applicazioni, potete utilizzare una delle numerose librerie disponibili che creano e inviano automaticamente i vostri messaggi. Sono disponibili esempi per Node.js, .NET e Python.