Onde o buffer de anel do kernel está em relação ao rsyslog?

9

rsyslog é apenas uma camada de abstração no topo do buffer de anel do kernel? Ou o buffer de anel do kernel é sua própria entidade e a interação rsyslog s é como a de qualquer outra "aplicação"?

    
por user1529891 29.03.2014 / 00:44

1 resposta

7

Embora várias partes da documentação (incluindo man dmesg ) se refiram a ele como "o buffer de anel do kernel", pode ser melhor se referir a ele como o buffer de log do kernel, já que "buffer de anel" é um termo genérico Acredito que o kernel também usa buffers de anel para várias coisas completamente não relacionadas. O "printk buffer" também é apropriado, depois que 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/kmsg e uma interface de leitura e gravação via /dev/kmsg . Então, se como root você vai:

echo "Hello Kernel!" > /dev/ksmg

Você verá se você, em seguida, cat /dev/ksmg (você provavelmente não verá isso aparecendo em qualquer registro, no entanto - 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ê em dmesg ou em seus arquivos de log. Há um pequeno bit de documentação sobre isso fornecido com o código-fonte do kernel. A leitura de /proc/kmsg (não o mesmo que /dev/ksmg ) é recomendada contra if (r) o syslog está em execução.

O Rsyslog é uma das várias implementações do syslog comumente usadas no linux. Estes são os aplicativos da área de usuário que originam as mensagens do kernel de /proc/ksmg e as mensagens de outros processos do usuário por meio de um soquete, /dev/log .

    
por 29.03.2014 / 01:35