Introdução

O Uptime Kuma é uma ferramenta de monitorização de infraestrutura self-hosted, gratuita e de código aberto, que se tornou numa alternativa popular ao Uptime Robot e a outros serviços comerciais de monitorização. Para pequenas e médias empresas (PME) portuguesas que precisam de saber se os seus sites, APIs e serviços estão online — sem pagar subscrições mensais nem enviar dados para terceiros — o Uptime Kuma oferece uma solução leve, flexível e surpreendentemente completa.

Lançado em 2021 por Louis Lam, o projeto conta com mais de 60 000 estrelas no GitHub e uma comunidade ativa. A aplicação corre num único contentor Docker, consome poucos recursos e pode ser instalada num VPS modesto com 512 MB de RAM. A interface web é limpa, responsiva e permite configurar monitors em segundos.

Principais vantagens para PME:

  • 100% gratuito e open-source (MIT License);
  • Dados ficam na sua infraestrutura — sem dependência de terceiros;
  • Interface web intuitiva, sem necessidade de conhecimentos avançados;
  • Notificações multi-canal: Telegram, Discord, Slack, email, webhook e mais;
  • Status pages públicas personalizáveis para mostrar aos clientes;
  • Suporte para mais de 40 tipos de monitor diferentes.

Instalar via Docker

A forma mais simples e recomendada de instalar o Uptime Kuma é através do Docker. O processo resume-se a dois comandos. Antes de começar, confirme que tem o Docker instalado no servidor:

docker --version
docker compose version

Se ambos os comandos retornarem versões, está pronto. Crie o contentor do Uptime Kuma com o seguinte comando:

docker run -d \
  --restart=always \
  -p 3001:3001 \
  -v uptime-kuma:/app/data \
  --name uptime-kuma \
  louislam/uptime-kuma:1

Este comando faz o seguinte:

  • -d — corre o contentor em background (detached);
  • --restart=always — reinicia automaticamente após reboots ou crashes;
  • -p 3001:3001 — expõe a porta 3001 do contentor no host;
  • -v uptime-kuma:/app/data — persiste os dados num volume Docker;
  • --name uptime-kuma — atribui um nome fixo ao contentor para fácil gestão;
  • louislam/uptime-kuma:1 — usa a última versão estável da branch 1.x.

Aceda a http://seu-servidor:3001 no browser para concluir a configuração inicial. O primeiro acesso pede a criação de uma conta de administrador. A partir daí, pode começar a adicionar monitors imediatamente.

💡 Dica: Para produção, recomenda-se colocar um reverse proxy (Nginx ou Caddy) à frente do Uptime Kuma com HTTPS/TLS. Isto garante ligações seguras e permite usar um domínio próprio em vez da porta 3001.

Tipos de Monitor

O Uptime Kuma suporta mais de 40 tipos de monitor, cobrindo praticamente qualquer cenário de infraestrutura. Eis os mais relevantes para PME:

  • HTTP(s) — verifica se um URL responde com um código de estado esperado (ex.: 200). Ideal para sites e landing pages;
  • Keyword (HTTP) — além de verificar o código HTTP, procura uma palavra-chave específica no conteúdo da página. Útil para confirmar que uma página carrega conteúdo correto, não apenas que responde;
  • TCP Port — verifica se uma porta TCP específica está aberta e a aceitar ligações. Adequado para bases de dados, SSH, e serviços personalizados;
  • Ping — executa ICMP ping para medir latência e disponibilidade de um host. Simples mas eficaz para infraestrutura de rede;
  • DNS — monitoriza registos DNS e verifica se um domínio resolve para o IP esperado. Importante para detetar ataques de DNS hijacking ou misconfiguration;
  • Push — monitor passivo que espera receber um ping HTTP de um script ou cron job. Excelente para monitorizar backups, tarefas agendadas e jobs de CI/CD;
  • Docker Container — verifica o estado de um contentor Docker via API. Perfeito para quem já corre serviços em Docker;
  • gRPC — monitoriza endpoints gRPC, relevante para microsserviços modernos;
  • PostgreSQL / MySQL / MariaDB / Redis / MongoDB — monitoriza bases de dados verificando conectividade e tempo de resposta;
  • Steam Game Server — verifica servidores de jogos Steam (nicho, mas disponível).

Cada monitor permite configurar intervalo de verificação (de 20 segundos a várias horas), timeout, regras de retry, e critérios de sucesso personalizados. Pode agrupar monitors em pastas e aplicar configurações herdadas.

Exemplo prático: uma PME com um site WordPress, uma API REST e uma base de dados PostgreSQL poderia configurar três monitors:

  1. HTTP(s) para https://empresa.pt — intervalo 60s;
  2. HTTP(s) para https://api.empresa.pt/health — intervalo 30s, espera código 200;
  3. TCP Port para db.empresa.pt:5432 — intervalo 120s.

Notificações

Um sistema de monitorização só é útil se alertar quando algo falha. O Uptime Kuma integra com dezenas de canais de notificação, permitindo que as equipas recebam alertas em tempo real através do canal que preferirem.

