Go to file
João Pedro ac29cb8e48 docs: sync zabbix action names with production 2026-01-26 14:37:14 -03:00
.gemini fix: ajustes do template 2026-01-06 12:04:50 -03:00
deploy_package Initial commit - Arthur Gold Standard: Tools, Templates e Documentação 2026-01-04 15:07:32 -03:00
templates_gold chore: add pending debug scripts and finalize docs 2026-01-26 12:17:16 -03:00
.gitignore feat: Add PFSense SNMP template and documentation, include Gemini files and DHCP agent execution plan, and remove `.gemini/` from `.gitignore`. 2026-01-04 15:57:51 -03:00
README.md docs: sync zabbix action names with production 2026-01-26 14:37:14 -03:00
build_windows_gold.py feat: criaçao e deploy do template do windonws server 2026-01-13 09:41:59 -03:00
clean_hosts_export.py Initial commit - Arthur Gold Standard: Tools, Templates e Documentação 2026-01-04 15:07:32 -03:00
debug_macros.py chore: add pending debug scripts and finalize docs 2026-01-26 12:17:16 -03:00
export_hosts_zabbix.py Initial commit - Arthur Gold Standard: Tools, Templates e Documentação 2026-01-04 15:07:32 -03:00
export_templates.py Initial commit - Arthur Gold Standard: Tools, Templates e Documentação 2026-01-04 15:07:32 -03:00
extract_nginx_config.py feat: Add comprehensive Nginx monitoring for Zabbix, including host configurations, templates, and utility scripts. 2026-01-05 00:53:31 -03:00
find_regexp.py chore: add pending debug scripts and finalize docs 2026-01-26 12:17:16 -03:00
fix_ad_uuids.py Initial commit - Arthur Gold Standard: Tools, Templates e Documentação 2026-01-04 15:07:32 -03:00
fix_broken_yaml.py feat: criaçao e deploy do template do windonws server 2026-01-13 09:41:59 -03:00
fix_uuids.py Initial commit - Arthur Gold Standard: Tools, Templates e Documentação 2026-01-04 15:07:32 -03:00
generate_template_docs.py feat: Add a Zabbix template documentation generator script and initial documentation for the PFSense SNMP template. 2026-01-04 15:20:53 -03:00
get_group_uuid.py Initial commit - Arthur Gold Standard: Tools, Templates e Documentação 2026-01-04 15:07:32 -03:00
merge_exchange.py Initial commit - Arthur Gold Standard: Tools, Templates e Documentação 2026-01-04 15:07:32 -03:00
merge_nginx_templates.py feat: Add comprehensive Nginx monitoring for Zabbix, including host configurations, templates, and utility scripts. 2026-01-05 00:53:31 -03:00
regen_all.py Initial commit - Arthur Gold Standard: Tools, Templates e Documentação 2026-01-04 15:07:32 -03:00
regen_uuids.py Initial commit - Arthur Gold Standard: Tools, Templates e Documentação 2026-01-04 15:07:32 -03:00
repair_yaml_indentation.py feat: criaçao e deploy do template do windonws server 2026-01-13 09:41:59 -03:00
simple_fix_yaml.py feat: criaçao e deploy do template do windonws server 2026-01-13 09:41:59 -03:00
sync_zabbix_uuids.py feat: criaçao e deploy do template do windonws server 2026-01-13 09:41:59 -03:00
template_nginx_custom_extracted.yaml feat: Add comprehensive Nginx monitoring for Zabbix, including host configurations, templates, and utility scripts. 2026-01-05 00:53:31 -03:00
translate_windows_template.py feat: criaçao e deploy do template do windonws server 2026-01-13 09:41:59 -03:00
validate_zabbix_template.py feat(pfsense): add OpenVPN connected users item & fix import errors 2026-01-14 09:51:20 -03:00
zabbix-itguys.code-workspace fix: ajustes do template 2026-01-06 12:04:50 -03:00
zbx_export_hosts.yaml feat: Add comprehensive Nginx monitoring for Zabbix, including host configurations, templates, and utility scripts. 2026-01-05 00:53:31 -03:00

README.md

🛡️ 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 Gitea (Operacional): 6881643386:AAFXbMjkvvOiqm47LvXZ8eC6LVQ4xea1Wms
  • 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
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

  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.