Práticas recomendadas para a manutenção de logs de erros (sistema, driver de dispositivo e aplicativo)

2

Eu tenho muitos Pandaboards com Ubuntu armhf e um servidor de PC em rede com Wi-Fi. Em cada placa embarcada eu tenho um aplicativo em tempo real rodando constantemente.

Eu não sei como razoavelmente manter os logs, porque preciso monitorar muitas coisas:

  1. Falhas do sistema (sistema de arquivos & superaquecimento & misc)
  2. Falhas de driver de dispositivo (wi-fi e amp; usb)
  3. Paralisações de aplicativos (falhas e intenções)

Idéias que tenho até agora:

  1. Encontre falhas relevantes no sistema filtrando o syslog, por exemplo níveis de severidade 0-3. Como fazer isso?
  2. Problemas de driver de dispositivo também devem ser encontrados no syslog.
  3. Atualmente estou registrando cout e cerr para separar arquivos. Isso não ajuda se o aplicativo falhar. Eu suponho que executar no modo de depuração tenha muito poder de processamento e o sistema não será mais em tempo real.
  4. Em vez de ter a rotação diária de log, eu preferiria ter um syslog para cada vez que o computador fosse inicializado OU até que o log fosse muito grande. Além disso, eu preferiria girar os logs do aplicativo toda vez que o aplicativo for iniciado.
  5. Todos os problemas graves podem ser canalizados para um arquivo facilmente legível pelo servidor.

Todas as ideias para manter eficientemente o registro de erros são bem-vindas. Atualmente, estou usando a biblioteca python Fabric para transferir informações e atualizações de diagnósticos entre o PC servidor e os Pandaboards.

    
por lahjaton_j 26.03.2014 / 08:57

1 resposta

2

O criador de logs do sistema é chamado syslog , embora seu Ubuntu possa ou não estar usando uma variante mais complexa chamada rsyslog . A maneira mais fácil de saber é por meio de ls /etc | grep syslog . Ambos têm seu arquivo de configuração principal e provavelmente também um diretório .d do qual a configuração adicional é fornecida. Você pode alimentar o criador de logs do sistema a partir de um aplicativo (veja, por exemplo, man logger e man 3 syslog ), embora, a menos que você queira muita confusão, isso é melhor reservado para erros significativos.

Existem muitas introduções e tutoriais para o syslog on-line. O Rsyslog se destina a ser compatível com syslog, e a documentação adicional está disponível através do site . A configuração padrão geralmente filtra mensagens em vários arquivos em /var/log com base em facilidade e gravidade . Provavelmente, também há um arquivo que coleta uma cópia de todas as mensagens (por exemplo, /var/log/syslog ) e pode haver outras formas de sobreposição também. O Rsyslog oferece a capacidade adicional de filtrar mensagens com base no conteúdo (assim, por exemplo, você pode corresponder a tags normalmente anexadas a aplicativos específicos).

WRT para registrar a rotação, o aplicativo relevante é logrotate (consulte man logrotate ), que geralmente é executado por cron - não é um daemon. O controle da freqüência, etc., deve ser feito através de sua configuração (geralmente /etc/logrotate.conf , que origina outros arquivos em /etc/logrotate.d ) e do cron. Note que logrotate não usa um arquivo de configuração padrão, então você pode querer ver como ele é invocado no crontab relevante.

    
por 26.03.2014 / 11:20