3.4 KiB
3.4 KiB
Plano de Execução: Monitoramento DHCP Multi-Instância pfSense
Este documento guia o agente de IA na implementação do monitoramento granular de DHCP no pfSense, conforme definido no plano de implementação.
Arquivo Alvo: templates_gold/template_app_pfsense_snmp.yaml
1. Enriquecimento da Coleta SNMP (Item)
Objetivo: Adicionar a OID de parâmetros (hrSWRunParameters) ao item de coleta de software para permitir diferenciar processos dhcpd.
- Ação: Localizar o item com
key: pfsense.sw.walk. - Alteração: Adicionar a OID
1.3.6.1.2.1.25.4.2.1.5à listasnmp_oid. - Código Atual (Referência):
snmp_oid: walk[1.3.6.1.2.1.25.4.2.1.2,1.3.6.1.2.1.25.4.2.1.7] - Código Novo:
snmp_oid: walk[1.3.6.1.2.1.25.4.2.1.2,1.3.6.1.2.1.25.4.2.1.7,1.3.6.1.2.1.25.4.2.1.5] - Atualização do Preprocessing: Adicionar o passo para mapear a nova OID para um nome JSON (ex:
hrSWRunParameters).- type: SNMP_WALK_TO_JSON parameters: ... - hrSWRunParameters - 1.3.6.1.2.1.25.4.2.1.5 - '0'
2. Implementação da Regra de Descoberta (LLD)
Objetivo: Criar uma nova regra de descoberta para detectar instâncias individuais do dhcpd.
- Local: Seção
discovery_rules. - Nova Regra:
- uuid: (gerar_novo_uuid_v4) name: 'Descoberta de Processos DHCP' type: DEPENDENT key: pfsense.dhcp.discovery delay: '0' description: 'Descobre instâncias do DHCP Server (dhcpd) diferenciadas por parâmetros (ex: IPv4 vs IPv6).' master_item: key: pfsense.sw.walk filter: evaltype: AND conditions: - macro: '{#HR_SW_NAME}' value: 'dhcpd' formulaid: A lld_macro_paths: - lld_macro: '{#HR_SW_NAME}' path: '$.hrSWRunName' - lld_macro: '{#HR_SW_PARAMS}' path: '$.hrSWRunParameters' - lld_macro: '{#HR_SW_STATUS}' path: '$.hrSWRunStatus'
3. Protótipos de Itens e Triggers
Objetivo: Monitorar o status de cada instância descoberta.
-
Item Prototype:
- uuid: (gerar_novo_uuid_v4) name: 'Status do Processo DHCP: {#HR_SW_PARAMS}' type: DEPENDENT key: 'pfsense.dhcp.process.status[{#HR_SW_PARAMS}]' delay: '0' description: 'Status da instância DHCP rodando com argumentos: {#HR_SW_PARAMS}' valuemap: name: 'Services status' preprocessing: - type: JSONPATH parameters: - '$[?(@.hrSWRunName == "{#HR_SW_NAME}" && @.hrSWRunParameters == "{#HR_SW_PARAMS}")].hrSWRunStatus.first()' master_item: key: pfsense.sw.walk tags: - tag: component value: application -
Trigger Prototype:
- uuid: (gerar_novo_uuid_v4) expression: 'last(/PFSense by SNMP/pfsense.dhcp.process.status[{#HR_SW_PARAMS}])=0' name: '🚨 DHCP Parado: Instância {#HR_SW_PARAMS} não está rodando' priority: HIGH description: 'A instância do DHCP com parâmetros "{#HR_SW_PARAMS}" parou de responder.'
4. Validação Automática (Mandatório)
Objetivo: Garantir que o template resultante seja válido e siga padrões (UUIDs únicos, etc).
- Comando:
python validate_zabbix_template.py templates_gold/template_app_pfsense_snmp.yaml - Critério de Sucesso: O script deve retornar
[SUCCESS] YAML Structure & UUIDs are VALID.sem erros fatais.