templates-zabbix-itguys/templates_gold/nginx_agent/agent_execution_plan.md

3.6 KiB

Protocolo de Execução AI: Nginx Intelligence Suite (Clean Version)

Destino: templates_gold/nginx_agent/ Objetivo: Instruções diretivas para geração de código Zabbix 7.0 YAML.


🏗️ 1. Definição de Artefatos

O Agente deve gerar exatamente três arquivos com as especificações abaixo.

1.1 template_nginx_manager_gold.yaml

Função: Monitoramento do Serviço Global (Pad), Discovery de Sites e Auditoria de Config. Grupo: Templates/Applications

Item Key Tipo Trigger/Lógica
nginx.workers.utilization Calculated (Active Conn / (Workers * Limit)) * 100. Alerta > 80%.
proc.num[nginx,files_open] Agent Trigger se próximo do ulimit -n do sistema.
nginx.uptime Agent Trigger "Reload Storm" se uptime resetar > 3x/hora.
proc.cpu.util[nginx,user/system] Agent Monitorar overhead de sistema (Context Switch).
nginx.requests.400 Simple Check Spike Detection (Indício de Fuzzing/Exploit).
vfs.file.cksum[/etc/nginx/nginx.conf] Agent Trigger "Global Config Changed".
system.run[nginx -t 2>&1] Agent Trigger "Configuração Inválida" (Retorno != successful).
Discovery Rules:
nginx.site.discovery Script/UserParam Lista arquivos em /etc/nginx/sites-enabled/. Cria Hosts.
nginx.compliance.audit vfs.file.regexp Valida regras do nginx_best_practices.md em cada .conf.

1.2 template_nginx_site_satellite_gold.yaml

Função: Monitoramento detalhado por Site (Virtual Host). Vinculado via Discovery do Manager. Grupo: Templates/Nginx Satellites

A. Log Analytics (Passivo)

Item Mestre: log[{#SITE_LOG}] (Type: Zabbix Active, Format: JSON).

Feature Métricas Derivadas (Dependent Items)
Performance request_time, upstream_response_time, hits, bytes_sent.
Marketing Conversão Funil ({$MATCH_START} vs {$MATCH_GOAL}), Top Browsers.
Segurança Hits em Honeytokens (/admin.bak), WAF Blocks, Data Leak (>Avg Bytes).
Forensics Cache Status (HIT/MISS), GeoIP.

B. Web Scenarios (Ativo)

Conceito: O Zabbix Agent (ou Server) acessa a URL externamente.

  1. Health Check: GET http://{#SITE_NAME}/. Espera CODE=200 e String="html".
  2. Security Probe: GET http://{#SITE_NAME}/.env. Espera CODE=403/404. Se 200 => CRITICAL.

C. Route Discovery (Crawler)

Regra LLD: nginx.route.discovery[{#SITE_CONF}]. Lógica: Regex que extrai location /path { do arquivo de config. Protótipos:

  1. Log Check: % Erro 5xx na rota específica.
  2. Web Check: web.page.get na rota para validar disponibilidade.

1.3 deploy_instructions.md

Conteúdo Obrigatório:

  1. Log Format: O snippet exato do log_format structured_json para colocar no nginx.conf.
  2. UserParameters: Os comandos bash para descoberta de sites e rotas.
  3. Permissões: Comandos chmod/chown para garantir leitura dos logs (adm group).
  4. Macros: Lista de macros obrigatórias ({$NGINX.LOG.PATH}, etc).

🧪 2. Validação & Gold Standard

O código gerado DEVE obedecer:

  1. Nomes em PT-BR: "Latência do Backend" (Não "Upstream Time").
  2. Descrições Ricas: Explicar O QUE é e O QUE FAZER na descrição da Trigger.
  3. Tags: Todo item deve ter Tags (Component: Security, Layer: App, etc).
  4. UUIDs: Gerar UUIDs v4 estáticos para evitar duplicação na importação.
  5. Sem Scripts Externos desnecessários: Usar funcionalidades nativas onde possível.

Status: Pronto para Execução.