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.
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:
- HTTP(s) para
https://empresa.pt— intervalo 60s; - HTTP(s) para
https://api.empresa.pt/health— intervalo 30s, espera código 200; - 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.
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:
- No painel do Uptime Kuma, clique em Status Pages no menu lateral;
- Clique em New Status Page e dê um nome (ex.: Estado dos Serviços);
- Defina um slug para o URL (ex.:
estado); - Adicione um logo e texto descritivo opcional;
- Selecione os monitors a incluir e arrume-os por grupos se necessário;
- 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.