templates-zabbix-itguys/templates_gold/pfsense_hybrid_snmp_agent/files/INSTALL_OPENVPN.md

2.6 KiB

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

# 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

# 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

service zabbix_agentd restart

Passo 4: Testar a Instalação

# 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

# Adicione o usuário zabbix ao grupo wheel (temporário)
pw groupmod wheel -m zabbix
service zabbix_agentd restart

Testar manualmente um socket

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)