Skip to content

Integrações do Zabbix Proxy: SNMP e Grafana

  • Categoria: Segurança / Monitoramento / NOC
  • Última revisão: 21/08/2026
  • Responsável: EdenCore (desenvolvido por Daniel Selbach Figueiró)
  • Pré-requisito: Implantação de Zabbix Proxy 7.0

Todos os nomes de host, IPs, senhas e identificadores neste documento são fictícios. Substitua pelos valores reais do ambiente antes de aplicar qualquer comando.


1. Integração com Grafana

O Grafana nunca se conecta diretamente ao proxy. A comunicação ocorre exclusivamente via API JSON-RPC do Zabbix server; o proxy é transparente nesse fluxo, já que qualquer dado que ele coleta é repassado ao server e fica disponível pela mesma API.

1.1. Cadeia de permissões no Zabbix

A criação de um usuário de integração segue uma hierarquia obrigatória:

User Role → User Group → User → API Token

User Role (Users > User roles > Create user role):

  • Name: Grafana Integration
  • User type: User

Por boa prática, o usuário de integração não deve ter acesso ao frontend do Zabbix: ele existe apenas para autenticar chamadas de API, e login interativo nele amplia a superfície de ataque sem necessidade. A restrição definitiva acontece no Frontend access: Disabled do User Group, no próximo passo. Nesse cenário, a aba de UI elements e a de módulos de widget do Role não têm efeito prático e podem ficar sem nenhuma opção marcada.

Na aba API access, habilite e restrinja aos métodos necessários:

host.get
hostgroup.get
item.get
history.get
trigger.get
problem.get
event.get
graph.get
template.get
usermacro.get
user.get
proxy.get

User Group (Users > User groups > Create user group):

  • Group name: Grafana Integration
  • Users: selecione o usuário de integração (criado no próximo passo)
  • Frontend access: Disabled (bloqueia login na interface web para esse usuário, independentemente do que estiver marcado no Role)
  • Template permissions: allRead
  • Host permissions: allRead
  • Problem tag filter: Add → Host groups: all → filtrar todas as tags

User (Users > Users): crie o usuário de integração, associado ao role e ao group acima.

API Token (Users > API tokens): gere o token vinculado a esse usuário, com data de expiração definida. O valor do token é exibido uma única vez no momento da criação.

1.2. Configuração no Grafana

O plugin do Zabbix no Grafana separa dois níveis de autenticação, que não devem ser confundidos:

  • Authentication (seção genérica de qualquer data source HTTP do Grafana): protege o acesso ao endpoint em si, caso ele esteja atrás de autenticação HTTP básica (proxy reverso, load balancer, etc). Independe do Zabbix.
  • Zabbix Connection (seção específica do plugin): autentica de fato contra a API do Zabbix server, usando usuário/senha ou o token gerado na seção anterior.

  • Instale o plugin Zabbix, se ainda não estiver instalado:

grafana-cli plugins install alexanderzobnin-zabbix-app
  1. Em Connections > Data sources, adicione uma fonte do tipo Zabbix e informe a URL: https://mon.exemplo.com.br/api_jsonrpc.php

  2. Na seção Authentication, se o endpoint HTTP estiver exposto sem camada adicional de proteção (situação comum quando o acesso já passa por TLS e pela rede interna), configure:

  3. Authentication method: Basic authentication
  4. User: usuário de acesso HTTP dedicado (ex: empresa.integration), diferente do usuário criado no Zabbix
  5. Password: senha correspondente

Se não houver autenticação HTTP na frente do endpoint, essa seção pode ficar em branco.

  1. Na seção Zabbix Connection, configure a autenticação real contra a API:
  2. Auth type: API token
  3. API Token: cole o valor gerado no passo anterior (seção 1.1)

  4. Clique em Save & Test para validar a conexão.

Os hosts monitorados através do proxy aparecem normalmente nos seletores de host e grupo do Grafana, sem qualquer configuração adicional relacionada ao proxy.


2. Integração SNMP com equipamentos de rede (Huawei CloudEngine)

