106 lines
3.4 KiB
Markdown
106 lines
3.4 KiB
Markdown
# 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` à lista `snmp_oid`.
|
|
- **Código Atual (Referência):**
|
|
```yaml
|
|
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:**
|
|
```yaml
|
|
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`).
|
|
```yaml
|
|
- 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:**
|
|
```yaml
|
|
- 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:**
|
|
```yaml
|
|
- 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:**
|
|
```yaml
|
|
- 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:**
|
|
```powershell
|
|
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.
|