2.6 KiB
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
- Acesse Configuração → Templates → Importar
- Selecione o arquivo
template_pfsense_hybrid_gold.yaml - 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
zabbixprecisa 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) |