Gostaria de saber se systemd-journald é uma nova implementação do protocolo syslog, ou melhor, ele usa implementações syslog, como rsyslog, syslog-ng
Pesquisei um pouco no Google, mas não achei nada convincente.
syslog
systemd-journald
sebelk
fonte
fonte
Respostas:
No que diz respeito aos protocolos,
systemd-journald
…/run/systemd/journal/stdout
. O systemd conecta as saídas e erros padrão brutos dos serviços (que foram padronizados ou que possuem explicitamenteStandardOutput=journal
/StandardError=journal
) nesse soquete. Assim, ele recebe o protocolo de registros de formato livre de comprimento variável terminados com alimentações de linha./run/systemd/journal/dev-log
, que é simbolicamente vinculado/dev/log
. Isso recebe o protocolo que asyslog()
função de biblioteca da biblioteca GNU C, vinculada aos aplicativos, fala./run/systemd/journal/syslog
. Isso também recebe o protocolo que asyslog()
função de biblioteca na biblioteca GNU C fala (emborasystemd-journald
na verdade use outra biblioteca e outra função para falar)./dev/kmsg
. Isso recebe o protocolo que o kernel Linux fala, que é um protocolo de registros de tamanho variável, em grande parte de formato livre, terminados com feeds de linha./run/systemd/journal/socket
. Isso é análogo ao caso da biblioteca GNU C, em que os aplicativos se vinculam a uma biblioteca que fala um determinado protocolo para esse soquete; exceto que a função ésd_journal_sendv()
, é em uma biblioteca C do systemd que os aplicativos se vinculam e o protocolo não é padronizado, mas é um protocolo somente do sistema que compreende uma matriz de pares chave = valor e, opcionalmente, um descritor de arquivo legível em cada datagrama .O protocolo falado pela
syslog()
função na biblioteca GNU C não é o RFC 5424 nem o RFC 3164 e é efetivamente seu próprio padrão de fato. Não é o RFC 5424 porque não possui a quantidade correta de espaços em branco e os traços que designam campos opcionais com valores NIL. Não é o RFC 3164 porque possui umPROCID
campo em vez de aHOSTNAME
.Há alguns anos, seu sistema operacional systemd teria:
systemd-journald
fazendo todas as opções acima (e algumas coisas que são irrelevantes quando se trata de protocolos ) e sendo o servidor com o qual a biblioteca GNU C e a biblioteca C systemd conversam usando seus respectivos protocolosxinetd
/inetd
-style quando algo tenta enviar mensagens para/run/systemd/journal/syslog
e receber o soquete como um descritor de arquivo aberto ou como um serviço direto configurado para abrir e ouvir/run/systemd/journal/syslog
com ele (equivalente aoimuxsock
módulo rsyslog) ; e falando o protocolo da biblioteca GNU CAtualmente, seu sistema operacional systemd possui:
systemd-journald
novamente fazendo tudo isso e sendo o servidor com o qual a biblioteca GNU C e a biblioteca systemd C conversamimjournal
móduloLeitura adicional
fonte