Canais suportados (seleção):

  • Telegram — bot com token e chat ID. Muito popular em Portugal pela adoção generalizada;
  • Discord — webhook de canal. Ideal para equipas técnicas;
  • Slack — webhook de canal. Comum em ambientes corporativos;
  • Email (SMTP) — via servidor SMTP próprio ou de terceiros (Gmail, Microsoft 365, Mailgun);
  • Webhook genérico — envia JSON POST para qualquer URL. Permite integrar com sistemas internos;
  • Microsoft Teams — via webhook de canal Teams;
  • Pushover / Pushbullet / Gotify — notificações push para dispositivos móveis;
  • SMS (via Twilio, Vonage, 46elks) — para alertas críticos que não podem ser ignorados;
  • Signal — via Signal CLI (requer configuração adicional);
  • Home Assistant — integração com automação doméstica.

Para configurar uma notificação, clique em Settings → Notifications → Setup Notification, selecione o tipo, preencha as credenciais e teste a ligação. Depois, associe a notificação a um ou mais monitors. Pode configurar regras diferentes para diferentes monitors — por exemplo, alertar via SMS para o site principal e via Telegram para serviços internos.

💡 Boa prática: Configure pelo menos dois canais de notificação — um principal (ex.: Telegram) e um de backup (ex.: email). Se o Telegram tiver uma interrupção, o email garante que o alerta chega. Ative também a opção Heartbeat (envio periódico de confirmação de que o Uptime Kuma está a correr) para garantir que o próprio monitor não parou silenciosamente.

Status Pages

As Status Pages são uma das funcionalidades mais valoriosas do Uptime Kuma. Permitem criar uma página pública (ou protegida por password) que mostra o estado de todos os monitors em tempo real, com histórico de incidentes e uptime percentual.

Para uma PME que presta serviços online, ter uma status page pública transmite transparência e profissionalismo. Os clientes podem verificar o estado dos serviços sem precisar de contactar o suporte, e em caso de incidente, a página serve como comunicação oficial.

Funcionalidades das Status Pages:

  • Design personalizável com logo, cores e texto introdutório;
  • Seleção de quais monitors mostrar (pode omitir serviços internos);
  • URL personalizado (ex.: status.empresa.pt) configurado via reverse proxy;
  • Histórico de incidentes com descrição e resolução;
  • Percentual de uptime por monitor (diário, semanal, mensal, anual);
  • Modo de manutenção agendada com aviso prévio;
  • Suporte para múltiplas status pages (uma por cliente ou por serviço);
  • Suporte para múltiplos idiomas, incluindo português.

Como criar uma Status Page:

  1. No painel do Uptime Kuma, clique em Status Pages no menu lateral;
  2. Clique em New Status Page e dê um nome (ex.: Estado dos Serviços);
  3. Defina um slug para o URL (ex.: estado);
  4. Adicione um logo e texto descritivo opcional;
  5. Selecione os monitors a incluir e arrume-os por grupos se necessário;
  6. Guarde e partilhe o link: http://seu-servidor:3001/status/estado.

Para um domínio próprio como status.empresa.pt, configure o reverse proxy (Nginx/Caddy) para apontar esse subdomínio para o Uptime Kuma. Os clientes acedem a um URL profissional e limpo.

Erros Comuns

Durante a instalação e utilização do Uptime Kuma, podem surgir alguns problemas. A tabela seguinte resume os erros mais frequentes, a causa provável e a solução:

Erro / Sintoma Causa Provável Solução
Contentor não arranca após reboot Política de restart mal configurada ou Docker daemon sem enable Confirmar --restart=always no comando e ativar Docker com sudo systemctl enable docker
Página não carrega na porta 3001 Firewall a bloquear a porta ou porta em uso por outro serviço Abrir a porta com ufw allow 3001 ou verificar conflitos com ss -tlnp | grep 3001
Notificação Telegram não chega Bot token incorreto ou chat ID errado (negativo para grupos) Verificar token em @BotFather; para grupos, usar chat ID negativo; testar com curl na API do Telegram
Monitor HTTP mostra Down sem motivo Certificado TLS expirado, redirecionamento não seguido ou keyword ausente Ativar Ignore TLS Errors se for self-signed; ativar Max Redirects; verificar keyword esperada na página
Status page não atualiza Cache do browser ou reverse proxy a servir conteúdo antigo Forçar refresh (Ctrl+F5); desativar cache no Nginx para a rota /status/
Dados perdidos após atualização Volume Docker não montado corretamente ou contentor recriado sem -v Confirmar volume com docker volume inspect uptime-kuma; fazer backup antes de atualizar com docker cp
CPU/RAM elevados Demasiados monitors com intervalo curto (ex.: 20s para centenas de hosts) Aumentar intervalo para monitors menos críticos; agrupar monitors; usar um VPS com mais recursos se necessário
Erro Cannot connect to the database Volume corrompido ou permissões incorretas no contentor Parar contentor, verificar permissões em /app/data; se corrompido, restaurar de backup ou recriar volume

Na maioria dos casos, os problemas resolvem-se com uma verificação rápida da configuração do Docker, das regras de firewall ou das credenciais de notificação. Para questões mais complexas, a página de issues do GitHub é um excelente recurso, com milhares de casos já documentados e resolvidos pela comunidade.

O Uptime Kuma representa uma solução de monitorização madura, fiável e sem custo de licenciamento, ideal para PME que pretendem ter visibilidade sobre a sua infraestrutura sem depender de serviços externos. Com instalação em minutos, mais de 40 tipos de monitor, notificações multi-canal e status pages profissionais, é uma das melhores ferramentas self-hosted disponíveis atualmente.