Sumário
- Por que o Uptime Kuma não consegue ligar para você sozinho
- O que você precisa
- Passo 1 — Crie um canal que liga para você
- Passo 2 — Adicione o Echobell como notificação de webhook
- Passo 3 — Envie um payload que dá para filtrar
- Passo 4 — Impeça que alertas de recuperação liguem para você
- Passo 5 — Ajuste o monitor para ele não dar alarme falso
- Tocar apenas fora do horário de trabalho
- Compartilhando o alerta com seu time
- O que esta configuração não oferece
- Solução de problemas
- Perguntas frequentes
- O Uptime Kuma consegue fazer uma chamada telefônica nativamente?
- Isso funciona com um Uptime Kuma auto-hospedado atrás de um firewall?
- A chamada telefônica atravessa o Não perturbe?
- Como paro de receber chamadas quando o serviço se recupera?
- Várias pessoas podem ser chamadas pelo mesmo monitor?
- Conclusão
- Relacionados
O Uptime Kuma tem mais de 90 provedores de notificação, mas nenhum deles faz seu celular tocar. Para receber uma chamada quando um monitor cai, envie a notificação Webhook do Uptime Kuma para um canal do Echobell com o tipo Chamada. Este guia mostra o corpo personalizado exato, como separar os alertas de queda dos de recuperação e os dois erros que quebram a configuração em silêncio.
O Uptime Kuma é o monitor de uptime auto-hospedado mais popular que existe — cerca de 90.000 estrelas no GitHub, com a versão 2.5.0 lançada em agosto de 2026. Ele verifica endpoints HTTP, portas TCP, registros DNS, contêineres Docker e mais, e é realmente muito bom em detectar quedas.
Onde ele deixa você exposto é na última milha: levar o alerta até uma pessoa que está dormindo.
Por que o Uptime Kuma não consegue ligar para você sozinho
A lista de notificações do Uptime Kuma é longa — Telegram, Discord, Slack, e-mail, Gotify, ntfy e dezenas de outras — mas todas entregam uma mensagem. Mensagens dependem da chave de silenciar do seu celular, do Não perturbe e dos modos Foco do iOS. Às 3 da manhã isso significa que o alerta chega e nada acontece.
Não existe um provedor nativo do tipo "me ligue". As opções em que as pessoas costumam parar são:
- Twilio — dá para construir chamadas de voz em cima dele, mas o provedor Twilio do Uptime Kuma envia SMS. Voz significa escrever um serviço intermediário, comprar um número e pagar por chamada.
- PagerDuty, Zenduty, Spike.sh, Splunk On-Call — esses realmente fazem chamadas, e são plataformas completas de gestão de incidentes, com preço por usuário à altura. A resposta certa se você precisa de rodízios e políticas de escalonamento; exagero se você só precisa que um celular toque.
- Gateways de SMS — um SMS continua chegando como mensagem, e no iOS uma mensagem de texto só atravessa o modo Foco se o remetente estiver na sua lista de permissões.
Um pedido de recurso para notificações por chamada VoIP está aberto há um bom tempo no repositório do Uptime Kuma. Enquanto isso, o provedor genérico Webhook é a saída — ele consegue enviar qualquer coisa para qualquer URL, que é tudo de que você precisa.
O que você precisa
- Uma instância do Uptime Kuma em execução (este guia foi escrito para a 2.x; o corpo personalizado do webhook também funciona na 1.23+)
- Echobell instalado (App Store / Google Play)
- Cinco minutos
Sua instância do Uptime Kuma precisa de HTTPS de saída para hook.echobell.one. Ela não precisa ser acessível pela internet — este é um webhook de saída, então um monitor rodando em um servidor doméstico ou dentro de uma rede privada funciona sem problemas.
Passo 1 — Crie um canal que liga para você
No Echobell, crie um canal com um nome como Production Down. Defina o tipo de notificação da inscrição como Chamada. É essa a configuração que importa: alertas em chamada chegam como uma tela de ligação recebida e tocam atravessando o modo Foco do iOS e o Não perturbe, o que uma notificação push não faz.
Defina os modelos como:
Título: 🔴 {{monitor}} está fora do ar
Corpo: {{message}}
Destino: {{target}}
Depois copie a URL do webhook do canal. Ela se parece com isto:
https://hook.echobell.one/t/<channel-token>
Trate essa URL como um segredo — quem a tiver pode fazer seu celular tocar.
Passo 2 — Adicione o Echobell como notificação de webhook
No Uptime Kuma, vá em Settings → Notifications → Setup Notification e preencha:
| Campo | Valor |
|---|---|
| Notification Type | Webhook |
| Friendly Name | Echobell — Down |
| Post URL | a URL do webhook do seu canal no Echobell |
| Request Body | Custom Body |
Deixe Additional Headers em branco.
Passo 3 — Envie um payload que dá para filtrar
Este é o passo que a maioria dos guias pula, e é ele que faz a diferença entre um sistema de alertas e uma máquina de barulho.
Cole isto em Custom Body:
{
"monitor": "{{name}}",
"target": "{{hostnameOrURL}}",
"message": "{{ msg | strip_newlines }}",
"up": "{{ heartbeatJSON['status'] }}"
}
O Uptime Kuma renderiza corpos personalizados com Liquid e expõe estas variáveis:
| Variável | O que contém |
|---|---|
{{name}} | O nome amigável do monitor |
{{hostnameOrURL}} | O hostname ou a URL que está sendo verificada |
{{status}} | 🔴 Down, ✅ Up ou ⚠️ Test |
{{msg}} | O motivo em texto legível, por exemplo connect ECONNREFUSED 10.0.0.4:443 |
{{ monitorJSON['...'] }} | O objeto monitor completo |
{{ heartbeatJSON['...'] }} | O objeto heartbeat completo |
Dois detalhes desse payload são intencionais:
strip_newlines em msg. A mensagem do Uptime Kuma costuma conter quebras de linha, e uma quebra de linha crua dentro de uma string JSON é JSON inválido. Sem o filtro, seu webhook falha de forma intermitente — só nos erros cujo texto por acaso quebra a linha. Se o seu Uptime Kuma for novo o bastante para ter o filtro json do Liquid, "message": {{ msg | json }} (atenção: sem as aspas ao redor) é ainda mais seguro, porque também escapa as aspas.
heartbeatJSON['status'] em vez de {{status}}. A variável status é renderizada como texto com emoji, o que é ruim de comparar. O status do heartbeat é um número simples:
0— fora do ar1— no ar2— pendente3— manutenção
As aspas ("up": "{{ ... }}") também importam, e o Passo 5 explica por quê.
Passo 4 — Impeça que alertas de recuperação liguem para você
Uma única notificação do Uptime Kuma dispara tanto na queda quanto na recuperação. Sem ajuste, esta configuração liga para você quando o serviço quebra e liga de novo quando ele se conserta sozinho. A segunda chamada é a que ensina as pessoas a ignorar a primeira.
Separe as duas usando as condições do Echobell, avaliadas antes de qualquer entrega:
No canal Production Down (tipo de notificação Chamada), defina a condição como:
up == "0"
Crie um segundo canal chamado Production Recovered, defina o tipo de notificação dele como Normal e dê a ele a condição:
up == "1"
Com os modelos:
Título: ✅ {{monitor}} voltou ao ar
Corpo: {{message}}
Depois adicione uma segunda notificação de webhook no Uptime Kuma — mesmo corpo personalizado, mesmos monitores, mas apontando para a URL do canal de recuperação. As duas notificações recebem todos os eventos; cada canal descarta a metade que não lhe interessa.
O resultado: a queda toca o telefone, a recuperação chega como um push silencioso que você lê de manhã.
Passo 5 — Ajuste o monitor para ele não dar alarme falso
Uma chamada que acaba sendo uma oscilação de rede de dois segundos é pior do que chamada nenhuma, porque a próxima também vai ser ignorada. Três configurações do Uptime Kuma resolvem a maior parte disso, todas no próprio monitor:
- Retries — defina como
2ou3. O Uptime Kuma só marca o monitor como fora do ar depois desse número de falhas consecutivas, o que filtra pacotes perdidos isolados. - Heartbeat Retry Interval — com que rapidez ele verifica de novo enquanto está falhando. De 20 a 30 segundos é um equilíbrio razoável; combinado com 3 tentativas, você detecta uma queda real em cerca de um minuto.
- Resend Notification if Down X times consecutively — defina algo como
10e o Uptime Kuma liga de novo se o serviço continuar fora do ar depois de mais dez verificações. É uma política de escalonamento tosca, e funciona.
Se você quiser que uma chamada não atendida continue tentando imediatamente em vez de esperar o reenvio, ative Repetir chamadas com falha nas configurações do app Echobell.
Tocar apenas fora do horário de trabalho
Durante o expediente você provavelmente já está de olho em um dashboard, e um celular tocando é uma interrupção de que você não precisava. As variáveis de horário do sistema do Echobell (todas em UTC) fazem um mesmo canal se comportar de forma diferente conforme a hora:
up == "0" && (hour >= 17 || hour < 9)
Essa condição liga para você apenas fora do intervalo das 09:00 às 17:00 UTC. Aponte um segundo canal, do tipo Normal, para a condição inversa e receba pushes durante o dia:
up == "0" && hour >= 9 && hour < 17
Lembre-se de compensar o seu próprio fuso horário — essas variáveis são sempre calculadas em UTC. Há um tratamento mais completo em notificações por janela de tempo com condições em UTC.
Compartilhando o alerta com seu time
Um canal do Echobell pode ser compartilhado com colegas por um link de inscrição, e cada inscrito escolhe o próprio tipo de notificação. Assim, o mesmo monitor pode fazer tocar o celular de quem está de plantão e chegar como push normal para todo o resto — sem preço por usuário e sem regras de roteamento separadas no Uptime Kuma.
Isso também combina com a postura de privacidade que levou você a hospedar tudo por conta própria: seus monitores continuam na sua infraestrutura, e o Echobell mantém o conteúdo e o histórico das notificações no dispositivo, e não nos servidores dele.
O que esta configuração não oferece
Ser honesto sobre o limite evita uma migração ruim mais tarde. O Echobell é uma camada de entrega, não uma plataforma de gestão de incidentes. Ele não tem:
- Escalas de plantão nem passagens de turno follow-the-sun
- Árvores de escalonamento que acionam uma segunda pessoa automaticamente
- Linhas do tempo de incidentes, controle de confirmação de leitura ou ferramentas de post-mortem
Se o seu time precisa disso, você precisa de PagerDuty, Grafana Cloud IRM ou algo parecido. O que esta configuração cobre é a lacuna específica que o Uptime Kuma deixa aberta: transformar uma queda detectada em um telefone que realmente toca. Para quem opera sozinho, times pequenos e homelabs, isso costuma ser a exigência inteira.
Solução de problemas
O botão Test não faz nada. Isso é esperado com o payload acima, e confunde todo mundo na primeira vez. Quando você clica em Test, o Uptime Kuma não tem nenhum heartbeat para renderizar, então {{ heartbeatJSON['status'] }} vira uma string vazia e nenhuma das condições é atendida. Para testar de verdade, crie um monitor TCP descartável apontando para uma porta em que nada está escutando (127.0.0.1:9) e deixe ele falhar.
O webhook falha de forma intermitente. Quase sempre é o problema da quebra de linha — verifique se msg passa por strip_newlines. Só quebra nas mensagens de erro que por acaso contêm uma quebra de linha, e é por isso que parece aleatório.
O Echobell responde success: false com HTTP 200. O token do canal está errado ou o canal foi excluído. O Echobell responde 200 para um token desconhecido mas de tamanho válido, então verifique o corpo JSON, não o código de status.
HTTP 405. O canal está com POST Only ativado e algo enviou um GET. O Uptime Kuma usa POST, então isso normalmente significa que você testou a URL no navegador.
Nada toca, mas a notificação chega. O tipo de notificação da inscrição está como Normal ou Urgente, não Chamada. O tipo de notificação é escolhido por inscrito, então verifique no aparelho que não está tocando.
Perguntas frequentes
O Uptime Kuma consegue fazer uma chamada telefônica nativamente?
Não. O Uptime Kuma tem mais de 90 provedores de notificação, mas todos entregam mensagens. Chamadas telefônicas exigem encaminhar um webhook para um serviço capaz de fazê-las, como o Echobell, ou usar uma plataforma paga de gestão de incidentes.
Isso funciona com um Uptime Kuma auto-hospedado atrás de um firewall?
Sim. O webhook é uma requisição HTTPS de saída da sua instância do Uptime Kuma, então ela só precisa alcançar hook.echobell.one. Sua instância não precisa de endereço público.
A chamada telefônica atravessa o Não perturbe?
Sim. O tipo de notificação Chamada do Echobell aparece como uma ligação recebida, que toca atravessando o modo Foco do iOS e o Não perturbe. Veja como contornar o modo Foco do iOS para alertas críticos para os detalhes e as configurações envolvidas.
Como paro de receber chamadas quando o serviço se recupera?
Use dois canais com condições — up == "0" para o canal de chamada e up == "1" para um canal de recuperação com prioridade normal — e aponte uma notificação de webhook para cada um. O Passo 4 acima mostra o passo a passo.
Várias pessoas podem ser chamadas pelo mesmo monitor?
Sim. Compartilhe o canal com seus colegas e cada inscrito escolhe o próprio tipo de notificação. Todo mundo inscrito no canal de chamada recebe a ligação.
Conclusão
A configuração é um webhook, um corpo personalizado e duas condições. Ela deixa seus monitores, sua lógica de tentativas e suas páginas de status do Uptime Kuma exatamente como estão, e fecha a distância entre "o monitor percebeu" e "uma pessoa percebeu".
Baixe o Echobell para iPhone ou pegue no Google Play, depois conecte primeiro um monitor não crítico e deixe ele falhar de propósito. Confie no caminho antes de depender dele.