# MANUAL TÉCNICO - PLANEJAMENTO DE INFRAESTRUTURA E SIZING - ZAMMAD **Código:** ITGENG 0001/26 | **Classificação:** INTERNO **Responsável:** João Pedro Toledo Gonçalves | **Data:** {{DATA_ATUAL}} ## 1. HISTÓRICO DE REVISÃO | Data | Versão | Descrição | Autor | | :--- | :--- | :--- | :--- | | {{DATA_ATUAL}} | 1.0 | Criação Inicial | João Pedro Toledo Gonçalves | ## 2. OBJETIVO Definir especificações de hardware e ajustes de kernel para garantir performance do Zammad (particularmente do Elasticsearch e PostgreSQL). ## 3. PRÉ-REQUISITOS * [ ] Conhecimento de Virtualização ou Docker. ## 4. DADOS TÉCNICOS E SIZING ### Tabela de Sizing (Recomendação iT Guys) | Usuários Simultâneos | Tickets/Dia | CPU (vCores) | RAM (Total) | RAM (Elastic) | Disco (NVMe) | | :--- | :--- | :--- | :--- | :--- | :--- | | **Pequeno (Até 5)** | < 50 | 2 vCores | 6 GB | 1 GB | 40 GB | | **Médio (Até 20)** | 50-200 | 4 vCores | 8 GB | 2 GB | 80 GB | | **Grande (Até 50)** | 200-1000 | 8 vCores | 16 GB | 4 GB | 160 GB | | **Enterprise (> 50)** | > 1000 | 16 vCores | 32 GB | 8 GB | 500 GB | !!! warning "Atenção: Elasticsearch é Faminto" O Zammad pode rodar com 4GB, mas sofrerá OOM Kills se o Elastic não for limitado. ### Ajustes Críticos de Kernel (Host) Para qualquer instalação (Docker ou Package), o Host deve ter: ```bash # Aumentar contagem de mapas de memória (Obrigatório para Elastic) sysctl -w vm.max_map_count=262144 # Aumentar limite de conexões sysctl -w net.core.somaxconn=1024 ``` ### Configuração de Postgres (Tuning) Em ambientes com muitos agentes, o padrão de conexões (100) pode esgotar. * Arquivo: `postgresql.conf` * Parâmetro: `max_connections` * Cálculo: `Agentes x 3 + Scheduler + Webserver` * Recomendado: **200** para ambientes Médios. ## 5. SOLUÇÃO DE PROBLEMAS (TROUBLESHOOTING) !!! warning "Pânico: Lentidão Extrema" O sistema não cai, mas demora 10s para abrir um ticket. **Problema 1: CPU em 100% constante (Indexing)** * **Causa:** O Elasticsearch está reconstruindo o índice ou sofrendo GC (Garbage Collection). * **Diagnóstico:** ```bash curl localhost:9200/_cluster/health?pretty ``` Se estiver `red`, ele está falhando. Se `yellow` com `relocating_shards`, está trabalhando. **Problema 2: Zammad lento na busca** * **Causa:** Disco magnético (HDD). * **Solução:** O Zammad EXIGE Baixa Latência de IO. Mova para **SSD/NVMe**. **Problema 3: Erro 502 frequente** * **Causa:** O Puma (Rails Server) está reiniciando por falta de RAM. * **Log:** `dmesg | grep -i kill` (Procure por `OOMKiller`). * **Solução:** Adicione Swap ou aumente a RAM da VM. ## 6. VALIDAÇÃO DE PERFORMANCE - [ ] O tempo de carregamento do Dashboard é < 2 segundos? - [ ] A busca de tickets retorna resultados em < 1 segundo?