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 disponibiliza uma solução Graylog cloud totalmente gerida, concebida para garantir rapidez e simplicidade. Pode:
- Contar com um servidor de email SMTP dedicado e ilimitado incluído no seu serviço.
- Aplicar atualizações de forma simples, com apenas um clique, sem necessidade de intervenção manual.
- Utilizar um domínio personalizado protegido por HTTPS (por exemplo, https://logs.sua-empresa.com), proporcionando à sua equipa um acesso direto e seguro.
- Beneficiar de elevada performance e segurança numa infraestrutura privada e dedicada, sem recursos partilhados nem vizinhos ruidosos.
Concentre-se nos seus dados, não nas ferramentas: pode começar a utilizar a solução Graylog cloud hosting da Stackhero em apenas alguns minutos.
A primeira decisão é escolher o formato das suas mensagens de log. Existem três opções principais: RAW/Plaintext, Syslog ou GELF.
Formato RAW/Plaintext
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:
- Em macOS:
echo "Hello Graylog from UDP" | nc -u -w1 -c <XXXXXX>.stackhero-network.com 5555 - 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.
Formato Syslog
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.
Formato GELF (recomendado)
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.