Monitoramento, Agendador e Firewall
O PrimeForge observa seus servidores continuamente: o agente Go instalado em cada máquina coleta métricas a cada 30 segundos e as envia ao painel pelo WebSocket. Com isso você acompanha CPU, memória, disco e rede em gráficos, agenda tarefas cron por servidor, gerencia o firewall UFW sem abrir uma sessão SSH, e conta com a auto-recuperação de serviços — se um serviço bare-metal cair, o PrimeForge tenta reiniciá-lo sozinho. Esta página cobre as sub-páginas Monitoramento e Agendador de um servidor, e a metade de firewall da página Rede.
Monitoramento
A sub-página Monitoramento de um servidor mostra o estado atual e o histórico de consumo de recursos. É onde você diagnostica lentidão, planeja capacidade e confirma que os serviços de infraestrutura estão saudáveis.
Cartões de estatística
No topo da página, cartões de estatística resumem os valores atuais mais importantes — uso de CPU (com o número de núcleos), memória usada versus total, disco usado versus total, e as taxas de rede de entrada e de saída em MB/s. Quando o agente reporta os contadores HTTP do nginx, entra também um cartão de requisições por segundo. Eles dão o "raio-x" imediato do servidor.
Acima dos cartões, um carimbo diz há quanto tempo foi a leitura, e uma faixa âmbar aparece quando os números não são mais ao vivo — agente em silêncio ou servidor em modo de manutenção. A página se relê a cada 30 segundos, só enquanto a aba está visível.

As métricas coletadas pelo agente incluem:
| Métrica | Descrição |
|---|---|
| Uso de CPU | Percentual total de utilização do processador |
| Memória | RAM usada versus total |
| Disco | Espaço em disco usado versus total |
| Rede | Banda de entrada e saída (RX/TX) |
| Disco I/O | Taxa de leitura e escrita em disco |
| Sites | Número de sites em execução no servidor |
| Uptime | Há quanto tempo o servidor está no ar |
Seletor de período e gráficos
Um seletor de período rotulado permite ver as métricas na última 1 hora, 6 horas, 24 horas ou 7 dias. Abaixo dele, os gráficos mostram a evolução ao longo do tempo, com um eixo de tempo de verdade:
- CPU — utilização do processador
- Memória — consumo de RAM
- Rede — banda de entrada e saída
- Disco I/O — throughput de leitura e escrita

Tabela de recursos por site e serviços de infraestrutura
Mais abaixo, duas tabelas quebram o consumo por origem:
- Recursos por site — o consumo de cada site (CPU e memória), lido do slice systemd/cgroup v2 de cada site, com links para o domínio e o código HTTP mais recente da sonda de saúde; a barra de memória é escalada pelo limite daquele site, e não pela RAM da máquina. Aparece só em servidores que hospedam sites. É aqui que você identifica qual site está pesando no servidor.
- Serviços de infraestrutura — o estado dos serviços bare-metal (PostgreSQL, MySQL, Redis, MinIO, Reverb etc.) com nomes amigáveis, para você ver de relance se algum está fora do ar.

Auto-recuperação de serviços
Para servidores com serviços bare-metal (tipos All-in-One, Banco de dados, Serviços, Armazenamento S3 e Redis), o PrimeForge monitora a saúde de cada serviço e tenta consertá-lo automaticamente se ele cair — você não precisa ficar de plantão.
O ciclo de auto-recuperação funciona assim:
- O agente verifica o estado de cada serviço via
systemctl is-activea cada 30 segundos. - Se um serviço cai, o PrimeForge envia
systemctl restartautomaticamente e marca o serviço como Recuperando. - Há um intervalo de 60 segundos entre tentativas de reinício, para evitar reinícios em rajada.
- Após 3 tentativas de reinício sem sucesso, o serviço é marcado como Falhou e um alerta crítico é criado.
- Quando o serviço volta a responder, as tentativas são zeradas e o alerta é resolvido automaticamente.
A saúde dos serviços aparece na visão geral do servidor e também nas páginas dos sites — quando um serviço do qual um site depende (banco, Redis, S3) está fora do ar, o site exibe uma faixa de aviso de degradação.
A auto-recuperação fica suspensa enquanto o servidor está em modo de manutenção. Se você mesmo parou um serviço para fazer manutenção planejada, entre em modo de manutenção (em Configurações do servidor) para que o PrimeForge não fique lutando com você, reiniciando o que você desligou de propósito e disparando alertas.
Agendador
Cada servidor pode ter tarefas agendadas (cron jobs) que rodam em intervalos definidos. A sub-página Agendador (grupo Cargas de trabalho, para Developer ou acima) oferece um CRUD completo dessas tarefas, sem que você precise editar o crontab manualmente — o Agent sincroniza tudo.

