# Instalação do Monitoramento OpenVPN no pfSense ## Padrão IT Guys Gold (v2 - Management Interface) Este guia descreve como instalar os scripts de monitoramento OpenVPN no pfSense usando a Management Interface via sockets Unix. --- ## Pré-requisitos - pfSense 2.x ou superior - Zabbix Agent 2 instalado (pacote `zabbix-agent72`) - Pelo menos um servidor OpenVPN configurado --- ## Passo 1: Copiar o Script de Discovery ```bash # Via SSH no pfSense: mkdir -p /opt/zabbix # Copie o conteúdo do arquivo openvpn-discovery.sh para: vi /opt/zabbix/openvpn-discovery.sh # Torne executável chmod +x /opt/zabbix/openvpn-discovery.sh ``` --- ## Passo 2: Instalar os UserParameters ```bash # Copie o conteúdo do arquivo userparameter_openvpn.conf para: vi /usr/local/etc/zabbix72/zabbix_agentd.conf.d/userparameter_openvpn.conf ``` --- ## Passo 3: Reiniciar o Zabbix Agent ```bash service zabbix_agentd restart ``` --- ## Passo 4: Testar a Instalação ```bash # Testar discovery de usuários zabbix_agentd -t openvpn.discovery # Saída esperada (JSON com usuários conectados): # {"data":[{"{#VPN.USER}":"joao.silva","{#VPN.SERVER}":"server14",...}]} # Testar contagem total de usuários zabbix_agentd -t openvpn.user.count.total # Testar status de servidor específico zabbix_agentd -t openvpn.server.status[server14] ``` --- ## Passo 5: Importar Template no Zabbix 1. Acesse **Configuração → Templates → Importar** 2. Selecione o arquivo `template_pfsense_hybrid_gold.yaml` 3. Clique em **Importar** --- ## Troubleshooting ### Script retorna `{"data":[]}` - Verifique se os sockets existem: `ls -la /var/etc/openvpn/server*/sock` - Verifique permissões: o usuário `zabbix` precisa ler os sockets ### Erro de permissão nos sockets ```bash # Adicione o usuário zabbix ao grupo wheel (temporário) pw groupmod wheel -m zabbix service zabbix_agentd restart ``` ### Testar manualmente um socket ```bash echo "status 2" | nc -U /var/etc/openvpn/server14/sock ``` --- ## Métricas Disponíveis | UserParameter | Descrição | |---------------|-----------| | `openvpn.discovery` | Discovery LLD de usuários conectados | | `openvpn.server.discovery` | Discovery LLD de servidores OpenVPN | | `openvpn.user.count.total` | Total de usuários conectados | | `openvpn.user.count[serverX]` | Usuários por servidor | | `openvpn.server.status[serverX]` | Status do servidor (1/0) | | `openvpn.user.bytes_received[user]` | Bytes recebidos pelo usuário | | `openvpn.user.bytes_sent[user]` | Bytes enviados pelo usuário | | `openvpn.user.connected_since[user]` | Timestamp de conexão | | `openvpn.user.status[user]` | Status do usuário (1/0) |