# INSTRUÇÕES DE INSTALAÇÃO - AGENTE ZABBIX P/ OPENVPN (CACHE MODE) ================================================================== Para que o monitoramento do OpenVPN funcione no Template Hybrid Gold (v2+), você deve realizar os passos abaixo em CADA firewall pfSense. ⚠️ NOTA IMPORTANTE: Esta versão utiliza um sistema de CACHE para evitar timeouts no Zabbix. - openvpn-collector.sh: Roda via CRON a cada minuto e coleta dados dos sockets. - openvpn-discovery.sh: Apenas lê o cache instantaneamente. REQUISITOS ---------- 1. Acesso SSH ao pfSense (Opção 8 no console). 2. Pacote "Zabbix Agent" instalado no pfSense (System > Package Manager). 3. OpenVPN rodando e com usuários conectados. PASSO 1: INSTALAR OS SCRIPTS ---------------------------- 1. Crie a pasta se não existir: mkdir -p /opt/zabbix/ 2. Copie os arquivos da pasta 'files/' para o firewall em '/opt/zabbix/': - openvpn-collector.sh - openvpn-discovery.sh 3. Dê permissão de execução: chmod +x /opt/zabbix/openvpn-collector.sh chmod +x /opt/zabbix/openvpn-discovery.sh PASSO 2: CONFIGURAR O CRON JOB ------------------------------ Como a coleta via socket é pesada para o timeout do agente, usamos o cron para atualizar o cache. 1. Instale o pacote "Cron" no pfSense (opcional, mas facilita) OU edite via terminal: vi /etc/crontab 2. Adicione a seguinte linha no final do arquivo: * * * * * root /opt/zabbix/openvpn-collector.sh 3. Salve e saia. O cron irá atualizar o arquivo /tmp/openvpn_discovery.json a cada minuto. PASSO 3: HABILITAR PERMISSÕES E INCLUDE NO AGENTE ------------------------------------------------- O usuário 'zabbix' precisa de permissão para ler os sockets e o arquivo de configuração de UserParameter precisa ser carregado. 1. Edite o arquivo de configuração do agente: vi /usr/local/etc/zabbix7/zabbix_agentd.conf (O caminho pode variar: zabbix6, zabbix5, etc) 2. Adicione/Verifique as seguintes configurações: # Carregar UserParameters Include=/usr/local/etc/zabbix7/zabbix_agentd.conf.d/*.conf # Aumentar Timeout (recomendado) Timeout=30 # Permitir execução de comandos remotos (se necessário para debug) UnsafeUserParameters=1 3. Adicione o usuário zabbix ao grupo 'wheel' para ter acesso aos sockets do OpenVPN: pw groupmod wheel -m zabbix PASSO 4: INSTALAR USERPARAMETERS -------------------------------- 1. Copie o arquivo 'files/userparameter_openvpn.conf' para '/usr/local/etc/zabbix7/zabbix_agentd.conf.d/userparameter_openvpn.conf' PASSO 5: REINICIAR E TESTAR --------------------------- 1. Reinicie o agente: service zabbix_agentd restart 2. Gere o cache manualmente pela primeira vez: /opt/zabbix/openvpn-collector.sh 3. Teste a leitura do discovery pelo agente: zabbix_agentd -t openvpn.discovery Deve retornar algo como: [t|{"data":[{"{#VPN.USER}":"joao",...}]}] TROUBLESHOOTING --------------- - Se zabbix_agentd -t retornar "Permission denied": Verifique se o usuário zabbix está no grupo wheel. - Se retornar TIMEOUT: Verifique se você está usando o script DE LEITURA (openvpn-discovery.sh) no UserParameter e não o coletor. - Se retornar VAZIO { "data": [] }: Execute o coletor manualmente e veja se gera erros. Verifique se existem arquivos em /var/etc/openvpn/server*/sock