templates-zabbix-itguys/README.md

8.9 KiB
Raw Blame History

🛡️ Zabbix ITGuys - Gold Collection

Repositório Oficial de Ferramentas e Templates de Monitoramento de Alta Performance.

"Um alerta sem contexto é apenas ruído. Um alerta com solução é uma ferramenta." — Arthur "O Farol" Mendes

Este repositório contém a suíte de ferramentas e templates "Gold Standard" desenvolvida pela ITGuys para elevar o nível da observabilidade Zabbix. Aqui focamos em inteligência acionável, não apenas em coleta de dados.


🏆 O Padrão Arthur (Gold Standard)

Todo recurso neste repositório segue rigorosos critérios de qualidade:

  1. 🇧🇷 Localização Total: Tudo o que o operador vê (Items, Triggers, Graphs) está em Português do Brasil (PT-BR), claro e profissional.
  2. 🧠 Inteligência Acionável: Alertas explicam o motivo, o impacto e a solução.
  3. 🔮 Preditividade: Uso de funções como timeleft() e detecção de anomalias para prevenir incidentes antes que ocorram.
  4. Integridade Técnica: UUIDs v4 válidos, sem dependências quebradas e sintaxe YAML impecável.

🧰 Ferramentas (Toolchain)

Scripts em Python desenvolvidos para garantir a integridade e qualidade dos templates.

1. validate_zabbix_template.py (The Gatekeeper)

O validador definitivo para templates Zabbix (YAML).

  • Verifica: Sintaxe YAML, Duplicidade de UUIDs, Referências quebradas (Gráficos -> Itens, Dashboards -> Gráficos).
  • Garante: Conformidade estrita com o padrão UUIDv4.
  • Audita: Descrições em inglês (aviso) para garantir a tradução.

Uso:

python validate_zabbix_template.py templates_gold/template_app_pfsense_snmp.yaml

2. fix_uuids.py

Utilitário para correção em massa e higienização de templates.

  • Remove metadados sujos de versões instáveis (Zabbix 8.0).
  • Regenera UUIDs inválidos mantendo a consistência.

3. merge_exchange.py

Ferramenta para fundir o melhor de dois mundos: templates oficiais da Zabbix com customizações "Gold" da comunidade.


📂 Estrutura do Repositório

  • /templates_gold: Templates prontos para produção, validados e traduzidos.
    • Exemplo: template_app_pfsense_snmp.yaml (Monitoramento completo de pfSense via SNMP com análises de segurança e preditivas).
  • /community-templates: Fonte upstream de templates diversos.
  • /deploy_package: Scripts e arquivos para deploy automatizado de agentes e proxies.

📢 Criação e Definição de Salas (Telegram)

Para evitar a fadiga de alertas e garantir que problemas críticos sejam tratados imediatamente, utilizamos uma estrutura de grupos segmentada por Severidade e Função.

A Regra de Ouro do MSP (Multi-Cliente)

Como atendemos múltiplos clientes, não criamos um grupo por cliente. Centralizamos por função e usamos Tags no início da mensagem.

Exemplo: 🔥 [Coca-Cola] Oracle Down ou 🐘 [Pepsi] Deadlock detectado

📋 Tabela de Grupos e Mídias

Canal (Grupo Telegram) Chat ID Nível de Severidade / Uso Objetivo Retenção Sugerida
🌐 iT Guys - Alertas Queda de Link -1002788825367 🚨 Disaster (Network only) EXCLUSIVO para quedas de link do Datacenter (Redundância). Eterna
🔥 iT Guys - Alertas Criticos -1002109756180 🚨 Disaster (Action Required) Focado em "VOCÊ TEM QUE FAZER ALGUMA COISA AGORA". Incidentes que exigem intervenção humana imediata. Zero ruído. Eterna
🔒 iT Guys - Alertas de Segurança Pendente 🚨 High, 🔥 Warning (SecOps) Tentativas de invasão, Brute-force RDP/SSH, falhas de login excessivas, portas suspeitas. Eterna
🐘 iT Guys - Alertas Banco de Dados Pendente ⚠️ Warning, 🔥 High (DBA) Deadlocks, Queries Lentas, Conexões. Centraliza problemas de DB de todos os clientes. 90 Dias
💾 iT Guys - Alertas Storage Pendente ⚠️ Warning, 🔥 High (Storage) Tudo sobre Storage e Discos. Pode conter avisos preventivos, mas é o único lugar para assuntos de armazenamento. 90 Dias
♻️ iT Guys - Alertas Backups -1002390490763 Info, ⚠️ Warning (Backup Jobs) Exclusivo para jobs e processos de backup (Sucesso/Falha). Ignora status do host (UP/DOWN). 90 Dias
👾 iT Guys - Gitea Gerencial -4557333759 ⚠️ Warning (KPIs/Management) Focado em Gestão e Prazos. Projetos atrasados, ausência de commits por 7+ dias. (Nada de "push" logs). 30 Dias
🔨 iT Guys - Gitea Operacional -4561812933 Info (DevOps) Logs técnicos, Commits, Pushes e Merges do dia a dia. 30 Dias
🃏 iT Guys - Ronald Santoro (Eventos) -1002285824936 Info, ⚠️ Warning (Default) Curinga (Wildcard). Se o alerta não se enquadra nas categorias acima, ele cai aqui. 30 Dias