Com o Grafana já apontando para a API do Zabbix server, qualquer host novo cadastrado no proxy aparece automaticamente nos painéis, sem passo adicional. Esta seção cobre o cadastro de um host de exemplo via SNMPv3, cujos dados passam a alimentar os dashboards configurados na seção anterior.

2.1. Configuração no equipamento

Exemplo para um switch Huawei CloudEngine com YunShan OS, usando SNMPv3 com autenticação SHA256 e privacidade AES256:

system-view
snmp-agent
snmp-agent sys-info version v3
snmp-agent group v3 netmon_group privacy
snmp-agent usm-user v3 netmon_user netmon_group

Os dois comandos seguintes abrem prompt interativo de senha, evitando expor a credencial em texto no histórico de comandos do equipamento:

snmp-agent usm-user v3 netmon_user authentication-mode sha2-256
snmp-agent usm-user v3 netmon_user privacy-mode aes256

Antes de aplicar em um equipamento novo, confirme os algoritmos suportados pelo firmware específico:

snmp-agent usm-user v3 netmon_user authentication-mode ?
snmp-agent usm-user v3 netmon_user privacy-mode ?

Nomenclatura entre fabricantes varia: sha2-256 (Huawei) corresponde a SHA256 no dropdown do Zabbix, mesmo algoritmo, nomes diferentes.

Não esqueça de persistir a configuração:

save

2.2. Cadastro no Zabbix

Na interface SNMP do host, configure:

  • SNMP version: SNMPv3
  • Security name: netmon_user
  • Security level: authPriv
  • Authentication protocol: SHA256
  • Authentication passphrase: a senha definida no equipamento
  • Privacy protocol: AES256
  • Privacy passphrase: a senha de privacidade definida no equipamento

Confirme que o host está com Monitored by = Proxy, apontando para o proxy relevante, e que a sub-rede de management do equipamento está liberada no OUTPUT do firewall do proxy (ver documento de implantação, seção 4).

2.3. Validação manual

Instale as ferramentas de teste no proxy, caso ainda não estejam presentes:

apt install -y snmp
snmpget -v3 -u netmon_user -l authPriv -a SHA-256 -A '<senha_auth>' -x AES -X '<senha_priv>' <ip_do_equipamento> .1.3.6.1.2.1.1.1.0

Se o build do pacote snmp não tiver suporte a AES192/AES256 (comum em builds padrão de algumas distros), o comando falha com Authentication failed mesmo com credenciais corretas. Teste isolando a etapa de autenticação antes de assumir erro de senha:

snmpget -v3 -u netmon_user -l authNoPriv -a SHA-256 -A '<senha_auth>' <ip_do_equipamento> .1.3.6.1.2.1.1.1.0

Se esse teste retornar dado válido, a autenticação está correta e o problema está isolado à criptografia de privacidade.

2.4. Limpeza de credenciais órfãs

Equipamentos que passaram por mais de uma tentativa de configuração SNMPv3 acumulam usuários e grupos não utilizados. Antes de fechar a implantação, liste o que está ativo:

display snmp-agent group
display snmp-agent usm-user

Remova grupos e usuários que não estejam mais em uso:

undo snmp-agent usm-user v3 <nome_do_usuario>

Confirme se o undo de grupo exige o security-level como parâmetro adicional (varia por firmware):

undo snmp-agent group v3 <nome_do_grupo> ?

Grupos com nome genérico de fábrica (ex: SWITCH) não devem ser removidos sem antes confirmar com o fabricante se são usados por algum mecanismo interno do equipamento, como acesso via nuvem do próprio fabricante.


3. Checklist de hardening (integrações)

  • [ ] Usuários e grupos SNMP órfãos removidos do equipamento de rede após testes
  • [ ] Credenciais SNMPv3 exclusivas por equipamento, evitando reaproveitar a mesma senha em vários dispositivos
  • [ ] Token de API do Grafana com escopo mínimo (role restrita a métodos de leitura) e data de expiração definida
  • [ ] Frontend access do usuário de integração do Grafana definido como Disabled, por boa prática

Para o checklist de implantação do proxy em si (TLS, firewall, banco de dados), ver o documento "Implantação de Zabbix Proxy 7.0".