# 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](doc/install_dist.md). 1. Transfira o arquivo `ipv0-olt-api.zip` para o servidor (ex: `/opt`). 2. Descompacte o arquivo e entre na pasta: ```bash unzip ipv0-olt-api.zip -d ipv0-olt-api cd ipv0-olt-api ``` 3. Execute o script de instalação como root: ```bash sudo ./install.sh ``` *Este script instalará as dependências e configurará o serviço.* > ⚠️ **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](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](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](doc/install.md) - *Como rodar o código fonte sem compilar.* * **Expansão**: [doc/expansion.md](doc/expansion.md) - *Como criar novos drivers.* * **Integração Zabbix (Guia Técnico)**: [doc/zabbix_integration.md](doc/zabbix_integration.md) - *Como criar templates e regras LLD.* * **Build e Distribuição**: [doc/create_dist.md](doc/create_dist.md) - *Como gerar novas versões e licenças.* * **Templates Oficiais**: * **Nokia**: [doc/templates/template-nokia-api.xml](doc/templates/template-nokia-api.xml) --- Desenvolvido com ❤️ e Python.