MonitorOPS — Runbooks e solução de falhas¶
Guia passo a passo para operação do MonitorOPS (porta 9090) e resolução dos problemas mais comuns do stack.
MonitorOPS ≠ MonitorCTI (Portal
/cti/, API:8090).
Acesso rápido¶
| Item | Valor |
|---|---|
| URL | http://IP_DA_VPS:9090/ |
| Health | http://IP_DA_VPS:9090/health |
| Credenciais | .env → MONITOR_ADMIN_USER / MONITOR_ADMIN_PASSWORD |
Painéis do dashboard¶
| Painel | Função |
|---|---|
| Visão Geral | Status containers, recursos VPS, ligar/desligar stack e serviços |
| Diagnóstico | Verificação automática (containers, portas, SQL, AMI) |
| Logs | Últimas linhas de log por container |
| Ferramentas | Scripts admin (validação, bootstrap SQL, fix Issabel, etc.) |
| Ajuda / Runbooks | Passo a passo interativo para cada falha conhecida |
Runbook 1 — Issabel PBX unhealthy¶
Sintomas¶
- Container
issabel-prodcom health unhealthy - Portas 443, 5038 ou 5060 fechadas
- Log:
call center schema dump not found
Causa¶
Firstboot do Issabel falha no módulo Call Center (incompatível com Asterisk 18).
Passo a passo¶
- SSH na VPS:
- Execute o fix (ou use Ferramentas → Corrigir Issabel no monitor):
- Aguarde 2–5 minutos e verifique: Esperado: status healthy e HTTP 200.
- No monitor, atualize a página — Issabel deve aparecer healthy.
Runbook 2 — LorentzCTI sem eventos AMI¶
Sintomas¶
- CTI running mas sem
FullyBootednos logs - Porta 5038 não responde
- Log:
Authentication failed
Causa¶
AMI não configurado ou secret incorreto no LorentzCTI.ini.
Passo a passo¶
- Confirme Issabel healthy e porta 5038 aberta no host.
- No Issabel: PBX → Ferramentas → Asterisk Manager Users — usuário
admin. - Senha AMI =
LORENTZ_CTI_AMI_SECRETno.env(padrãoamp111). - Regenerar config:
- Verifique logs:
Runbook 3 — Tabelas SQL ausentes¶
Sintomas¶
- Erro
Invalid object name CTI_ATENDIMENTO - Login Supervisor falha ou tabelas
SAC_*ausentes - Diagnóstico alerta bootstrap SQL
Causa¶
Schema LorentzCTI não aplicado após primeiro deploy.
Passo a passo¶
Opção A — pelo monitor: Ferramentas → Bootstrap SQL → aguardar conclusão.
Opção B — manual:
cd ~/omnichannel/lorentz-vps-stack
docker cp docker/sqlserver/init/01-bootstrap-homolog.sql lorentz-sqlserver:/tmp/
docker cp docker/sqlserver/init/02-cti-core-tables.sql lorentz-sqlserver:/tmp/
docker exec lorentz-sqlserver /opt/mssql-tools18/bin/sqlcmd \
-S localhost -U sa -P 'SENHA_SA' -C -i /tmp/01-bootstrap-homolog.sql
docker exec lorentz-sqlserver /opt/mssql-tools18/bin/sqlcmd \
-S localhost -U sa -P 'SENHA_SA' -C -i /tmp/02-cti-core-tables.sql
Para schema completo de produção, restaure o .bak do cliente — ver 05 — SQL Server.
Runbook 4 — Supervisor inacessível externamente¶
Sintomas¶
- HTTP 200 local mas timeout de fora
validate-install.sh --externalfalha na porta 8080
Causa¶
Security Group AWS ou firewall bloqueando TCP 8080.
Passo a passo¶
- AWS: EC2 → Security Groups → Inbound → adicionar TCP 8080 (restrito ao IP da equipe).
- Ou script:
- Teste:
Runbook 5 — MonitorOPS inacessível (9090)¶
Sintomas¶
- Dashboard não abre de fora da VPS
curltimeout emIP:9090
Causa¶
Porta 9090 não liberada no Security Group.
Passo a passo¶
- Libere TCP 9090 restrito ao IP da equipe:
- Confirme container:
Runbook 6 — Disco cheio na VPS¶
Sintomas¶
- Recursos VPS critical no monitor
- Docker não inicia, serviços param
- SSH lento
Causa¶
ISO Issabel, imagens Docker ou logs consumindo disco.
Passo a passo¶
- Diagnóstico:
- Limpar journal:
- Prune Docker (cuidado — remove imagens não usadas):
Ou use Ferramentas → Limpar Docker no monitor (
prune -fapenas). - Remova ISO antiga se build Issabel já concluiu.
- Considere aumentar volume EBS na AWS.
Runbook 7 — CTI Authentication failed (INI)¶
Sintomas¶
- Log
lorentz-cti:Authentication failed - Secret em texto plano no INI
Causa¶
LorentzCTI.ini gerado sem criptografia ou encoding errado.
Passo a passo¶
cd ~/omnichannel/lorentz-vps-stack
./scripts/render-config.sh
grep '^Secret=' config/runtime/LorentzCTI.ini
docker compose restart lorentz-cti
O campo Secret não deve ser amp111 em texto puro.
Runbook 8 — Base Histórica (LorentzDB.Worker) indisponível¶
Sintomas¶
- Container
lorentz-basehistoricacom status diferente derunning - Supervisor retorna erro ao consultar a API de Base Histórica
- Health check
http://127.0.0.1:8091/healthfalhando
Causa¶
O worker LorentzDB.Worker (.NET 9, "Montar Base Histórica") não subiu — erro de conexão com o SQL Server, LORENTZ_BASEHISTORICA_API_KEY ausente no .env ou build desatualizado.
Passo a passo¶
- Verifique logs:
- Confirme
LORENTZ_BASEHISTORICA_API_KEYdefinido no.env. - Confirme que o
sqlserverestá healthy (o worker depende dele): - Teste local (dentro da VPS):
- Reinicie:
A porta
8091tem bind local (127.0.0.1) por design — só o Supervisor deve acessá-la. Por isso ela não aparece no teste de portas do painel Diagnóstico (mesmo padrão dosqlserver/1433); o status do container é a fonte de verdade nesse caso.
Ferramentas admin (painel)¶
| Botão | Script equivalente | Uso |
|---|---|---|
| Validação | validate-install.sh |
Checagem pós-deploy |
| Bootstrap SQL | sqlcmd 01 + 02 | Primeira instalação |
| Corrigir Issabel | fix-issabel-firstboot.sh |
Call Center / Asterisk 18 |
| Render config | render-config.sh |
Regenera INI e att_config.php |
| Limpar Docker | docker system prune -f |
Libera espaço (seguro) |
Após atualizar o monitor¶
Sync do lab para a VPS e rebuild:
# No lab (Windows/Linux com chave SSH)
./scripts/sync-stack-to-vps.sh
# Na VPS
cd ~/omnichannel/lorentz-vps-stack
docker compose up -d --build monitor