Por uma questão de exaustividade, acrescentarei uma diferença que achei que pode ou não impactar você. O syslog-ng usa fopen enquanto o rsyslog usa fappend. Isso importa se você tiver chattr +aseus arquivos syslog. A maioria das pessoas não faz isso, eu só tinha um caso de uso especial e foi assim que descobri. Eu apenas fiz muita gente se encolher.
Aaron
Respostas:
52
Basicamente, eles são todos iguais, da maneira que permitem o registro de dados de diferentes tipos de sistemas em um 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 para o Syslogprotocolo. No momento, o Syslog é um protocolo muito simples. No começo, ele suporta apenas UDP para transporte, para que não garanta a entrega das mensagens.
O próximo veio syslog-ngem 1998. Estende o syslogprotocolo básico com novos recursos, como:
filtragem baseada em conteúdo
Fazendo logon diretamente em um banco de dados
TCP para transporte
Criptografia TLS
O próximo veio Rsyslogem 2004. Estende o syslogprotocolo com novos recursos, como:
Suporte ao 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 com 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 de que você precisa, além de uma instalação e configuração fáceis e abrangentes.
Para o registro, syslog do OpenBSD pode fazer TCP e TLS (e UDP)
Neil McGuigan
32
estes são três tipos diferentes de gerenciadores de logs: permite que o sistema colete filtros e transmita / armazene logs.
Syslog(daemon também chamado sysklogd) é o LM padrão em distribuições comuns do Linux. Leve, mas não muito flexível, você pode redirecionar o fluxo de logs classificado por facilidade e gravidade para arquivos e pela rede (TCP, UDP).
rsyslogé uma versão "avançada" de sysklogdonde o arquivo de configuração permanece o mesmo (você pode copiar um syslog.confarquivo diretamente rsyslog.confe funcionar); mas você tem muitas novidades interessantes:
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 a mensagem após uma ou mais regras, visite http://www.rsyslog.com, o que é realmente muito bom
O syslog-ng é "Próxima geração". Eu acho que é a melhor maneira de gerenciar logs: tudo é objeto (origem, destino, filtro e a regra de encaminhamento) e a sintaxe é clara. Duvido em termos de funcionalidade que rsysloge syslog-ngsão diferentes.
Eu diria que o syslog-ng e o rsyslog são 'next gen', ou pelo menos a substituição mais recente do syslog mais antigo. Ambos são comparáveis em termos de recursos, mas a sintaxe para ambos é muito diferente. O syslog-ng possui sua própria sintaxe exclusiva, enquanto a sintaxe do rsyslog é mais parecida com a sintaxe mais antiga do syslog.
Stefan Lasiewski
9
E então há journalctl/journald
Mausy5043
9
De onde posso obter o código fonte para syslog ()
Isso é fornecido pelas implementações glibc ou libc em outros tipos de Unix. Essa chamada basicamente envia sua mensagem para o soquete do domínio syslog unix / dev / log. Este soquete é normalmente criado pelo criador de logs do sistema (por exemplo, rsyslog, syslog-ng, nxlog, etc).
Eles são todos os daemons syslog, onde rsyslog e syslog-ng são substituições mais rápidas e mais ricas em recursos para o syslogd tradicional (na maioria das vezes 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 específicos e iniciar guerras de chamas.
chattr +a
seus arquivos syslog. A maioria das pessoas não faz isso, eu só tinha um caso de uso especial e foi assim que descobri. Eu apenas fiz muita gente se encolher.Respostas:
Basicamente, eles são todos iguais, da maneira que permitem o registro de dados de diferentes tipos de sistemas em um repositório central.
Mas são três projetos diferentes, cada projeto tentando melhorar o anterior com mais confiabilidade e funcionalidades.
O
Syslog
projeto foi o primeiro projeto. Tudo começou em 1980. É o projeto raiz para oSyslog
protocolo. No momento, o Syslog é um protocolo muito simples. No começo, ele suporta apenas UDP para transporte, para que não garanta a entrega das mensagens.O próximo veio
syslog-ng
em 1998. Estende osyslog
protocolo básico com novos recursos, como:O próximo veio
Rsyslog
em 2004. Estende osyslog
protocolo com novos recursos, como:Digamos que hoje eles são três projetos simultâneos que cresceram separadamente em versões, mas também cresceram em paralelo com 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 de que você precisa, além de uma instalação e configuração fáceis e abrangentes.fonte
estes são três tipos diferentes de gerenciadores de logs: permite que o sistema colete filtros e transmita / armazene logs.
Syslog
(daemon também chamadosysklogd
) é o LM padrão em distribuições comuns do Linux. Leve, mas não muito flexível, você pode redirecionar o fluxo de logs classificado por facilidade e gravidade para arquivos e pela rede (TCP, UDP).rsyslog
é uma versão "avançada" desysklogd
onde o arquivo de configuração permanece o mesmo (você pode copiar umsyslog.conf
arquivo diretamentersyslog.conf
e funcionar); mas você tem muitas novidades interessantes:O syslog-ng é "Próxima geração". Eu acho que é a melhor maneira de gerenciar logs: tudo é objeto (origem, destino, filtro e a regra de encaminhamento) e a sintaxe é clara. Duvido em termos de funcionalidade que
rsyslog
esyslog-ng
são diferentes.fonte
journalctl
/journald
Isso é fornecido pelas implementações glibc ou libc em outros tipos de Unix. Essa chamada basicamente envia sua mensagem para o soquete do domínio syslog unix / dev / log. Este soquete é normalmente criado pelo criador de logs do sistema (por exemplo, rsyslog, syslog-ng, nxlog, etc).
fonte
Eles são todos os daemons syslog, onde rsyslog e syslog-ng são substituições mais rápidas e mais ricas em recursos para o syslogd tradicional (na maioria das vezes 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 específicos e iniciar guerras de chamas.
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/
fonte