10 KiB
🛡️ 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:
- 🇧🇷 Localização Total: Tudo o que o operador vê (Items, Triggers, Graphs) está em Português do Brasil (PT-BR), claro e profissional.
- 🧠 Inteligência Acionável: Alertas explicam o motivo, o impacto e a solução.
- 🔮 Preditividade: Uso de funções como
timeleft()e detecção de anomalias para prevenir incidentes antes que ocorram. - ✅ 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).
- Exemplo:
/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 Downou🐘 [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 | -5206432047 |
🚨 High, 🔥 Warning (SecOps) | Tentativas de invasão, Brute-force RDP/SSH, falhas de login excessivas, portas suspeitas. | Eterna |
| 🐘 iT Guys - Alertas Banco de Dados | -5196474288 |
⚠️ Warning, 🔥 High (DBA) | Deadlocks, Queries Lentas, Conexões. Centraliza problemas de DB de todos os clientes. | 90 Dias |
| 💾 iT Guys - Alertas Storage | -1002211183425 |
⚠️ 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 Seguranca (SecOps):
7846790270:AAGJfkdlZBvyK_bzjm5HPYl6ok-rwZ88xxE - Bot Banco de Dados (DBA):
8525506249:AAHlmSKSO5MyPxORfXcXGwS478ZjpQu1Lus - Bot Backups (Jobs e Rotinas):
7302893904:AAG5Bk2h76X6Yshb-mlOv568qBMMNw8cQvM - Bot Gitea (Gerencial):
7491383156:AAHaDxmhRlpElljs48R0Wvliy2qtUVB9ZIk - Bot Gitea (Operacional):
6881643386:AAFXbMjkvvOiqm47LvXZ8eC6LVQ4xea1Wms - Bot Storage (Discos e Hardware):
7220576708:AAEo4_X38hSRYn0M5A5wLh9ilKaaNfO-Zy8 - Bot Ronald Santoro (Curinga):
6964501334:AAHjQ4q5CcohGvyhvg5aEscc8XcCWyxIeqA
💡 Dica: Para descobrir o
Chat IDde um grupo, adicione o bot@RawDataBotao 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.
- Vá em Alertas > Tipos de Mídias.
- Clone o tipo
Telegrampadrão. - Renomeie para:
Telegram_[Nome_Do_Canal](ex:Telegram_Criticos). - 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).
- Vá em Alertas > Mídia do usuário
itguys. - Adicione TODOS os Media Types criados no passo anterior.
- 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:
- Ação: Dê um nome claro (ex:
📢 Dispatch: Críticos). - Condições: Defina as regras (Tag ou Severidade).
- Operações: Adicione uma operação de envio.
- Enviar para usuários: Selecione
itguys(ouZabbix administrators). - Send to media type: Selecione APENAS o Media Type específico daquele canal (ex:
Telegram_Criticos).
- Enviar para usuários: Selecione
Matriz de Ações Recomendada:
| Nome da Action | Aba: Condições (A) | Aba: Operações (B) -> Send directly to media type |
|---|---|---|
| Quedas Link | Tag target igual a network_wan |
Telegram_ITGuys_Queda_Link |
| Alertas de Segurança | Tag class igual a security |
Telegram_ITGuys_Alertas_Seguranca |
| Alertas de Banco | Tag class igual a database |
Telegram_ITGuys_Alertas_Banco |
| Alertas de Storage | Tag class igual a storage |
Telegram_ITGuys_Alertas_Storage |
| Alertas Backups | Tag class igual a backup |
Telegram_ITGuys_Alertas_Backups |
| Alertas Criticos | Severidade >= Média E Tag target != network_wan E Tag class != security E Tag class != database E Tag class != storage E Tag class != backup |
Telegram_ITGuys_Alertas_Criticos |
| Serviço Indisponivel (Default) | Severidade <= Atenção E Tag target != network_wan E Tag class != security E Tag class != database E Tag class != storage E Tag class != backup |
Telegram (Padrão/Ronald) |
🚫 Regra de Ouro (Anti-Duplicação): As ações "Críticos" e "Geral" funcionam como aleias (catch-all). Elas devem conter condições de negação (!=) para todas as tags específicas, garantindo que um alerta de Banco de Dados vá apenas para o grupo de Banco, mesmo que seja um Desastre.
✨ Como Contribuir
- Valide sempre: Antes de commitar qualquer template, execute o
validate_zabbix_template.py. - Traduza: Não deixe termos como "Incoming Traffic" ou "Discarded packets". Use "Tráfego de Entrada" e "Pacotes Descartados".
- Contextualize: Na descrição da trigger, explique o que fazer se o alerta disparar.
Mantido pela equipe de SRE da ITGuys.