Ferramentas de monitorização open source: uptime, páginas de estado, métricas e erros
Em resumo
- A monitorização open source abrange quatro tarefas: verificações de uptime (SolidPing), páginas de estado (Kener), métricas de servidores (Beszel, Komari) e rastreio de erros (GlitchTip, Rustrak).
- As seis usam licenças aprovadas pela OSI: MIT no Kener, Beszel, Komari e GlitchTip, AGPL-3.0 no SolidPing e GPL-3.0 no Rustrak.
- O GlitchTip e o Rustrak aceitam eventos dos SDKs de cliente do Sentry, por isso mudar significa apontar o DSN para a sua própria instância.
- A Nodion também tem verificações de uptime integradas para qualquer URL ou aplicação, com intervalos a partir de 30 segundos e alertas por e-mail, Slack, Discord e outros canais.
A monitorização abrange quatro tarefas diferentes: verificar se o seu site responde, informar os utilizadores sobre o que se passa através de uma página de estado, acompanhar os servidores subjacentes e detetar os erros gerados pelo seu código. Existem ferramentas open source para cada uma destas tarefas, e é possível fazer deploy das seis abaixo com um clique, como instância própria, a partir do catálogo da Nodion.
Há uma regra que se aplica a todas: execute a ferramenta de monitorização num sítio diferente daquele que ela vigia, por exemplo noutra região. Caso contrário, uma única falha deixa indisponíveis tanto a aplicação como a ferramenta que a devia reportar.
Visão geral
| Ferramenta | Tarefa | Licença | Requer |
|---|---|---|---|
| SolidPing | Verificações de uptime, páginas de estado, on-call | AGPL-3.0 | PostgreSQL, armazenamento de objetos |
| Kener | Páginas de estado e incidentes | MIT | PostgreSQL, Valkey |
| Beszel | Métricas de servidores e contentores | MIT | Volume |
| Komari | Métricas leves de servidores | MIT | Volume (SQLite) |
| GlitchTip | Rastreio de erros, mais verificações de uptime simples | MIT | PostgreSQL, volume, zona de e-mail |
| Rustrak | Rastreio de erros num único processo leve | GPL-3.0 | PostgreSQL, volume |
Como escolhemos
- Faz bem uma das quatro tarefas: verificações de uptime, páginas de estado, métricas de servidores ou rastreio de erros.
- Corre como instância própria a partir de uma imagem de contentor.
- Licença open source aprovada pela OSI, confirmada no ficheiro LICENSE de cada projeto.
- Requisitos reduzidos: os presets precisam no máximo de 1 GB de memória.
1. SolidPing: verificações de uptime
O SolidPing é um monitor de uptime completo num único binário Go. As suas verificações vão muito além do HTTP: TCP, UDP, ICMP, DNS, certificados SSL e domínios, servidores de correio, gRPC, bases de dados, filas de mensagens e muito mais. As verificações podem correr a partir de workers em várias regiões, e agentes privados verificam alvos dentro da sua própria rede através de um WebSocket de saída (ver o README). A isto juntam-se páginas de estado, incidentes que enviam um alerta por falha em vez de um por verificação, janelas de manutenção, escalas de on-call com escalada de alertas e notificações para Slack, Discord, e-mail, webhooks, PagerDuty, ntfy e outros.
Licença: AGPL-3.0. Ficheiro de licença, site do projeto.
Na Nodion: um processo web com PostgreSQL e um bucket de armazenamento de objetos. Inicie sessão com admin@solidping.io e solidpass; o SolidPing obriga a definir uma nova palavra-passe no primeiro início de sessão. Faça-o logo após o primeiro deploy, antes de partilhar o URL: estas credenciais por omissão são públicas, por isso quem iniciar sessão primeiro assume o controlo da instância.
2. Kener: páginas de estado
O Kener concentra-se na página que os seus utilizadores veem. Cria páginas de estado com a sua marca, com o seu logótipo, cores e CSS, modo claro e escuro, e widgets e badges de estado que pode incorporar noutros sítios. Os incidentes têm uma cronologia com atualizações, e as janelas de manutenção são anunciadas com antecedência. O Kener também executa as suas próprias verificações (API, ping, TCP, DNS, SSL, SQL e heartbeat), envia notificações por e-mail, webhook, Slack ou Discord, e uma única instância pode servir várias páginas de estado.
Licença: MIT. Ficheiro de licença, site do projeto.
Na Nodion: um processo web com PostgreSQL e Valkey, com o URL da aplicação já definido como origem do Kener. Ao abrir pela primeira vez, o Kener mostra um formulário de configuração para o nome, o e-mail e a palavra-passe do proprietário.
3. Beszel: métricas de servidores
O Beszel vigia máquinas em vez de URLs. Um pequeno agente em cada servidor envia para o hub a CPU, a memória, a utilização e o I/O do disco, a rede, as temperaturas, a utilização da GPU e as estatísticas dos contentores Docker ou Podman; o hub guarda o histórico e envia alertas. Suporta vários utilizadores, início de sessão com OAuth e OIDC e backups automáticos para disco ou para armazenamento compatível com S3.
Licença: MIT. Ficheiro de licença, site do projeto.
Na Nodion: o preset executa o hub como um processo web com um volume de 10 GB. Os agentes não fazem parte do deploy: instale-os nas máquinas que quer vigiar, e eles podem ligar-se ao hub através de um WebSocket de saída. Na primeira visita, é-lhe pedido que crie a conta de administrador.
4. Komari: métricas leves de servidores
O Komari é um monitor de servidores ainda mais pequeno. Os agentes reportam CPU, memória, disco, rede e uptime, e o dashboard mostra dados em direto em intervalos de um segundo, além de gráficos com o histórico. É possível personalizar o aspeto com temas e plugins. A área de administração inclui também um terminal web para os servidores ligados, por isso proteja o acesso de administrador como protegeria uma palavra-passe de root.
Licença: MIT. Ficheiro de licença, site do projeto.
Na Nodion: um processo web com SQLite num volume de 10 GB. Inicie sessão como admin com a palavra-passe gerada em ADMIN_PASSWORD, que está no separador Environment. Os agentes ligam-se por HTTPS ao URL da aplicação, por isso não é preciso nenhuma porta de entrada adicional.
5. GlitchTip: rastreio de erros
O GlitchTip é uma ferramenta de rastreio de erros que funciona com os SDK cliente do Sentry: aponte o DSN do SDK que já utiliza para a sua instância, e as exceções, as mensagens de log e as violações da Content Security Policy chegam a um só sítio. Também lista os seus pedidos e chamadas à base de dados mais lentos, e tem monitorização de uptime simples: faz ping ao seu site, ou espera por um heartbeat de uma tarefa agendada, e envia alertas por e-mail ou webhook.
Licença: MIT. Ficheiro de licença, site do projeto.
Na Nodion: um processo web com PostgreSQL, um volume de 10 GB para ficheiros carregados e uma zona de e-mail para o correio de saída. Ao abrir pela primeira vez, regista o primeiro utilizador.
6. Rustrak: rastreio de erros
O Rustrak também fala o protocolo do Sentry, por isso um SDK do Sentry já existente só precisa de um novo DSN. Corre como um único processo pequeno e aceita eventos escrevendo-os primeiro em disco, para que os picos de tráfego não fiquem dependentes da resposta da base de dados. Além de erros, recebe logs, transações, release health e traces de agentes de IA.
Licença: GPL-3.0. Ficheiro de licença, site do projeto.
Na Nodion: um processo web com PostgreSQL e um volume de 10 GB. Inicie sessão com o e-mail admin e a palavra-passe que está a seguir aos dois pontos em CREATE_SUPERUSER, no separador Environment.
Monitorização integrada na Nodion
Se as suas aplicações correm na Nodion, a verificação de uptime básica já está incluída. O Monitoring no dashboard (onde as verificações se chamam observers) vigia qualquer URL http(s) ou uma das suas aplicações e o respetivo domínio, em intervalos de 30 segundos a 30 minutos, com GET ou HEAD. Define o código de estado esperado, e qualquer outro conta como falha. Os alertas seguem por e-mail, Slack, Discord, Google Chat, Telegram, Pushover, ntfy ou qualquer webhook, e cada verificação fica guardada com o tempo de resposta e a região. Se for a sonda da Nodion a falhar e não o seu site, a verificação é assinalada e não conta como indisponibilidade. A configuração está explicada na documentação de monitorização.
Para uma página de estado pública, métricas de servidores ou rastreio de erros, acrescente uma das ferramentas acima.
Também vale a pena ver
- Tianji (Apache 2.0) junta análise de sites, verificações de uptime e páginas de estado numa só aplicação, e também está no catálogo de aplicações com um clique.
- Uptime Kuma (MIT) é um monitor de uptime simples com verificações HTTP, TCP, ping e DNS, muitos serviços de notificação e várias páginas de estado.
Como escolher
- Quer muitos tipos de verificação, páginas de estado e on-call numa só ferramenta: SolidPing.
- Precisa sobretudo de uma página de estado pública cuidada, com incidentes: Kener.
- Quer métricas de CPU, memória, disco e contentores dos seus servidores: Beszel, ou Komari para uma configuração ainda mais leve.
- Quer apanhar os erros do seu código com os SDK do Sentry: GlitchTip, ou Rustrak para um único processo leve.
- As suas aplicações já correm na Nodion e precisa de alertas de uptime: o Monitoring integrado.
Cada ferramenta corre na Nodion como instância própria na região que escolher: EU Central (Frankfurt), US East ou US West. Veja todas as aplicações no catálogo de aplicações com um clique.
Perguntas frequentes
Qual é a melhor ferramenta open source de monitorização de uptime?
O SolidPing, se quiser muitos tipos de verificação, verificações a partir de várias regiões, páginas de estado e on-call numa só ferramenta. O Uptime Kuma (MIT) é uma opção mais simples, com verificações HTTP, TCP, ping e DNS e páginas de estado.
Qual é uma boa página de estado open source?
O Kener (MIT) cria páginas de estado públicas com a sua marca, com incidentes, janelas de manutenção e badges incorporáveis, e executa as suas próprias verificações. O SolidPing também inclui páginas de estado.
Existe uma alternativa open source ao Sentry?
Sim. O GlitchTip (MIT) e o Rustrak (GPL-3.0) aceitam eventos dos SDKs de cliente do Sentry, por isso pode mudar apontando o DSN para a sua própria instância.
A Nodion tem monitorização de uptime?
Sim. O Monitoring no dashboard verifica qualquer URL http(s) ou uma das suas aplicações em intervalos de 30 segundos a 30 minutos e envia alertas por e-mail, Slack, Discord, Google Chat, Telegram, Pushover, ntfy ou webhook.