Este projeto consiste em um sistema de monitoramento para ambientes TOTVS Protheus, composto por duas partes principais: um Agente Node.js (backend) que roda no servidor e uma Extensão Chrome (frontend) que atua como interface de controle.
- ✅ Controle de Serviços Windows: Iniciar, parar e reiniciar serviços (filtrados por TOTVS, mas configurável).
- 💾 Persistência de Configurações: Salva o caminho dos arquivos de log e INI por serviço.
- 📡 Streaming de Log em Tempo Real: Utiliza WebSocket para monitorar e transmitir o log de um arquivo (por exemplo,
appserver.log) linha por linha, permitindo visualização em tempo real. - 🔍 Leitura de INI: Permite ler e exibir o conteúdo do arquivo
.ini(ex:appserver.ini). - 🌐 Monitoramento de WebApps: Verifica o status (Online/Offline e tempo de resposta) de URLs configuradas.
- 🔒 Segurança Básica: Autenticação via
x-api-keypara todas as rotas de controle.
- 💻 Interface Amigável: Painel de controle responsivo (Bootstrap) com suporte a tema Claro/Escuro.
- 🔗 Gerenciamento de Múltiplos Agentes: Permite configurar e conectar-se a vários servidores (Agentes) distintos.
- 🔧 Controle Direto: Botões para Start/Stop/Restart de serviços diretamente da extensão.
- 📜 Visualizador de Log: Modal com streaming de log via WebSocket, filtro por tags (
[ERROR],[WARN],[INFO]) e limite de linhas. - ⚙️ Visualizador de INI: Exibe o conteúdo do arquivo de configuração (
.ini) do serviço. - 🚦 Status de WebApps: Painel dedicado para monitorar a saúde das URLs configuradas (ex: SmartClient Web, REST API).
⚠️ Monitor de Erros: Painel dedicado para monitorar os Thread Errors, limpos e catalogados, listados por padrão (com botão de busca do erro no Google) ou customizado (Irei automatizar o envio por email ao servicedesk).- 🚪 Monitor de Portas TCP: Pagina com um datagrid dedicado a mostrar, porta TCP, PID, Processo dos serviços do Protheus.
A instalação é dividida em duas etapas: a configuração do Agente (servidor) e a instalação da Extensão (cliente).
O Agente deve ser instalado no servidor Windows onde os serviços Protheus estão rodando.
- Node.js: Versão LTS (v16.x ou superior).
- Permissões: O Node.js/Agente deve ter permissão para executar comandos do PowerShell e ler/escrever arquivos de log/configuração.
- Crie uma pasta (ex:
protheus-agent) no seu servidor. - Coloque os arquivos
server.js,inis.json,logs.json(vazios ou os arquivos iniciais) ewebapps.jsonna pasta. - Coloque o arquivo
package.jsonna mesma pasta, para gerenciar as dependências. - Abra o terminal nesta pasta e instale as dependências:
npm install
- Defina a Chave de API (obrigatório para segurança):
set AGENT_API_KEY=sua_chave_secreta_aqui # (Opcional) Defina a porta, default é 3000 # set PORT=3000
Nota: Se você não definir
AGENT_API_KEY, o padrão será1234. MUDE ISSO EM PRODUÇÃO. - Inicie o servidor:
O agente estará rodando em
npm start
http://localhost:3000(ou na porta configurada).
- Crie uma pasta (ex:
protheus-extensao). - Coloque os arquivos
popup.html,popup.js,manifest.json, e inclua a pastajs/(combootstrap.bundle.min.js) e a pastaicons/(com o ícone da extensão). - Abra o Chrome e vá em
chrome://extensions/. - Ative o Modo Desenvolvedor (canto superior direito).
- Clique em Carregar sem compactação e selecione a pasta da extensão (
protheus-extensao).
- Clique no ícone da Extensão.
- Na seção Servers, clique em + Adicionar.
- Informe:
- Nome: Nome amigável do servidor (ex:
Servidor Homologação). - URL: Endereço do Agente (ex:
http://servidor-homologacao:3000). - API Key: A chave secreta (
sua_chave_secreta_aqui) definida no Agente.
- Nome: Nome amigável do servidor (ex:
- Após adicionar, os serviços serão carregados, e você poderá:
- Controlar Serviços: Usar Start/Stop/Restart.
- Ver Log: Ao clicar pela primeira vez, será solicitado o caminho do log (
C:\Protheus\bin\appserver\appserver.log). Esse caminho será salvo no Agente. - Ver INI: Ao clicar pela primeira vez, será solicitado o caminho do INI (
C:\Protheus\bin\appserver\appserver.ini). Esse caminho será salvo no Agente.
- Na seção WebApps, use + Adicionar para configurar URLs de monitoramento.
- Na seção Errors, use os campos de busca e de data para filtrar os thread errors catalogados. Há um listener no agente que fica lendo os arquivos de console.log cadastrados no Ver Log e persiste de forma limpa e concisa os dados para que o analista possa verificar o que aconteceu.
- Na Seção Portas TCP, há uma datatable em jquery que demostra a porta TCP, PID, Processo dos serviços do Protheus.
- API KEY: A chave de API protege suas rotas de controle. Use uma chave longa e complexa e não a exponha publicamente.
- WebSockets: O streaming de log é feito via WebSocket. Certifique-se de que a porta do Agente está liberada no firewall do servidor e da rede.
- chokidar/Polling: O Agente usa a biblioteca
chokidarcom polling (intervalo de 1s) para monitorar o log. Em ambientes de altíssimo volume de IO, isso pode gerar alguma sobrecarga; ajuste o parâmetrointervalnoserver.jsse necessário. - Log Buffer: A Extensão limita a exibição a 2000 linhas para manter o desempenho do navegador.