Qual é a diferença entre syslog, rsyslog e syslog-ng?

Qual é a diferença entre syslog, rsyslog e syslog-ng?

Estou um pouco confuso em syslog, rsyslog e syslog-ng.

De onde posso obter o código-fonte syslog()?

Existe alguma diferença entre rsyslog e rsyslogd?

Responder1

Basicamente, são todos iguais, na medida em que permitem o registo de dados de diferentes tipos de sistemas num repositório central.

Mas são três projetos diferentes, cada projeto tentando melhorar o anterior com mais confiabilidade e funcionalidades.

O Syslogprojeto foi o primeiro projeto. Tudo começou em 1980. É o projeto raiz do Syslogprotocolo. Neste momento o Syslog é um protocolo muito simples. No início suporta apenas UDP para transporte, pelo que não garante a entrega das mensagens.

O próximo veio syslog-ngem 1998. Ele estende syslogo protocolo básico com novos recursos como:

  • filtragem baseada em conteúdo
  • Fazendo login diretamente em um banco de dados
  • TCP para transporte
  • Criptografia TLS

O próximo veio Rsyslogem 2004. Ele estende syslogo protocolo com novos recursos como:

  • Suporte ao protocolo RELP
  • Suporte à operação em buffer

Digamos que hoje são três projetos simultâneos que cresceram separadamente conforme as versões, mas também cresceram paralelamente em relação ao que os vizinhos faziam.

Pessoalmente acho que hoje syslog-ngé a referência na maioria dos casos, pois é o projeto mais maduro que oferece os principais recursos que você pode precisar, além de uma instalação e configuração fácil e abrangente.

Responder2

estes são três tipos diferentes de gerenciadores de log: permitem que seu sistema colete filtros e transmita/armazene logs.

  • Syslog(daemon também chamado sysklogd) é o LM padrão em distribuições Linux comuns. Leve, mas não muito flexível, você pode redirecionar o fluxo de log classificado por facilidade e gravidade para arquivos e pela rede (TCP, UDP).
  • rsyslogé uma versão "avançada" sysklogdonde o arquivo de configuração permanece o mesmo (você pode copiar um syslog.confarquivo diretamente rsyslog.confe ele funciona); mas você tem muitas coisas novas e legais chegando:

    • Você pode ouvir conexões TCP/UDP/..., com restrições (portas, IPs de origem)
    • Você pode carregar muitos módulos
    • Você pode discriminar a filtragem do log por programa, fonte, mensagem, pid etc. (por exemplo, cada mensagem marcada com a mensagem "conexão fechada" para o arquivo closed.log)
    • Você pode descartar a mensagem após uma ou mais regras Visitarhttp://www.rsyslog.como que é realmente muito bom
  • Syslog-ng é "Próxima geração". Acho que é a melhor forma de gerenciar logs: tudo é objeto (origem, destino, filtro e a própria regra de encaminhamento) e a sintaxe é clara. Duvido em termos de funcionalidade que rsyslogsejam syslog-ngdiferentes.

Responder3

De onde posso obter o código fonte do syslog()

Isto é fornecido porglibcou as implementações libc em outras versões do Unix. Esta chamada basicamente envia sua mensagem para o soquete de domínio syslog unix /dev/log. Este soquete normalmente é criado pelo logger do sistema (por exemplo, rsyslog, syslog-ng, nxlog, etc).

Responder4

Eles são todos daemons syslog, onde rsyslog e syslog-ng são substitutos mais rápidos e com mais recursos para o syslogd tradicional (em sua maioria não mantido). O syslog-ng começou do zero (com um formato de configuração diferente), enquanto o rsyslog era originalmente um fork do syslogd, suportando e estendendo sua sintaxe. Nos últimos anos, o rsyslog também começou a oferecer suporte a um formato de configuração mais recente. Até agora, é realmente difícil comparar os dois sem entrar em detalhes e iniciar guerras violentas.

O Syslog em geral é bastante confuso, pois pode ser várias coisas. Eu tive uma chance de desambiguar aqui:https://sematext.com/blog/2017/01/30/what-is-syslog-daemons-message-formats-and-protocols/

informação relacionada