2.9 KiB
IPv0 OLT API (Middleware Zabbix)
API RESTful intermediária desenvolvida em Python (Flask) para facilitar o monitoramento de OLTs (Nokia, Fiberhome, etc.) no Zabbix via Low Level Discovery (LLD).
🎯 Objetivo
Transformar comandos complexos de CLI (Telnet/SSH) e estruturas SNMP proprietárias em JSON limpo e otimizado para o Zabbix, com cache inteligente para proteger a OLT de sobrecarga.
🚀 Recursos Principais
- Multi-Vendor: Arquitetura baseada em drivers. Suporta Nokia (ISAM/FW específicos) com suporte futuro para Fiberhome, Huawei e ZTE.
- Smart Cache: Cache em memória evita múltiplas conexões para a mesma coleta de dados.
📂 Estrutura do Projeto
/
├── app.py # Aplicação Principal (Flask)
├── drivers/ # Camada de abstração (Factory Pattern)
│ ├── __init__.py # Contrato (Interface OltDriver)
│ ├── nokia.py # Driver concreto Nokia (Implementa connect/get_pon_stats)
│ └── fiberhome.py # Placeholder para expansão futura
├── utils/ # Cache, SNMP, Helpers
├── tools/ # Scripts de Manutenção (Build, Clean, License)
└── doc/ # Documentação detalhada
📦 Instalação (Usuário Final)
Para um guia detalhado, consulte: doc/install_dist.md.
- Transfira o arquivo
ipv0-olt-api.zippara o servidor (ex:/opt). - Descompacte o arquivo e entre na pasta:
unzip ipv0-olt-api.zip -d ipv0-olt-api cd ipv0-olt-api - Execute o script de instalação como root:
Este script instalará as dependências e configurará o serviço.
sudo ./install.sh
⚠️ Atenção: Ao final, ele exibirá o Machine ID. Copie este código para solicitar sua licença.
🔌 Expansão (Novos Drivers/Recursos)
A API foi desenhada para ser estendida e suportar outros fabricantes. Consulte o guia de desenvolvimento: doc/expansion.md.
📊 Integrando no Zabbix
Para um guia passo-a-passo detalhado de como criar Master Items, regras LLD e protótipos de itens, consulte: doc/zabbix_integration.md.
📚 Guia do Desenvolvedor
Documentação técnica para manutenção e evolução do projeto:
- Instalação (Ambiente Dev): doc/install.md - Como rodar o código fonte sem compilar.
- Expansão: doc/expansion.md - Como criar novos drivers.
- Integração Zabbix (Guia Técnico): doc/zabbix_integration.md - Como criar templates e regras LLD.
- Build e Distribuição: doc/create_dist.md - Como gerar novas versões e licenças.
- Templates Oficiais:
Desenvolvido com ❤️ e Python.