76 lines
3.6 KiB
Markdown
76 lines
3.6 KiB
Markdown
# 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.
|