97 lines
2.2 KiB
Markdown
97 lines
2.2 KiB
Markdown
# 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
|
|
```
|