Há rsyslogapenas uma camada de abstração em cima do buffer de anel do kernel? Ou o buffer do anel do kernel é sua própria entidade e rsysloga interação é como a de qualquer outro "aplicativo"?
Há rsyslogapenas uma camada de abstração em cima do buffer de anel do kernel? Ou o buffer do anel do kernel é sua própria entidade e rsysloga interação é como a de qualquer outro "aplicativo"?
Respostas:
Embora várias partes da documentação (inclusive man dmesg) se refiram a ele como "o buffer de anel do kernel", pode ser melhor chamá-lo como o buffer de log do kernel, pois "buffer do anel" é um termo genérico e acredito que o kernel também usa o anel buffers para várias coisas completamente não relacionadas. O "buffer de impressão" também é apropriado, após a função de espaço do kernel usada para gravar nele.
De qualquer forma, ele reside no espaço do kernel e uma interface de leitura é fornecida via /proc/kmsge uma interface de leitura e gravação via /dev/kmsg. Portanto, se como root você for:
echo "Hello Kernel!" > /dev/ksmg
No entanto, você verá isso cat /dev/ksmg(você provavelmente não verá isso aparecer em nenhum registro) - veja o comentário de Matthew Phipps abaixo por um possível motivo). Essa é uma saída bruta e não se parece exatamente com as coisas que você vê dos dmesgou nos seus arquivos de log. Há um pouco de documentação sobre isso fornecida com a fonte do kernel. A leitura de /proc/kmsg(não o mesmo que /dev/ksmg) é recomendada contra se (r) syslog estiver em execução.
Rsyslog é uma das várias implementações de syslog comumente usadas no linux. Esses são aplicativos da terra do usuário que originam mensagens do kernel /proc/ksmge mensagens de outros processos da terra do usuário por meio de um soquete /dev/log.