syslog

termo

redesSuporte de TI

O protocolo universal de envio de logs: equipamentos transmitem eventos com timestamp e severidade a um coletor central, do ruído de debug às emergências.

O RFC 5424 formalizou o que o BSD improvisou; severidade 0 é Emergency, 7 é Debug, e ambas são ignoradas às 3 da manhã.

O syslog é o mínimo denominador comum do registro de máquinas, e sua longevidade vem de ser simples o bastante para que tudo o implemente. Uma mensagem carrega facilidade, severidade, carimbo de tempo, nome do host e texto livre. É quase todo o protocolo, o que explica tanto sua universalidade quanto por que interpretá-lo de forma consistente é mais difícil do que parece.

O valor de prioridade é a parte que as pessoas decodificam errado. É um único número que codifica facilidade e severidade juntas, calculado como facilidade vezes oito mais severidade, então recuperar as duas exige aritmética, não leitura. A ordenação da severidade também é contraintuitiva: zero é emergência e sete é depuração, então números menores são mais urgentes, e filtros escritos do jeito intuitivo descartam silenciosamente justamente as mensagens que importavam.

O transporte é onde mora o risco operacional. O syslog clássico é UDP, o que significa mensagens sem confirmação, que podem se perder exatamente quando o equipamento está sob o estresse que você mais quer registrado. Os transportes TCP e TLS corrigem entrega e confidencialidade, e a razão de se importar é que os logs são a evidência de um incidente que ainda não aconteceu: uma lacuna neles é descoberta no pior momento possível.

Todos os verbetes do glossário