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

47

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

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

Existe alguma diferença entre o rsyslog e o rsyslogd?

    
por StackUser 15.05.2015 / 16:18

4 respostas

43

Basicamente, eles são todos iguais, da forma que todos permitem o registro de dados de diferentes tipos de sistemas em um repositório central.

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

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

Em seguida veio syslog-ng em 1998. Ele estende o protocolo básico syslog com novos recursos como:

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

Em seguida veio Rsyslog em 2004. Ele estende o protocolo syslog com novos recursos como:

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

Digamos que hoje eles são três projetos simultâneos que cresceram separadamente em versões, mas também cresceram em paralelo em relação ao que os vizinhos estavam fazendo.

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 configuração e configuração fácil e abrangente.

    
por 15.05.2015 / 17:35
28

são três tipos diferentes de gerenciadores de log: ele permite que o sistema colete filtros e transmita / armazene registros.

  • Syslog (daemon também chamado de sysklogd ) é o LM padrão nas distribuições comuns do Linux. Leve, mas não muito flexível, você pode redirecionar o fluxo de log classificado por facilidade e gravidade para arquivos e através da rede (TCP, UDP).
  • rsyslog é uma versão "avançada" de sysklogd , em que o arquivo de configuração permanece o mesmo (você pode copiar um arquivo syslog.conf diretamente para rsyslog.conf e ele funciona); mas você tem um monte de novidades legais:

    • 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 de 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 uma mensagem após uma ou mais regras Visite o link que é realmente muito bom
  • O syslog-ng é "Next-Gen". Acho que é a melhor maneira de gerenciar logs: tudo é objeto (origem, destino, filtro e a regra de encaminhamento) e a sintaxe é clara. Eu duvido em termos de funcionalidade que rsyslog e syslog-ng são diferentes.

por 15.05.2015 / 17:21
7

From where can I get the source code for syslog()

Isso é fornecido por glibc ou pelas implementações da libc em outros tipos de Unix. Essa chamada basicamente envia sua mensagem para o soquete de domínio unix syslog / dev / log. Esse soquete é normalmente criado pelo criador de logs do sistema (por exemplo, rsyslog, syslog-ng, nxlog, etc).

    
por 07.06.2015 / 17:17
1

Eles são todos daemons do syslog, onde o rsyslog e o syslog-ng são substituições mais rápidas e mais ricas em recursos para o syslogd tradicional (principalmente não-mantido). O syslog-ng começou do zero (com um formato de configuração diferente) enquanto o rsyslog era originalmente uma bifurcação do syslogd, suportando e estendendo sua sintaxe. Nos últimos anos, o rsyslog começou a suportar também um novo formato de configuração. Até agora, é realmente difícil comparar os dois sem entrar nos detalhes específicos e começar as guerras pelas chamas.

O syslog em geral é bastante confuso, pois pode ser várias coisas. Eu tive uma chance de desambiguar aqui: link

    
por 26.06.2017 / 12:22