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.

👋 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 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.