Log circular no linux [duplicado]

3

No FreeBSD, existe um utilitário para suportar arquivos de log circulares chamados entupimento .

Isso é muito interessante para evitar a manutenção dos logs de alguns serviços (fora do systemd e do journald deles).

Existe alguma alternativa para fazer o mesmo no linux e / ou com o rsyslog?

    
por Rfraile 18.09.2017 / 11:30

1 resposta

4

Existem ferramentas para fazer o mesmo em ambos FreeBSD e Linux, além de outros sistemas operacionais.

Fazendo registros estritamente dimensionados com rotação automática

As ferramentas a seguir mantêm conjuntos de arquivos de log estritamente dimensionados, girados automaticamente, rotacionáveis sob demanda, em um diretório especificado.

O uso é muito simples: Envie a saída padrão e o erro padrão de um processo a ser registrado em um canal para sua entrada padrão, da maneira normal:

./thing-to-be-logged 2>&1 | cyclog logs/

cyclog adiciona timestamps TAI64N às linhas como padrão. Para processamento sem timestamp quando algo já estiver com registro de data e hora, use um dos cyclog s, multilog ou s6-log , em cada um dos quais a adição de registro de data e hora é uma opção não padrão.

Substituindo pelo syslog

O que você aponta para modificar o FreeBSD svlogd em si, com um patch datado de 2001 que pode não se aplicar de forma limpa hoje em dia, para ter outro mecanismo de arquivo de saída.

Uma abordagem alternativa é simplesmente substituir completamente o servidor syslog, além de configurar mais serviços para simplesmente registrar um erro padrão (sob gerenciamento de serviço que canaliza erro padrão para os serviços de registro) em vez de usar syslog em primeiro lugar.

Por exemplo: O conjunto de ferramentas nosh fornece vários substitutos, que dividem o trabalho do syslog e geram saída adequada para alimentação através da entrada padrão de uma das ferramentas de registro acima mencionadas:

  • um serviço syslog que executa um programa simples chamado klogd para ler de klog-read e simplesmente escreva esse fluxo de log em seu erro padrão.
  • um serviço /proc/kmsg que executa um programa chamado local-syslog-read para ler datagramas de syslog-read ( /dev/log nos BSDs) e simplesmente escreva esse fluxo de log em seu erro padrão.
  • um serviço /run/log que executa o programa udp-syslog-read mencionado acima para ouvir a porta syslog do UDP e simplesmente escreva esse fluxo de log em seu erro padrão.
  • um serviço syslog-read que executa o programa local-priv-syslog-read mencionado acima para ler datagramas de syslog-read e simplesmente escreva esse fluxo de log em seu erro padrão.

Leitura adicional

por 18.09.2017 / 13:03