# Guia de Instalação: API Zabbix OLT Este documento descreve os passos para instalação e configuração da API em ambiente Linux. ## Pré-requisitos - Sistema Operacional Linux (Debian/Ubuntu/CentOS) - Python 3.9 ou superior - Git ## Passos de Instalação ### 1. Clonar o Repositório O diretório padrão de instalação será `/opt/zbx-ipv0`. ```bash sudo mkdir -p /opt/zbx-ipv0 sudo chown $USER:$USER /opt/zbx-ipv0 git clone https://git.ipv0.com.br/halbebruno/zabbix-api /opt/zbx-ipv0 cd /opt/zbx-ipv0 ``` ### 2. Configurar Ambiente Virtual (venv) É recomendado usar um ambiente virtual para isolar as dependências. ```bash python3 -m venv venv source venv/bin/activate ``` ### 3. Instalar Dependências ```bash pip install -r requirements.txt # Para produção, instale também o Gunicorn pip install gunicorn ``` ### 4. Configuração #### 4.1 Inventário de Hosts Crie ou edite o arquivo `hosts.json` na raiz do projeto com as credenciais das OLTs. ```json { "10.186.203.14": { "username": "admin", "password": "senha_segura", "driver": "nokia", "port": 22, "ssh_options": { "disabled_algorithms": { "pubkeys": ["rsa-sha2-256", "rsa-sha2-512"] } } } } ``` #### 4.2 Variáveis de Ambiente (Opcional) Você pode sobrescrever configurações padrão via variáveis de ambiente ou editando `config.py`. ### 5. Execução como Serviço (Systemd) Para garantir que a API inicie automaticamente e rode em background, crie um serviço systemd. Crie o arquivo `/etc/systemd/system/zabbix-api.service`: ```ini [Unit] Description=Zabbix OLT API After=network.target [Service] User=root Group=root WorkingDirectory=/opt/zbx-ipv0 Environment="PATH=/opt/zbx-ipv0/venv/bin" ExecStart=/opt/zbx-ipv0/venv/bin/gunicorn --workers 4 --bind 0.0.0.0:5000 app:app Restart=always [Install] WantedBy=multi-user.target ``` Ative e inicie o serviço: ```bash sudo systemctl daemon-reload sudo systemctl enable zabbix-api sudo systemctl start zabbix-api sudo systemctl status zabbix-api ``` ## Teste Verifique se a API está rodando: ```bash curl http://127.0.0.1:5000/api/v1/pon_stats?host=SEU_IP_DA_OLT ```