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 Syslog
projeto foi o primeiro projeto. Tudo começou em 1980. É o projeto raiz do Syslog
protocolo. 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-ng
em 1998. Ele estende syslog
o 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 Rsyslog
em 2004. Ele estende syslog
o 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 chamadosysklogd
) é 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"sysklogd
onde o arquivo de configuração permanece o mesmo (você pode copiar umsyslog.conf
arquivo diretamentersyslog.conf
e 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
rsyslog
sejamsyslog-ng
diferentes.
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/