61 lines
2.9 KiB
Markdown
61 lines
2.9 KiB
Markdown
# 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. |