Desenvolvido por Eduardo Tomaz para N-Multifibra
O NM OLT App é uma solução completa desenvolvida em Java que oferece acesso SSH seguro, diagnósticos avançados e monitoramento em tempo real para gestão centralizada de ONTs dos clientes dentro das OLTs, reduzindo o tempo de resposta e facilitando o trabalho por meio de automações internas.
A ferramenta foi criada especificamente para otimizar o trabalho das equipes de Suporte e T.I. da N-Multifibra, proporcionando uma interface intuitiva, automática e confortavel para gerenciamento dos clientes na rede.
- Autenticação segura com controle de permissões por cargo
- Alteração de senha integrada, com senha padrão inicial protegida e criptografada
- Verificação em tempo real do status das credenciais
- Sessão protegida com logout forçado ao fechar o aplicativo
- Acesso direto às OLTs em tempo real via autenticação SSH
- Conexão e desconexão seguras, sem cache e sem sobrecarga das OLTs
- Status Online/Offline por protocolos TCP e ICMP (fallback automático)
- Adição manual e dinâmica de OLTs pelo usuário final
- Análise detalhada dos sinais RX e TX de cada ONT/ONU na PON
- Cálculo automático das médias de sinais RX e TX
- Alertas para sinais críticos (abaixo de -29.00 dBm)
- Identificação de sinais incompatíveis com a média da PON (entre -27 e -29 dBm)
- Visão geral das PONs (F/S/P) com detalhes completos de cada ONT/ONU
- Autoverificação de rompimentos e drops rompidos
- Status em tempo real de todos os dispositivos
- Localização rápida de ONT/ONU por número de série (SN)
- Acesso prioritário ao IP remoto via DHCP
- Informações completas do dispositivo (T-CONT, GEM PORT, TR-069, etc.)
- Registro detalhado das 10 últimas desconexões por ONT/ONU
- Horários precisos de cada ocorrência
- Resumo de cada incidente e respectiva causa
- Monitoramento em tempo real do consumo por até 2 minutos
- Conversão automática de Kbps para Mbps
- Opção de interrupção do monitoramento a qualquer momento
- Acompanhamento dos serviços autorizados por ONT/ONU
- Classificação por VLANs (100, 101, 102)
- Status detalhado de cada serviço ativo (Internet, Acesso Remoto, VoIP, etc.)
💡 Bastando informar apenas o F/S/P ou o ID da ONT em cada aba!
- Acompanhamento dos tickets internos abertos
- Respostas em tempo real aos tickets (em manutenção, resolvido, etc.)
- Exclusão de tickets desnecessários
- Pattern Matching com Regex Avançado em todas as abas
- Análise Automática de sinais e detectação de anomalias
- Resumos Inteligentes de dados complexos
- Alertas Proativos para problemas críticos
Patterns Matchings e Regex
| Regex / Padrão | Finalidade | Exemplo Prático em olt_teste_01 |
|---|---|---|
IP_REGEX |
Encontrar e destacar endereços IP no texto do terminal. | Em uma mensagem como Conectado ao host 10.0.40.10, o padrão localiza e permite destacar o 10.0.40.10. |
CR_PROMPT_PATTERN |
Detectar prompts que exigem que a tecla "Enter" (<cr>) seja pressionada para confirmar uma ação ou completar um comando. |
olt_teste_01(config-if-gpon-0/1)# commit { <cr> }:. O código detecta isso e envia automaticamente o "Enter". |
MORE_PROMPT_PATTERN |
Identificar quando a OLT pausa uma saída longa e exibe uma mensagem como ---- More ----, indicando que há mais conteúdo a ser exibido. |
---- More ( Press 'Q' to break ) ----. O código detecta e pode enviar um espaço para continuar. |
oltPromptRegex |
Reconhecer o prompt de comando da OLT. É o principal indicador de que um comando terminou de ser executado e a OLT está pronta para a próxima instrução. | olt_teste_01# (modo enable)olt_teste_01(config)# (modo de configuração)olt_teste_01(config-if-gpon-0/1)# (modo de configuração da interface) |
-
Comando:
display ont optical-info 0 all(executado na interface gpon 0/1/0) -
Padrão Regex:
^\s*(\d+)\s+(-?\d+\.\d+)\s+(-?\d+\.\d+)\s+(-?\d+\.\d+)\s+(\d+)\s+(-?\d+\.\d+)\s+(-?\d+)\s+(\d+)\s*$
-
Exemplo capturado:
0 -18.45 2.98 -19.12 41 3.305 19 985
- Comandos:
display port desc 0/1/0
display ont info summary 0/1/0
| Padrão no Código | Finalidade | Exemplo de Texto Capturado |
|---|---|---|
descDataLinePattern |
Captura a linha de descrição da porta para a F/S/P. | 0/ 1/ 0 - PRIMARIA 00--CABO00 |
summaryCountPattern |
Extrai o número total de ONTs e quantas estão online. | In port 0 / 1 / 0, total of ONTs are: 32, online: 29. |
statusPattern |
Captura os detalhes de status das ONTs (online/offline). | 0 online 01/06/2025 10:00:15 01/01/1970 00:00:00 - |
infoPattern |
Captura SN, modelo e nome do cliente. | 0 HWTCaabbccdd HG8245H 985 -18.4/-19.1 Cliente-Exemplo-01 |
statusPatternForAnalysis |
Identifica ONTs offline para análise de rompimentos. | 1 offline 10/05/2025 09:20:00 08/06/2025 04:15:30 Dying-gasp |
- Comando:
display ont info by-sn <SERIAL>
| Padrão no Código | Finalidade | Exemplo de Texto Capturado |
|---|---|---|
keyValuePattern |
Captura chaves e valores no formato Chave : Valor |
F/S/P : 0/1/0 ONT-ID : 0 |
ontIpPattern |
Captura o endereço IP da ONT | ONT IP 1 address/mask : 192.168.100.5 / 255.255.255.0 |
-
Comando:
display ont register-info 0 0(executado na interface gpon 0/1/0) -
Exemplo de bloco processado:
Index : 1 Register time : 2025/06/01 10:00:15 Deregister time: 2025/06/08 14:30:00 DownCause : LOSi/LOBi alarm
- Comando:
display ont traffic 0 0(executado na interface gpon 0/1/0)
| Padrão no Código | Finalidade | Exemplo de Texto Capturado |
|---|---|---|
upTrafficPattern |
Captura o tráfego de upload (kbps) | Up traffic(kbps) : 8192 |
downTrafficPattern |
Captura o tráfego de download (kbps) | Down traffic(kbps) : 51200 |
- Comando:
display service-port port 0/1/0 ont 0
| Padrão no Código | Finalidade | Exemplo de Texto Capturado |
|---|---|---|
dataPattern |
Captura a linha de detalhes de cada service-port. |
1 100 vlan-100 - 0/1/0 0 - - vlan 100 - - up |
totalMatcher |
Captura o resumo final da saída. | Total : 2 (Up/Down : 2/2) |
- Status Online/Offline via protocolos TCP e ICMP
- Verificação de porta SSH acessível
- Fallback automático entre protocolos
Exemplos da Detecção
Os protocolos TCP e ICMP verificarão se a porta está aberta e acessível para autenticação.
- Interface modal para adicionar novas OLTs-
- Integração automática com a lista existente
- Validação de conectividade em tempo real
- Filtragem por busca, status, IP, etc.
Imagens do Modal de Adição
- Suporte direto do desenvolvedor
- Correção rápida de bugs
- Modal para sugestões de melhorias
Geração de relatórios completos usando:
- Apache POI para arquivos Excel (XLSX)
- OpenPDF para documentos PDF
- FileWriter para CSV e TXT
Ver todos os 14 temas disponíveis
Se você for um desconhecido, siga os passos abaixo:
# 1. Clone o repositório
git clone https://github.com/toomazs/NM-OLT-App.git
cd NM-OLT-App
# 2. Verifique a versão do Java (Recomendado Java 24)
java -version
# 3. Abra na sua IDE favorita
# Todas as dependências estão em lib/O sistema é compatível com PostgreSQL, MariaDB (MySQL), SQLite e NoSQL.
-- Criar database
CREATE DATABASE olt_db;
-- Tabela de usuários
CREATE TABLE usuarios (
id SERIAL PRIMARY KEY,
nome TEXT NOT NULL,
usuario TEXT UNIQUE NOT NULL,
senha TEXT NOT NULL,
cargo TEXT NOT NULL;
);
-- Inserir usuários
INSERT INTO usuarios (nome, usuario, senha, cargo) VALUES
('Usuário Padrão', 'intern', '12345678', 'estagiario'),
('Administrador', 'admin', '12345678', 'supervisor');
-- ... Quantos users quiserpackage database;
public class SecretsDB {
// Configuração PostgreSQL (exemplo)
public static final String DB_URL = "jdbc:postgresql://localhost:5432/olt_db";
public static final String DB_USER = "usuario_db";
public static final String DB_PASSWORD = "senha_db";
}📁 Localização: src/database/SecretsDB.java
public class Secrets {
// Credenciais SSH
public static final String SSH_USER = "usuario_ssh";
public static final String SSH_PASS = "senha_ssh";
// Lista de OLTs {"Nome", "IP"}
public static final String[][] OLT_LIST = {
{"OLT_SP_CENTRO_1", "192.168.1.10"},
{"OLT_SP_CENTRO_2", "192.168.1.11"},
{"OLT_SP_NORTE_1", "192.168.1.20"},
{"OLT_SP_SUL_1", "192.168.1.30"}
// ... Adicione quantas OLTs quiser
};
}📁 Localização: src/models/Secrets.java
Após isso, recompile o código .java usando uma IDE. Pode compilar um .exe com Launch4j ou use -cp via bash ou bat.
NM-OLT-App/
├── lib/ # Bibliotecas JAR
├── resources/ # Temas CSS, Ícones e Fontes
├── src/ # Pasta Principal
│ └── Main.java
│ └── SSHManager.java
│ └── StageResizer.java
│ └── HuaweiOltCommands.java
│ ├── database/ # Database
│ │ └── SecretsDB.java # (não versionado)
│ │ └── DatabaseManager.java
│ │ └── LoginResultStatus.java
│ ├── models/ # Funcionalidades
│ │ └── Secrets.java # (não versionado)
│ │ └── Ticket.java
│ │ └── Usuario.java
│ │ └── OLT.java
│ │ └── OLTList.java
│ ├── screens/ # Telas de Login e Alterar Senha
│ │ └── ButtonEffects.java
│ │ └── ChangePasswordScreen.java
│ │ └── LoginScreen.java
│ └── utils/ # Manager de cada Switch Case e JSON
│ └── ConfigManager.java
│ └── ThemeManager.java
│ └── WindowsUtils.java
└── OLTApp.exe
└── OLTApp.jar
└── unins000.exe
Eduardo Tomaz - Desenvolvedor Principal
- Instagram: @tomazdudux
- LinkedIn: eduardotoomazs
- Email: eduardotoomaz@Outlook.com
Em especial, agradeço toda a equipe de Suporte, porém reconheço e agradeço àqueles que acompanharam o sistema desde o início, identificando bugs e sugerindo melhorias contínuas:
César Bragança, Gabriel Marques, Gabriel Rosa, João Miyake e Kaiky Leandro.
Este projeto é de propriedade exclusiva da N-Multifibra e foi desenvolvido por Eduardo Tomaz para uso interno da empresa.
Todos os direitos reservados © 2025 N-Multifibra

