🎣 Configuração de Webhooks (Gitea)

Para garantir a eficiência dos canais acima, configure os webhooks do Gitea da seguinte forma:

1. 👾 iT Guys - Gitea Gerencial

Foco: Gestão de Projetos, Prazos e Entregas (Releases/PRs).

  • Repositório (Criado/Excluído)
  • Versão (Publicada/Atualizada)
  • Pull Request (Apenas Abertura/Fechamento/Merge)
  • Issues (Abertura/Fechamento - Sem comentários)
  • Pacote (Publicado)

2. 🔨 iT Guys - Gitea Operacional

Foco: Atividade de Código, Logs de Desenvolvimento e Code Review.

  • Push (Commits)
  • Criar (Branch/Tag)
  • Excluir (Branch/Tag)
  • Fork
  • Comentário da issue (Discussões técnicas)
  • Comentário no Pull Request (Code Review)
  • Pull Request Review Requested
  • Pull Request Sincronizado
  • Wiki (Edições)

🔑 Credenciais de Bots (API Keys)

⚠️ CUIDADO: Estas chaves dão acesso de escrita aos grupos.

  • Bot Queda de Link (Uso exclusivo): 7720380254:AAFwcs3g5S3q3tAQwAkYGQ2_kM582IAnt8A
  • Bot Críticos (Action Required): 7186495928:AAHb4H_p02tjXpcNZlkq0KGXCUnoejBTuck
  • Bot Backups (Jobs e Rotinas): 7302893904:AAG5Bk2h76X6Yshb-mlOv568qBMMNw8cQvM
  • Bot Gitea (Gerencial): 7491383156:AAHaDxmhRlpElljs48R0Wvliy2qtUVB9ZIk
  • Bot Ronald Santoro (Curinga): 6964501334:AAHjQ4q5CcohGvyhvg5aEscc8XcCWyxIeqA

💡 Dica: Para descobrir o Chat ID de um grupo, adicione o bot @RawDataBot ao grupo, copie o ID negativo (ex: -100123456789) e depois remova o bot.


⚙️ Configuração Zabbix 7.0 (The Gold Way)

Utilizamos a estratégia de Roteamento via Ações (Action-Based Routing). Neste modelo, o Media Type é apenas o "cano" e a Action é o "cérebro" que escolhe qual cano usar.

1. Media Types (Canais)

Como cada bot tem um Token único, precisamos de um Media Type para cada um.

  1. Vá em Alertas > Tipos de Mídias.
  2. Clone o tipo Telegram padrão.
  3. Renomeie para: Telegram_[Nome_Do_Canal] (ex: Telegram_Criticos).
  4. Token: Insira o Token do bot específico na variável api_token.

2. Usuário de Serviço (itguys)

Não crie um usuário para cada bot. Use um usuário central (ex: itguys).

  1. Vá em Alertas > Mídia do usuário itguys.
  2. Adicione TODOS os Media Types criados no passo anterior.
  3. Não use filtros de severidade aqui. Deixe 1-7,00:00-24:00; N I A M A D (tudo habilitado).

3. Actions (O Cérebro)

Aqui definimos quem recebe o quê. Para cada canal, crie uma Action separada.

Passo a Passo na Interface:

  1. Ação: Dê um nome claro (ex: 📢 Dispatch: Críticos).
  2. Condições: Defina as regras (Tag ou Severidade).
  3. Operações: Adicione uma operação de envio.
    • Enviar para usuários: Selecione itguys (ou Zabbix administrators).
    • Send to media type: Selecione APENAS o Media Type específico daquele canal (ex: Telegram_Criticos).

Matriz de Ações Recomendada:

Nome da Action Aba: Condições (A) Aba: Operações (B) -> Send directly to media type
📢 Dispatch: Link Tag target igual a network_wan Telegram_Link
📢 Dispatch: Segurança Tag class igual a security Telegram_Sec
📢 Dispatch: Banco/Dados Tag class igual a database Telegram_Dados
📢 Dispatch: Storage Tag class igual a storage Telegram_Storage
📢 Dispatch: Backups Tag class igual a backup Telegram_Backup
📢 Dispatch: Críticos Severidade maior ou igual a Média Telegram_Criticos
📢 Dispatch: Geral (Sem condições específicas) Telegram (Padrão/Ronald)

Como Contribuir

  1. Valide sempre: Antes de commitar qualquer template, execute o validate_zabbix_template.py.
  2. Traduza: Não deixe termos como "Incoming Traffic" ou "Discarded packets". Use "Tráfego de Entrada" e "Pacotes Descartados".
  3. Contextualize: Na descrição da trigger, explique o que fazer se o alerta disparar.

Mantido pela equipe de SRE da ITGuys.