A tabela mostra, para cada tarefa, o nome, o comando, o site (quando a tarefa é de um site), a frequência, o interruptor Ativada, o estado de sincronização com o crontab, o resultado da última execução, a última e a próxima execução e, quando ligado, o estado do heartbeat. Cada linha traz Executar agora, Saída (a saída da última execução), Editar e Excluir (este último para Admin ou acima). O botão Reenviar crontab, no cabeçalho, reescreve o crontab do servidor com as tarefas atuais — útil se alguém mexeu no crontab à mão.
Quando um site Laravel tem o agendador ligado (página Serviços do site), a tarefa schedule:run dele aparece aqui como Instalada: o próprio painel a mantém, então ela não pode ser editada nem desligada nesta página.
Criar uma tarefa agendada
- Abra a página Agendador do servidor. Tarefas de um site específico também podem ser criadas na página Agendador daquele site, no grupo Processos (veja Daemons e Workers).
- Clique em Nova tarefa.
- Configure, em três seções:
| Campo | Descrição |
|---|---|
| Nome | Um nome descritivo para identificar a tarefa |
| Comando | O comando de shell a executar (por exemplo /usr/local/bin/limpar-tmp.sh, ou php artisan app:relatorio-diario quando a tarefa é de um site) |
| Usuário | root ou primeforge — o usuário do sistema que executa o comando |
| Site (opcional) | Quando definido, o comando roda como o usuário Linux do site, no diretório do site (/home/{usuário do site}/current) |
| Fuso horário | Fuso IANA em que a frequência é interpretada (ex.: America/Sao_Paulo; padrão UTC) |
| Timeout (segundos) | Tempo máximo de execução (padrão 3600) |
| Sem sobreposição | Pula a execução se a anterior ainda estiver rodando |
| Frequência | A cada minuto, 5, 15 ou 30 minutos, a cada hora, diariamente, semanalmente, mensalmente, ou Personalizada — que abre o campo Expressão Cron (ex.: 0 */6 * * *) |
| Ativada | Liga/desliga sem precisar excluir a tarefa |
| Monitorar com heartbeat | O painel passa a esperar um ping depois de cada execução e abre um incidente se ele não chegar (veja Configuração de Sites) |

A expressão cron é validada no próprio formulário: o Agent aceita campos numéricos e as macros @daily/@hourly, mas não meses ou dias da semana por nome nem L/W/#. Depois de criada, a tarefa passa a ser executada pelo Agent no servidor e os resultados de execução são enviados de volta ao painel.
Rotinas do próprio painel
Além das tarefas que você cria, o PrimeForge roda rotinas de manutenção nos bastidores, a partir do painel — elas não aparecem no Agendador:
- Reconciliação de saúde — verifica a saúde dos sites e reinicia as unidades systemd por site que travaram
- Limpeza de backups — remove arquivos de backup que passaram da retenção
- Verificação de versão do Agent — detecta Agents desatualizados
- Reconciliação da malha WireGuard — refaz túneis entre servidores que ficaram para trás
- Verificação de heartbeats — abre um incidente quando um heartbeat fica em silêncio além do prazo
Firewall
O firewall UFW do servidor é gerenciado através do agente — sem necessidade de uma sessão SSH — na metade de baixo da página Rede (grupo Rede e segurança), logo abaixo da malha WireGuard. As duas coisas eram páginas separadas e viraram uma só; os endereços antigos /connections e /firewall redirecionam para /network.

O que a página oferece:
- Status do Firewall — indica se o UFW está ativo, com as ações Ativar firewall / Desativar firewall. Desativar pede confirmação em vermelho: isso expõe todas as portas do servidor.
- Tabela de regras — cada regra com seu número, porta/serviço-alvo, ação (permitir/negar) e origem.
- Adicionar regra — porta (1–65535) ou nome de serviço, protocolo (
tcp/udp/ qualquer), ação, origem (any, um IP ou um intervalo CIDR) e um comentário. As entradas são estritamente validadas antes de chegarem ao servidor. - Excluir — apaga uma regra pelo número. Regras de sistema que mantêm a plataforma funcionando (SSH, HTTP, HTTPS, a malha WireGuard) são protegidas e não podem ser removidas pelo painel.
Permissões e auditoria
Visualizar o firewall é aberto a todos os membros da organização; adicionar, remover, ativar e desativar exigem o papel Admin ou superior. Toda alteração é registrada na auditoria. Se o agente do servidor estiver offline, a página mostra um aviso e as alterações ficam indisponíveis até ele reconectar — o painel prefere dizer que não sabe a mostrar um estado de firewall desatualizado como se fosse o atual.
Próximos passos
- Serviços, Bancos e Armazenamento — instale e mantenha os serviços cuja saúde você monitora aqui
- Sites — crie sites que consomem esses serviços e aparecem na tabela de recursos
- Configuração de Sites — veja logs e a atividade de auditoria por site