Servidor & DevOps 31 visualizações

Como configurar monitoramento de uptime interno com alertas por e-mail no VPS

Ver no WHMCS

Por que monitorar seu VPS "por dentro" faz toda diferença

Oi! Aqui é a Sensei da GeHost 🧑‍🏫 e hoje eu quero te ensinar uma coisa simples, mas que separa quem "descobre que o site caiu pelo cliente reclamando" de quem já sabe do problema antes de qualquer visitante perceber.

Existem serviços externos de monitoramento (que ficam de fora checando se seu site responde), mas ter também um monitoramento interno — rodando dentro do próprio VPS — é ótimo para acompanhar coisas que só o servidor enxerga de perto: se um serviço local travou, se o site parou de responder na própria máquina, se um processo caiu, etc. E o melhor: ele te avisa por e-mail automaticamente, sem você precisar ficar checando o tempo todo.

O que você vai precisar

  • Acesso via SSH ao seu VPS (com permissão para editar o crontab);
  • Uma conta de e-mail profissional para onde os alertas serão enviados (se você tem hospedagem na GeHost, o e-mail profissional já vem incluso — pode usar uma conta sua mesmo);
  • Um pouquinho de paciência para copiar e colar alguns comandos 😉
Dica da Sensei: se você não tem certeza se seu plano é um VPS com acesso root ou uma hospedagem compartilhada (cPanel), dá uma olhada no painel.gehost.com.br ou fale com o suporte antes de seguir. Este guia é voltado para quem tem acesso root/SSH ao servidor.

Passo 1: Preparar o servidor para enviar e-mails

A maioria dos VPS não vem configurada para enviar e-mail sozinha. Para isso, vamos instalar um utilitário leve chamado msmtp, que funciona como um "carteiro" simples: ele pega o alerta gerado pelo servidor e entrega usando a sua conta de e-mail profissional (via SMTP autenticado).

  1. Conecte no seu VPS via SSH.
  2. Instale o msmtp (em distribuições baseadas em Debian/Ubuntu):

    sudo apt update && sudo apt install msmtp msmtp-mta -y

  3. Crie o arquivo de configuração:

    nano ~/.msmtprc

  4. Cole um modelo assim, substituindo pelos dados da SUA conta de e-mail profissional:
    account default
    host SEU_HOST_SMTP
    port SUA_PORTA_SMTP
    auth on
    user seuemail@seudominio.com.br
    password suasenha
    tls on
    from seuemail@seudominio.com.br

Os dados de host e porta SMTP da sua conta de e-mail você encontra no e-mail de boas-vindas que recebeu, ou pode confirmar com o suporte da GeHost — assim você evita digitar algo errado.

Salve o arquivo e proteja ele (só o dono deve poder ler, já que tem sua senha):

chmod 600 ~/.msmtprc

Passo 2: Testar se o e-mail sai mesmo

Antes de automatizar qualquer coisa, sempre teste manualmente. Rode:

echo "Teste de envio do meu VPS" | msmtp seuemail@seudominio.com.br

Se chegou na sua caixa de entrada, ótimo, está tudo pronto para o próximo passo! Se não chegou, confira novamente host, porta, usuário e senha do arquivo .msmtprc.

Passo 3: Criar o script que verifica se está tudo no ar

Agora vamos criar um script simples que testa se o seu site (ou serviço) está respondendo. Se não estiver, ele dispara o alerta por e-mail.

  1. Crie um arquivo para o script:

    nano ~/verifica_uptime.sh

  2. Cole o conteúdo abaixo (troque https://seudominio.com.br pelo endereço que você quer monitorar):
    #!/bin/bash
    URL="https://seudominio.com.br"
    EMAIL="seuemail@seudominio.com.br"
    
    STATUS=$(curl -s -o /dev/null -w "%{http_code}" "$URL")
    
    if [ "$STATUS" != "200" ]; then
      echo "Alerta: $URL respondeu com status $STATUS em $(date)" | msmtp "$EMAIL"
    fi
  3. Salve e dê permissão de execução:

    chmod +x ~/verifica_uptime.sh

Passo 4: Agendar a verificação automática (cron)

Agora vamos fazer esse script rodar sozinho, de tempos em tempos, usando o agendador cron do próprio Linux.

  1. Abra o editor do crontab:

    crontab -e

  2. No final do arquivo, adicione a linha abaixo (ela roda a checagem a cada 5 minutos):

    */5 * * * * /home/seuusuario/verifica_uptime.sh

  3. Salve e feche o editor. Pronto! O cron vai passar a rodar o script sozinho, no fundo, e só vai te mandar e-mail quando algo estiver errado.
Dica da Sensei: escolha um intervalo que faça sentido pra você. A cada 5 minutos é um bom equilíbrio entre "ser avisado rápido" e "não sobrecarregar o servidor com checagens". Evite algo menor que 1 minuto sem necessidade real.

Passo 5: Simule uma queda para confirmar que o alerta funciona

De nada adianta configurar um alarme e nunca testar se ele toca! Troque temporariamente a URL do script para um endereço que não existe (ex.: https://isso-nao-existe-123.com), rode o script manualmente com ./verifica_uptime.sh e veja se o e-mail de alerta chega. Depois, volte a URL correta no script.

Boas práticas para não se afogar em alertas

  • Monitore o que realmente importa: seu site principal, uma API crítica, um serviço específico — evite monitorar tudo de uma vez no começo.
  • Guarde uma cópia do script e do .msmtprc em um lugar seguro (fora do próprio VPS), caso precise reconfigurar tudo em outro servidor um dia.
  • Revise o e-mail de destino periodicamente — de nada adianta o alerta funcionar se ninguém estiver mais checando aquela caixa de entrada.

Quando chamar o suporte

Se você seguiu os passos e o e-mail simplesmente não sai (mesmo com os dados corretos), ou se tiver dúvida sobre os dados de SMTP da sua conta de e-mail profissional, é só acionar o suporte da GeHost pelo painel.gehost.com.br. A gente te ajuda a destravar essa parte. 💛

Precisa de Ajuda?

Nossa equipe está pronta para resolver suas dúvidas.