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