100% CPU VPS Hostinger - Corrigindo alto consumo do rsyslog

    A Hostinger é uma ótima empresa de hospedagem, gosto muito do serviço prestado por ela, mas como toda empresa existem falhas de prestação de serviço e atendimento.

    Sou cliente da empresa desde que eles ofereciam hospedagem gratuita (ainda oferecem, mas com outro nome de empresa). Por eles oferecerem um dos melhores custo benefício, resolvi me engajar no VPS (Virtual Private Server) dele.

    Inicialmente tudo uma maravilha, desde VPS com distribuições básicas até pacotes de distribuições com aplicações específicas para cada necessidade. Eu logicamente escolhi uma específica para minha necessidade, já que já viriam com certas features de segurança que a própria Hostinger acredita ser necessário para manter a segurança dos seus clientes e de sua infraestrutura.

    O problema

    Realmente acredito ter tomado a melhor decisão, porém ao começar usar era comum o servidor passar a consumir 100% da CPU reservada para ele. Eu não faço uso excessivo do servidor e não justificava esse alto consumo.

    Resolvi a primeira vez, mas tive que reinstalar o servidor pois das primeiras vezes eu ainda estava fazendo experimentos de configuração, então toda a correção foi perdida. Então decidi escrever sobre o assunto, para me facilitar a corrigir futuramente e ajudar aos meu leitores, que podem estar passando pelo mesmo problema.

    Identificando a causa

    Ao consultar os processos em execução (através do top), verifiquei que o alto consumo se devia ao rsyslod. Mas não havia alterado nada relativo ao programa, tudo estava como a própria Hostinger havia instalado. Ou seja, não deveria dar erro. Não entrava na minha cabeça que o sistema aplicado pela empresa já viria com falha.

    Analisei os logs do sistemas /var/log/message e encontrei a seguinte mensagem "rsyslogd: imkmsg: error reading kernel log - shutting down: Bad file descriptor.". Esse erro ocorre quando o rsyslogd não tem permissão de leitura do kernel log (/proc/kmsg).

    Assim Foi Feito

    Como queria alterar o menos possível as configurações implantadas pela Hostinger, resolvi por desabilitar o módulo de log do kernel.

  1. Acesse o servidor como root;
  2. Vá até para o caminho /etc;
  3. Abra o arquivo /etc/rsyslog.conf para edição;
  4. Localize module(load="imklog") e comente a linha com # no início;
  5. Salve as alterações;
  6. Mate os processos rsyslog com pkill rsyslog;
  7. Reinicie o serviço rsyslog com service rsyslog restart;

    Lembrando que se você puder fazer o rsyslog rodar como root o problema será sanado e os logs de kernel serão processados. Eu optei por desabilitar, pois é a melhor solução para mim. Contudo, em geral, o melhor é processar todos os logs.




    Limpeza de log

    Devido aos erros causados pela falta de permissão na leitura do log de kernel. É aconselhável fazer uma limpeza nos logs de sistemas:

/var/log/message
e logs rotacionados

/var/log/syslog
e logs rotacionados

/var/log/user.log
e logs rotacionados





Referência:

https://serverfault.com/questions/691048/kernel-log-stays-empty-rsyslogd-imklog-cannot-open-kernel-log-proc-kmsg

Comentários

Postagens mais visitadas