Graylog: Selecionar o formato de input

Esta documentação faz parte do guia Escolher tipos de input. Consulte o guia completo aqui: Como escolher o tipo de input Graylog adequado.

👋 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 primeira decisão é escolher o formato das suas mensagens de log. Existem três opções principais: RAW/Plaintext, Syslog ou GELF.

Este é o formato mais simples. Funciona com qualquer sistema porque envia uma mensagem em texto simples. É muito fácil de utilizar e perfeito para testes iniciais, como enviar uma mensagem usando a ferramenta netcat.

Para testar, pode criar um input "Raw/Plaintext UDP" e depois enviar um log de teste com um dos seguintes comandos:

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

É muito simples, não é? No entanto, por ser um formato básico, irá rapidamente encontrar limitações. Por isso, desaconselhamos a sua utilização para além de testes simples.

Este é um formato bem conhecido e amplamente utilizado para armazenar e enviar logs em ambientes de servidores. Está presente em Linux, Windows, *BSD, entre outros sistemas operativos.

Se utiliza Syslog, Rsyslog ou outro serviço compatível e pretende enviar logs de um servidor para o Graylog, o input syslog é a opção mais simples.

No entanto, como o GELF é mais poderoso, se conseguir enviar mensagens no formato GELF, recomendamos que o faça, conforme explicado abaixo.

Note que o formato syslog está limitado a 1024 caracteres.

GELF significa "Graylog Extended Log Format". Este formato foi criado pelo Graylog e tornou-se amplamente adotado por muitos produtos, estabelecendo-se como um standard.

O formato GELF é poderoso porque permite enviar logs de forma estruturada. O registo estruturado possibilita transmitir vários campos e valores, em vez de uma única mensagem de texto não estruturada. Isto facilita a análise e a pesquisa de informação pelo Graylog.

Por exemplo, se quiser enviar um log que contenha um endereço IP e um tipo de pedido, pode enviar uma mensagem com dois campos chamados ip e request_type. No Graylog, poderá pesquisar diretamente nestes campos, como por exemplo todas as requisições com a consulta: request_type: POST.

O GELF baseia-se em JSON e deve incluir pelo menos os campos version, host e short_message. Pode depois adicionar campos adicionais, que devem ser precedidos por um underscore (_).

Por exemplo, uma mensagem simples com um campo adicional chamado device_id será assim:

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

Depois, pode pesquisar todas as mensagens provenientes do dispositivo "abcd" no Graylog usando a consulta: device_id: abcd.

Para mais detalhes sobre o GELF, pode consultar a especificação oficial aqui: https://docs.graylog.org/en/4.0/pages/gelf.html.

Se quiser enviar logs de servidores ou aplicações, pode utilizar uma das muitas bibliotecas disponíveis que criam e enviam automaticamente as suas mensagens. Existem exemplos para Node.js, .NET e Python.