Initial commit
This commit is contained in:
61
README.md
Normal file
61
README.md
Normal file
@@ -0,0 +1,61 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user