Como garantir que o syslog capture o log máximo possível antes que o sistema seja desligado repentinamente

0

Observo que syslog file ( /var/log/messages ) não parece capturar o log mais recente possível antes do desligamento abrupto do sistema. (Meu sistema Linux está em execução e, de repente, há uma perda de energia.) Como garantir que syslog capture o máximo de logs possíveis antes do desligamento abrupto?

    
por OpenSourceEnthusiast 18.09.2018 / 08:38

3 respostas

0

Minimize ou desative o cache de write-back e seu tempo limite.

/proc/sys/vm/dirty_background_ratio
dirty_ratio
dirty_expire_centisecs
dirty_writeback_centisecs
    
por 18.09.2018 / 08:52
0

Bem, existem duas maneiras de um sistema ficar inativo.

  1. Desligamento normal: Neste caso, cada processo em execução no sistema tem a chance de gravar alguns registros, liberar os buffers no disco antes de descer. Nesse caso, em /var/log/messages você pode ver

    kernel: Kernel logging (proc) stopped.

    rsyslogd: exiting on signal 15.

  2. Desligamento abrupto: Aqui os aplicativos não terão a chance de gravar logs, filesystem não terá a chance de liberar os dados no disco. Mas se esse é o cenário que você está enfrentando, talvez você queira verificar o hardware do sistema como HDD , SSD and power supply [ for any unwanted fluctuations ] para depurar o problema com eficácia.

Mas como recurso para persistir frequentemente os dados do cache para o disco. Periodicamente, você pode tentar executar o comando sync , que libera os buffers do sistema de arquivos. Para mais checkout man sync

    
por 18.09.2018 / 09:28
0

Observe que, se você estiver usando o formato legado rsyslog no seu /etc/rsyslog.conf com uma linha como

*.=info;...  -/var/log/messages

você pode remover o prefixo - antes do nome do arquivo, e isso fará com que o syslog sincronize o arquivo após cada gravação. Consulte arquivos comuns .

    
por 18.09.2018 / 12:00

Tags