diff --git a/templates_gold/pfsense_hybrid_snmp_agent/INSTRUCOES_AGENTE.txt b/templates_gold/pfsense_hybrid_snmp_agent/INSTRUCOES_AGENTE.txt index fdc8520..2b39ce2 100644 --- a/templates_gold/pfsense_hybrid_snmp_agent/INSTRUCOES_AGENTE.txt +++ b/templates_gold/pfsense_hybrid_snmp_agent/INSTRUCOES_AGENTE.txt @@ -84,3 +84,28 @@ 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 + +PASSO 6: INSTALAR O ACCESS TRACKER (REPLAY DE ACESSOS) [OPCIONAL] +------------------------------------------------------------------ +O Access Tracker é um script adicional que correlaciona usuários VPN com a tabela de estados do firewall, +permitindo visualizar quais destinos cada usuário acessou (replay de sessão). + +1. Copie o arquivo 'files/openvpn-access-tracker.sh' para '/opt/zabbix/': + chmod +x /opt/zabbix/openvpn-access-tracker.sh + +2. Adicione ao cron (executa a cada minuto): + echo '* * * * * root /opt/zabbix/openvpn-access-tracker.sh' >> /etc/crontab + +3. O script gerará logs em /var/log/openvpn_user_activity.log + Formato: TIMESTAMP|USER|VIRTUAL_IP|DESTINO:PORTA|PROTOCOLO|ESTADO + +Nota: Este script requer que o openvpn-collector.sh esteja rodando (usa o cache de métricas). + +NOVAS MÉTRICAS DISPONÍVEIS (v7) +------------------------------- +- openvpn.user.time_online[USER]: Tempo online em segundos +- openvpn.user.bytes_recv.cached[USER]: Bytes recebidos (cache) +- openvpn.user.bytes_sent.cached[USER]: Bytes enviados (cache) +- openvpn.access.destinations[USER]: Lista de destinos acessados +- openvpn.access.log.tail[N]: Últimas N linhas do log de replay + diff --git a/templates_gold/pfsense_hybrid_snmp_agent/files/INSTALL_OPENVPN.md b/templates_gold/pfsense_hybrid_snmp_agent/files/INSTALL_OPENVPN.md index 22452e4..c6a6702 100644 --- a/templates_gold/pfsense_hybrid_snmp_agent/files/INSTALL_OPENVPN.md +++ b/templates_gold/pfsense_hybrid_snmp_agent/files/INSTALL_OPENVPN.md @@ -91,3 +91,44 @@ zabbix_agentd -t openvpn.discovery # Saída esperada (imediata): # [t|{"data":[{"{#VPN.USER}":"joao.silva"...}]}] ``` + +--- + +## Passo 6: Instalar Access Tracker (Replay de Acessos) [OPCIONAL] + +O **Access Tracker** correlaciona usuários VPN com a tabela de estados do firewall (`pfctl`), gerando um log de atividade para replay. + +```bash +# Copie e dê permissão: +chmod +x /opt/zabbix/openvpn-access-tracker.sh + +# Adicione ao cron: +echo '* * * * * root /opt/zabbix/openvpn-access-tracker.sh' >> /etc/crontab +``` + +**Log gerado:** `/var/log/openvpn_user_activity.log` +**Formato:** `TIMESTAMP|USER|VIRTUAL_IP|DESTINO:PORTA|PROTOCOLO|ESTADO` + +--- + +## Novas Métricas Disponíveis (v7) + +| Chave | Descrição | +|-------|-----------| +| `openvpn.user.time_online[USER]` | Tempo online em segundos | +| `openvpn.user.bytes_recv.cached[USER]` | Bytes recebidos (via cache) | +| `openvpn.user.bytes_sent.cached[USER]` | Bytes enviados (via cache) | +| `openvpn.access.destinations[USER]` | Lista de destinos acessados | +| `openvpn.access.log.tail[N]` | Últimas N linhas do log de replay | +| `openvpn.access.count[USER]` | Contagem de conexões do usuário | + +--- + +## Retenção de Dados no Zabbix + +| Tipo de Dado | Histórico | Tendência | +|--------------|-----------|-----------| +| Logs de Replay (texto) | 30 dias | N/A | +| Métricas (bytes, tempo) | 30 dias | 365 dias | +| Eventos/Alertas | 365 dias | N/A | + diff --git a/templates_gold/pfsense_hybrid_snmp_agent/files/openvpn-access-tracker.sh b/templates_gold/pfsense_hybrid_snmp_agent/files/openvpn-access-tracker.sh new file mode 100644 index 0000000..3a596d3 --- /dev/null +++ b/templates_gold/pfsense_hybrid_snmp_agent/files/openvpn-access-tracker.sh @@ -0,0 +1,68 @@ +#!/bin/sh +# OpenVPN Access Tracker - Sampled Replay (Arthur's Gold Standard v1) +# Correlaciona usuários VPN com a tabela de estados do Packet Filter +# Compatível com: pfSense 2.x / FreeBSD +# +# Instalação: +# 1. Copie para /opt/zabbix/openvpn-access-tracker.sh +# 2. chmod +x /opt/zabbix/openvpn-access-tracker.sh +# 3. Adicione ao cron: */1 * * * * /opt/zabbix/openvpn-access-tracker.sh +# +# Output: /var/log/openvpn_user_activity.log +# Format: TIMESTAMP|USER|REAL_IP|DST_IP:PORT|PROTOCOL + +METRICS_FILE="/tmp/openvpn_metrics.json" +LOG_FILE="/var/log/openvpn_user_activity.log" +TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S") + +# Verifica se temos dados de VPN +if [ ! -f "$METRICS_FILE" ]; then + exit 0 +fi + +# Extrai lista de usuários e seus IPs virtuais +# Formato esperado: "user": { ... "virtual_ip": "10.0.8.5" ... } +user_ips=$(cat "$METRICS_FILE" | sed 's/},{/}\n{/g' | grep -oE '"[^"]+":{"bytes_recv"[^}]+' | \ + sed 's/"//g' | awk -F: '{user=$1; for(i=2;i<=NF;i++) if($i ~ /virtual_ip/) {getline; print user":"$2}}' 2>/dev/null) + +# Alternativa mais robusta: usar jq se disponível, senão parse manual +if command -v jq >/dev/null 2>&1; then + # jq disponível - parse limpo + user_list=$(jq -r 'to_entries[] | "\(.key):\(.value.virtual_ip)"' "$METRICS_FILE" 2>/dev/null) +else + # Parse manual simplificado + user_list=$(cat "$METRICS_FILE" | tr ',' '\n' | tr '{' '\n' | tr '}' '\n' | \ + grep -E '^"[a-zA-Z0-9._-]+"|virtual_ip' | paste - - 2>/dev/null | \ + sed 's/"//g;s/virtual_ip://g' | awk '{print $1":"$2}') +fi + +# Se não temos usuários, sai +[ -z "$user_list" ] && exit 0 + +# Captura tabela de estados +state_table=$(pfctl -ss 2>/dev/null) +[ -z "$state_table" ] && exit 0 + +# Para cada usuário VPN, busca conexões na state table +echo "$user_list" | while IFS=: read -r user vip; do + [ -z "$user" ] || [ -z "$vip" ] && continue + + # Busca estados onde o IP virtual é a origem + # Formato pfctl -ss: all tcp 10.0.8.5:54321 -> 192.168.1.100:443 ESTABLISHED:ESTABLISHED + echo "$state_table" | grep " $vip:" | while read -r state_line; do + # Extrai protocolo, destino + proto=$(echo "$state_line" | awk '{print $2}') + dst=$(echo "$state_line" | awk '{print $4}' | sed 's/->//g') + state=$(echo "$state_line" | awk '{print $NF}') + + [ -z "$dst" ] && continue + + # Loga a atividade + printf "%s|%s|%s|%s|%s|%s\n" "$TIMESTAMP" "$user" "$vip" "$dst" "$proto" "$state" >> "$LOG_FILE" + done +done + +# Rotação simples: mantém só últimas 50000 linhas (~5MB) +if [ -f "$LOG_FILE" ] && [ $(wc -l < "$LOG_FILE") -gt 50000 ]; then + tail -40000 "$LOG_FILE" > "$LOG_FILE.tmp" && mv "$LOG_FILE.tmp" "$LOG_FILE" +fi diff --git a/templates_gold/pfsense_hybrid_snmp_agent/files/openvpn-collector.sh b/templates_gold/pfsense_hybrid_snmp_agent/files/openvpn-collector.sh index 33bedf9..3173276 100644 --- a/templates_gold/pfsense_hybrid_snmp_agent/files/openvpn-collector.sh +++ b/templates_gold/pfsense_hybrid_snmp_agent/files/openvpn-collector.sh @@ -1,5 +1,5 @@ #!/bin/sh -# OpenVPN Discovery - COLETOR (Arthur's Gold Standard v6-CACHE) +# OpenVPN Discovery - COLETOR (Arthur's Gold Standard v7-METRICS) # Este script roda via CRON e grava o resultado em cache # Compatível com: pfSense 2.x / FreeBSD # @@ -7,15 +7,24 @@ # 1. Copie para /opt/zabbix/openvpn-collector.sh # 2. chmod +x /opt/zabbix/openvpn-collector.sh # 3. Adicione ao cron: */1 * * * * /opt/zabbix/openvpn-collector.sh +# +# v7 Changelog: +# - Adicionado métricas expandidas: Bytes Received, Bytes Sent, Connected Since +# - Novo cache secundário para métricas: /tmp/openvpn_metrics.json SOCKET_DIR="/var/etc/openvpn" CACHE_FILE="/tmp/openvpn_discovery.json" CACHE_FILE_TMP="/tmp/openvpn_discovery.json.tmp" +METRICS_FILE="/tmp/openvpn_metrics.json" +METRICS_FILE_TMP="/tmp/openvpn_metrics.json.tmp" -# Inicia JSON +# Inicia JSON de discovery printf '{"data":[' > "$CACHE_FILE_TMP" +# Inicia JSON de métricas +printf '{' > "$METRICS_FILE_TMP" -first=1 +first_discovery=1 +first_metrics=1 # Loop através de cada socket for sockdir in "$SOCKET_DIR"/server*/; do @@ -27,27 +36,41 @@ for sockdir in "$SOCKET_DIR"/server*/; do server_name=$(basename "$sockdir") # Consulta o socket e processa linha por linha + # CLIENT_LIST format: type, cn, realaddr, virtaddr, virtaddr6, bytes_received, bytes_sent, connected_since_human, connected_since_unix, username, clientid, peerid, cipher (echo "status 2"; sleep 0.3; echo "quit") | /usr/bin/nc -U "$sockfile" 2>/dev/null | \ grep "^CLIENT_LIST," | grep -v "Common Name" | \ - while IFS=',' read -r type cn realaddr virtaddr rest; do + while IFS=',' read -r type cn realaddr virtaddr virtaddr6 bytes_recv bytes_sent conn_human conn_unix rest; do [ -z "$cn" ] && continue real_ip=$(echo "$realaddr" | cut -d: -f1) virt_ip=$(echo "$virtaddr" | cut -d: -f1) - if [ $first -eq 0 ]; then - printf ',' + # --- Discovery JSON --- + if [ $first_discovery -eq 0 ]; then + printf ',' >> "$CACHE_FILE_TMP" fi + printf '{"{#VPN.USER}":"%s","{#VPN.SERVER}":"%s","{#VPN.REAL_IP}":"%s","{#VPN.VIRTUAL_IP}":"%s"}' "$cn" "$server_name" "$real_ip" "$virt_ip" >> "$CACHE_FILE_TMP" + first_discovery=0 - printf '{"{#VPN.USER}":"%s","{#VPN.SERVER}":"%s","{#VPN.REAL_IP}":"%s","{#VPN.VIRTUAL_IP}":"%s"}' "$cn" "$server_name" "$real_ip" "$virt_ip" - first=0 - done >> "$CACHE_FILE_TMP" + # --- Metrics JSON --- + # Format: "username": { "bytes_recv": N, "bytes_sent": N, "connected_since": N, "real_ip": "x.x.x.x", "virtual_ip": "y.y.y.y" } + if [ $first_metrics -eq 0 ]; then + printf ',' >> "$METRICS_FILE_TMP" + fi + printf '"%s":{"bytes_recv":%s,"bytes_sent":%s,"connected_since":%s,"real_ip":"%s","virtual_ip":"%s","server":"%s"}' \ + "$cn" "${bytes_recv:-0}" "${bytes_sent:-0}" "${conn_unix:-0}" "$real_ip" "$virt_ip" "$server_name" >> "$METRICS_FILE_TMP" + first_metrics=0 + done - first=0 + first_discovery=0 + first_metrics=0 done printf ']}\n' >> "$CACHE_FILE_TMP" +printf '}\n' >> "$METRICS_FILE_TMP" # Move atomicamente para evitar leitura parcial mv "$CACHE_FILE_TMP" "$CACHE_FILE" +mv "$METRICS_FILE_TMP" "$METRICS_FILE" chmod 644 "$CACHE_FILE" +chmod 644 "$METRICS_FILE" diff --git a/templates_gold/pfsense_hybrid_snmp_agent/files/userparameter_openvpn.conf b/templates_gold/pfsense_hybrid_snmp_agent/files/userparameter_openvpn.conf index d8e091b..7b7529f 100644 --- a/templates_gold/pfsense_hybrid_snmp_agent/files/userparameter_openvpn.conf +++ b/templates_gold/pfsense_hybrid_snmp_agent/files/userparameter_openvpn.conf @@ -40,4 +40,39 @@ UserParameter=openvpn.user.real_address.new[*],for sock in /var/etc/openvpn/serv # Status do usuário (1=conectado, 0=desconectado) # Uso: openvpn.user.status[joao.silva] -UserParameter=openvpn.user.status[*],for sock in /var/etc/openvpn/server*/sock; do [ -S "$sock" ] && (echo "status 2"; sleep 0.2; echo "quit") | /usr/bin/nc -U "$sock" 2>/dev/null | grep -q "^CLIENT_LIST,$1," && echo 1 && exit; done; echo 0 \ No newline at end of file +UserParameter=openvpn.user.status[*],for sock in /var/etc/openvpn/server*/sock; do [ -S "$sock" ] && (echo "status 2"; sleep 0.2; echo "quit") | /usr/bin/nc -U "$sock" 2>/dev/null | grep -q "^CLIENT_LIST,$1," && echo 1 && exit; done; echo 0 + +# ============================================================================ +# MÉTRICAS AVANÇADAS v6 (Arthur's Gold Standard) +# Requer: openvpn-collector.sh rodando via cron (gera /tmp/openvpn_metrics.json) +# ============================================================================ + +# Tempo online em segundos (calculado a partir do connected_since) +# Uso: openvpn.user.time_online[joao.silva] +UserParameter=openvpn.user.time_online[*],conn=$(cat /tmp/openvpn_metrics.json 2>/dev/null | grep -oE '"$1":\{[^}]+' | grep -oE 'connected_since":[0-9]+' | cut -d: -f2); [ -n "$conn" ] && [ "$conn" -gt 0 ] && echo $(( $(date +%s) - $conn )) || echo 0 + +# Métricas via cache JSON (mais rápido que consultar socket) +# Bytes recebidos (via cache) +UserParameter=openvpn.user.bytes_recv.cached[*],cat /tmp/openvpn_metrics.json 2>/dev/null | grep -oE '"$1":\{[^}]+' | grep -oE 'bytes_recv":[0-9]+' | cut -d: -f2 || echo 0 + +# Bytes enviados (via cache) +UserParameter=openvpn.user.bytes_sent.cached[*],cat /tmp/openvpn_metrics.json 2>/dev/null | grep -oE '"$1":\{[^}]+' | grep -oE 'bytes_sent":[0-9]+' | cut -d: -f2 || echo 0 + +# IP Virtual do usuário (via cache) +UserParameter=openvpn.user.virtual_ip.cached[*],cat /tmp/openvpn_metrics.json 2>/dev/null | grep -oE '"$1":\{[^}]+virtual_ip":"[^"]+' | grep -oE 'virtual_ip":"[^"]+' | cut -d'"' -f3 || echo "" + +# ============================================================================ +# LOG DE ACESSO (REPLAY) - Requer: openvpn-access-tracker.sh via cron +# ============================================================================ + +# Últimas N linhas do log de atividade (para widget de replay) +# Uso: openvpn.access.log.tail[100] -> últimas 100 linhas +UserParameter=openvpn.access.log.tail[*],tail -$1 /var/log/openvpn_user_activity.log 2>/dev/null || echo "" + +# Contagem de conexões de um usuário específico (últimas 24h) +# Uso: openvpn.access.count[joao.silva] +UserParameter=openvpn.access.count[*],grep -c "|$1|" /var/log/openvpn_user_activity.log 2>/dev/null || echo 0 + +# Destinos únicos acessados por um usuário (lista) +# Uso: openvpn.access.destinations[joao.silva] +UserParameter=openvpn.access.destinations[*],grep "|$1|" /var/log/openvpn_user_activity.log 2>/dev/null | cut -d'|' -f4 | sort -u | head -50 | tr '\n' ',' | sed 's/,$//' || echo "" \ No newline at end of file diff --git a/templates_gold/pfsense_hybrid_snmp_agent/template_pfsense_hybrid_gold.yaml b/templates_gold/pfsense_hybrid_snmp_agent/template_pfsense_hybrid_gold.yaml index 95ced80..1fc4312 100644 --- a/templates_gold/pfsense_hybrid_snmp_agent/template_pfsense_hybrid_gold.yaml +++ b/templates_gold/pfsense_hybrid_snmp_agent/template_pfsense_hybrid_gold.yaml @@ -2755,6 +2755,123 @@ zabbix_export: newvalue: Disponível - value: '2' newvalue: Desconhecido + - uuid: 830106fa5d2a45f9897c9154431eef08 + name: VPN User Status + mappings: + - value: '0' + newvalue: Desconectado + - value: '1' + newvalue: Conectado + discovery_rules_vpn: + - uuid: 34ed656ffcf845b0b5598870de258002 + name: Descoberta de Usuários OpenVPN + type: ZABBIX_ACTIVE + key: openvpn.discovery + delay: 5m + description: | + Descobre usuários conectados ao OpenVPN através do script openvpn-discovery.sh. + Requisito: Zabbix Agent ativo com UserParameter configurado. + item_prototypes: + - uuid: a8a060a8e0494d3d99a71cd4f2b6a7c8 + name: 'OpenVPN [{#VPN.USER}]: Download Total (Bytes)' + type: ZABBIX_ACTIVE + key: 'openvpn.user.bytes_recv.cached[{#VPN.USER}]' + delay: 1m + history: 30d + trends: 365d + units: B + description: Total de bytes recebidos (download) pelo usuário VPN. + tags: + - tag: component + value: vpn + - tag: vpn_user + value: '{#VPN.USER}' + - uuid: 36362e120e9445a1bbdc750afc0f6a1f + name: 'OpenVPN [{#VPN.USER}]: Upload Total (Bytes)' + type: ZABBIX_ACTIVE + key: 'openvpn.user.bytes_sent.cached[{#VPN.USER}]' + delay: 1m + history: 30d + trends: 365d + units: B + description: Total de bytes enviados (upload) pelo usuário VPN. + tags: + - tag: component + value: vpn + - tag: vpn_user + value: '{#VPN.USER}' + - uuid: 7eee5d914f0346c8a2b1c3d4e5f6a7b8 + name: 'OpenVPN [{#VPN.USER}]: Tempo Online (Segundos)' + type: ZABBIX_ACTIVE + key: 'openvpn.user.time_online[{#VPN.USER}]' + delay: 1m + history: 30d + trends: 365d + units: s + description: Tempo de conexão do usuário VPN em segundos. + tags: + - tag: component + value: vpn + - tag: vpn_user + value: '{#VPN.USER}' + - uuid: c3a4b5c6d7e84f0991a2b3c4d5e6f7a8 + name: 'OpenVPN [{#VPN.USER}]: Status' + type: ZABBIX_ACTIVE + key: 'openvpn.user.status[{#VPN.USER}]' + delay: 1m + history: 30d + trends: '0' + valuemap: + name: VPN User Status + description: Status de conexão do usuário VPN (1=conectado, 0=desconectado). + tags: + - tag: component + value: vpn + - tag: vpn_user + value: '{#VPN.USER}' + - uuid: 1f2a3b4c5d6e4f8a9b0c1d2e3f4a5b6c + name: 'OpenVPN [{#VPN.USER}]: IP Real' + type: ZABBIX_ACTIVE + key: 'openvpn.user.real_address.new[{#VPN.USER}]' + delay: 1m + history: 30d + trends: '0' + value_type: TEXT + description: Endereço IP real (público) do usuário VPN. + tags: + - tag: component + value: vpn + - tag: vpn_user + value: '{#VPN.USER}' + - uuid: 9e8d7c6b5a4941f2bccd1e2f3a4b5c6d + name: 'OpenVPN [{#VPN.USER}]: Destinos Acessados' + type: ZABBIX_ACTIVE + key: 'openvpn.access.destinations[{#VPN.USER}]' + delay: 5m + history: 30d + trends: '0' + value_type: TEXT + description: Lista de destinos únicos acessados pelo usuário VPN (para replay). + tags: + - tag: component + value: vpn + - tag: component + value: audit + - tag: vpn_user + value: '{#VPN.USER}' + graph_prototypes: + - uuid: 2b3c4d5e6f7a4892abcd1e2f3a4b5c6d + name: 'OpenVPN [{#VPN.USER}]: Tráfego' + graph_items: + - color: 199C0D + item: + host: 'PFSense by SNMP' + key: 'openvpn.user.bytes_recv.cached[{#VPN.USER}]' + - sortorder: '1' + color: F63100 + item: + host: 'PFSense by SNMP' + key: 'openvpn.user.bytes_sent.cached[{#VPN.USER}]' graphs: - uuid: 18b72f3eafe54206a574f431e7bb563a name: 'PFSense: Códigos de Motivo (Packet Filter)' diff --git a/templates_gold/pfsense_hybrid_snmp_agent/template_pfsense_hybrid_gold_generated.md b/templates_gold/pfsense_hybrid_snmp_agent/template_pfsense_hybrid_gold_generated.md index 897116a..5c42482 100644 --- a/templates_gold/pfsense_hybrid_snmp_agent/template_pfsense_hybrid_gold_generated.md +++ b/templates_gold/pfsense_hybrid_snmp_agent/template_pfsense_hybrid_gold_generated.md @@ -1,21 +1,18 @@ -# Documentação: PFSense Hybrid: SNMP + OpenVPN Agent +# Documentação: PFSense by SNMP -**Template:** PFSense Hybrid: SNMP + OpenVPN Agent +**Template:** PFSense by SNMP **Descrição:** -Template Híbrido para monitoramento do pfSense. - -SNMP: Monitoramento de interfaces, firewall, serviços (DHCP, DNS, Nginx). -Agent: Monitoramento avançado de OpenVPN (usuários, túneis S2S, tráfego). - -Requisitos: - 1. Habilite o daemon SNMP em Services na interface web do pfSense. - 2. Instale o Zabbix Agent e configure os UserParameters OpenVPN (ver INSTRUCOES_AGENTE.txt). +Template para monitoramento do pfSense via SNMP +Configuração: + 1. Habilite o daemon SNMP em Services na interface web do pfSense: https://docs.netgate.com/pfsense/en/latest/services/snmp.html + 2. Configure a regra de firewall para permitir acesso do Zabbix Proxy/Server via SNMP: https://docs.netgate.com/pfsense/en/latest/firewall/index.html#managing-firewall-rules 3. Associe o template ao host. -MIBs: BEGEMOT-PF-MIB, HOST-RESOURCES-MIB -Keys Agent: openvpn.* +MIBs usadas: +BEGEMOT-PF-MIB +HOST-RESOURCES-MIB -Gerado pelo Padrão Gold (Arthur) - ITGuys +Gerado originalmente pela ferramenta oficial "Templator", Otimizado para Padrão Gold (Arthur) ## Itens Monitorados @@ -45,6 +42,36 @@ Gerado pelo Padrão Gold (Arthur) - ITGuys ### Regras de Descoberta (LLD) +#### Descoberta de interfaces de rede (`pfsense.net.if.discovery`) + - **Protótipos de Itens:** + - Interface [{#IFNAME}({#IFALIAS})]: Tráfego IPv4 de entrada bloqueado (`net.if.in.block.v4.bps[{#SNMPINDEX}]`) + - Interface [{#IFNAME}({#IFALIAS})]: Pacotes IPv4 de entrada bloqueados (`net.if.in.block.v4.pps[{#SNMPINDEX}]`) + - Interface [{#IFNAME}({#IFALIAS})]: Tráfego IPv6 de entrada bloqueado (`net.if.in.block.v6.bps[{#SNMPINDEX}]`) + - Interface [{#IFNAME}({#IFALIAS})]: Pacotes IPv6 de entrada bloqueados (`net.if.in.block.v6.pps[{#SNMPINDEX}]`) + - Interface [{#IFNAME}({#IFALIAS})]: Pacotes de entrada descartados (`net.if.in.discards[{#SNMPINDEX}]`) + - Interface [{#IFNAME}({#IFALIAS})]: Pacotes de entrada com erros (`net.if.in.errors[{#SNMPINDEX}]`) + - Interface [{#IFNAME}({#IFALIAS})]: Tráfego IPv4 de entrada permitido (`net.if.in.pass.v4.bps[{#SNMPINDEX}]`) + - Interface [{#IFNAME}({#IFALIAS})]: Pacotes IPv4 de entrada permitidos (`net.if.in.pass.v4.pps[{#SNMPINDEX}]`) + - Interface [{#IFNAME}({#IFALIAS})]: Tráfego IPv6 de entrada permitido (`net.if.in.pass.v6.bps[{#SNMPINDEX}]`) + - Interface [{#IFNAME}({#IFALIAS})]: Pacotes IPv6 de entrada permitidos (`net.if.in.pass.v6.pps[{#SNMPINDEX}]`) + - Interface [{#IFNAME}({#IFALIAS})]: Bits recebidos (`net.if.in[{#SNMPINDEX}]`) + - Interface [{#IFNAME}({#IFALIAS})]: Tráfego IPv4 de saída bloqueado (`net.if.out.block.v4.bps[{#SNMPINDEX}]`) + - Interface [{#IFNAME}({#IFALIAS})]: Pacotes IPv4 de saída bloqueados (`net.if.out.block.v4.pps[{#SNMPINDEX}]`) + - Interface [{#IFNAME}({#IFALIAS})]: Tráfego IPv6 de saída bloqueado (`net.if.out.block.v6.bps[{#SNMPINDEX}]`) + - Interface [{#IFNAME}({#IFALIAS})]: Pacotes de saída descartados (`net.if.out.discards[{#SNMPINDEX}]`) + - Interface [{#IFNAME}({#IFALIAS})]: Pacotes de saída com erros (`net.if.out.errors[{#SNMPINDEX}]`) + - Interface [{#IFNAME}({#IFALIAS})]: Tráfego IPv4 de saída permitido (`net.if.out.pass.v4.bps[{#SNMPINDEX}]`) + - Interface [{#IFNAME}({#IFALIAS})]: Pacotes IPv4 de saída permitidos (`net.if.out.pass.v4.pps[{#SNMPINDEX}]`) + - Interface [{#IFNAME}({#IFALIAS})]: Tráfego IPv6 de saída permitido (`net.if.out.pass.v6.bps[{#SNMPINDEX}]`) + - Interface [{#IFNAME}({#IFALIAS})]: Pacotes IPv6 de saída permitidos (`net.if.out.pass.v6.pps[{#SNMPINDEX}]`) + - Interface [{#IFNAME}({#IFALIAS})]: Bits enviados (`net.if.out[{#SNMPINDEX}]`) + - Interface [{#IFNAME}({#IFALIAS})]: Contagem de referências de regras (`net.if.rules.refs[{#SNMPINDEX}]`) + - Interface [{#IFNAME}({#IFALIAS})]: Velocidade (`net.if.speed[{#SNMPINDEX}]`) + - Interface [{#IFNAME}({#IFALIAS})]: Status operacional (`net.if.status[{#SNMPINDEX}]`) + - Interface [{#IFNAME}({#IFALIAS})]: Tipo de interface (`net.if.type[{#SNMPINDEX}]`) +#### Descoberta de Processos DHCP (`pfsense.dhcp.discovery`) + - **Protótipos de Itens:** + - Processo DHCP [{#HR_SW_PARAMS}]: Status (`pfsense.dhcp.process.status[{#HR_SW_PARAMS}]`) #### Descoberta de Usuários OpenVPN (`openvpn.discovery`) - **Protótipos de Itens:** - OpenVPN [{#VPN.USER}]: Download Total (Bytes) (`openvpn.user.bytes_received.total[{#VPN.USER}]`) @@ -70,4 +97,13 @@ Gerado pelo Padrão Gold (Arthur) - ITGuys ### Protótipos de Triggers (LLD) +**Regra: Descoberta de interfaces de rede** +- [WARNING] **🐢 Congestionamento: Descartes na interface {#IFNAME}** +- [WARNING] **⚠️ PFSense: Interface [{#IFNAME}({#IFALIAS})]: Alta taxa de erros de entrada** +- [WARNING] **⚠️ PFSense: Interface [{#IFNAME}({#IFALIAS})]: Alta taxa de erros de saída** +- [AVERAGE] **🔌 PFSense: Interface [{#IFNAME}({#IFALIAS})]: Link indisponível** + +**Regra: Descoberta de Processos DHCP** +- [HIGH] **🚨 DHCP Parado: Instância {#HR_SW_PARAMS} não está rodando** + **Regra: Descoberta de Usuários OpenVPN**