Preparar o usuário no Zabbix

O Sentrya Connector entra no Zabbix com uma credencial que fica guardada só na sua máquina. O recomendado é um usuário dedicado, só de leitura, com um papel que libere apenas os métodos que o Sentrya usa e um token de API.

Duas travas. O Connector recusa qualquer método fora da própria lista, mesmo que o Zabbix permita. E o papel no Zabbix recusa qualquer método fora da lista dele, mesmo que alguém altere o Connector. Configure as duas.

Passo a passo (Zabbix 6.0 ou mais novo)

Os nomes de menu seguem a interface em português do Zabbix; entre parênteses, o nome em inglês.

  1. Crie um grupo de usuários só de leitura Em Usuários → Grupos de usuários (Users → User groups), crie o grupo sentrya e, nas permissões de grupos de hosts, dê Leitura (Read) aos grupos que o Sentrya deve monitorar. O Sentrya só enxerga o que esse grupo enxerga.
  2. Crie um papel restrito à API Em Usuários → Papéis de usuário (Users → User roles), crie o papel sentrya-api do tipo Usuário. Em Acesso à API, deixe habilitado e escolha a lista de permitidos (Allow list) com os métodos da tabela abaixo.
  3. Libere as ações de ACK que a equipe vai usar No mesmo papel, em Ações, permita Reconhecer problemas (Acknowledge problems). Se a equipe também vai fechar problemas, mudar severidade ou comentar pelo Sentrya, permita Fechar problemas, Alterar severidade e Adicionar comentários.
  4. Crie o usuário Em Usuários → Usuários (Users → Users), crie o usuário sentrya no grupo e com o papel acima, com uma senha forte.
  5. Gere o token de API Em Usuários → Tokens de API (Users → API tokens), crie um token para o usuário sentrya. Copie na hora: o Zabbix mostra o token uma única vez. Ele tem 64 caracteres (0–9 e a–f).
Zabbix 5.4. Os tokens de API ficam em Administração → Geral → Tokens de API. No Zabbix 5.0 e 5.2 não existe token: use usuário e senha (o assistente pergunta). O Zabbix 5.0 também não tem papéis; ali a trava é só a lista do Connector e o grupo só de leitura.

Referência oficial do Zabbix: papéis de usuário e tokens de API.

Métodos que o papel precisa liberar

MétodoObrigatório?Para quê
hostgroup.getSimGrupos de hosts (filtros, Grupos visíveis, assistente de ouvintes).
host.getSimHosts do monitoramento e contagem no teste da credencial.
problem.getSimColetar os problemas abertos.
trigger.getSimHost de cada problema, triggers monitoradas, ouvintes.
event.getSimRecorrências e Histórico de ACKs.
item.getNãoDetalhes dos itens das triggers, Histórico do item e Explorar (dados recentes no app).
user.get, usergroup.getNãoSó para Entrada da equipe, Vínculo com o Zabbix e Usar permissões do Zabbix.
token.get, token.create, token.generate, token.deleteSó para tokens de pessoaCriar, renovar e apagar o token de cada pessoa vinculada. Veja Tokens de pessoa, abaixo.
event.acknowledgeSó para ACKReconhecer incidente, comentar, mudar severidade e fechar problema pelo Sentrya.
history.get, trend.getSó para gráficosHistórico do item (o gráfico do item no detalhe do incidente e no Explorar) e os minigráficos do Explorar. Só leitura de valores de itens numéricos.

apiinfo.version e user.login não entram na lista: o Zabbix sempre os libera e recusa listá-los no papel. O assistente confere as permissões na hora: se faltar um método obrigatório, ele diz qual antes de gravar a configuração.

Somente leitura, sem ACK

Se o Sentrya não deve reconhecer incidentes no Zabbix, escolha Não, somente leitura no assistente (ou instale com --no-ack). O Connector passa a recusar event.acknowledge mesmo que o papel permita, e o ACK continua sendo feito só no próprio Zabbix.

Sem histórico do item

Se o Sentrya não deve ler valores de itens, desligue o histórico naquele Zabbix: ao adicionar pelo terminal, use sudo sentrya-connector zabbix add --no-history; num Zabbix já configurado, acrescente allow_history: false ao servidor em /etc/sentrya-connector/connector.yaml e reinicie o serviço. O Connector passa a recusar history.get e trend.get mesmo que o papel permita, e o Sentrya mostra no incidente que o histórico foi desligado no conector. O sudo sentrya-connector doctor diz se o histórico está ligado e se o papel libera os dois métodos (é aviso, não erro: a coleta de incidentes não depende disso).

Tokens de pessoa

Quando alguém da equipe vincula a conta ao próprio usuário do Zabbix, o Sentrya pede ao Connector um token de API para essa pessoa, e o token fica guardado só no Connector (veja Segurança do Sentrya Connector). Para isso:

  • o papel do usuário do Connector precisa liberar token.create, token.generate, token.get e token.delete, além de user.get e usergroup.get (vínculo e permissões do Zabbix);
  • para criar o token de outra pessoa (vínculo pelo Microsoft 365 e quando o papel da própria pessoa não deixa criar token), renovar e apagar os tokens, e para ler as permissões de cada pessoa vinculada, o usuário do Connector precisa ser Super admin, com um papel do tipo Super admin no lugar do papel do tipo Usuário do passo a passo acima. Veja Dar Super admin ao usuário da coleta.

O sudo sentrya-connector doctor diz, para cada Zabbix, se os tokens de pessoa estão ligados, se o usuário do Connector é Super admin e se o papel dele libera token.get. Para não usar tokens de pessoa, adicione o Zabbix com sudo sentrya-connector zabbix add --no-user-tokens ou acrescente allow_user_tokens: false ao servidor em /etc/sentrya-connector/connector.yaml e recarregue o serviço (sudo systemctl reload sentrya-connector). Assim, os reconhecimentos saem sempre com o usuário do Connector, com o nome da pessoa no fim da mensagem. O mesmo acontece em todos os Zabbix, com a chave ligada, enquanto o Connector não consegue abrir a guarda local dos tokens: o doctor avisa (veja Segurança do Sentrya Connector).

Erros comuns ao testar a credencial

Mensagem do assistenteO que fazer
o Zabbix recusou o tokenO token venceu, foi desativado ou é de outro Zabbix. Gere um novo em Tokens de API.
usuário ou senha incorretosConfira no Zabbix; o usuário precisa ter acesso à API.
o usuário não tem acesso à APINo papel do usuário, ligue o Acesso à API.
o usuário não pode usar …Libere os métodos citados na lista do papel e escolha Testar de novo.
este usuário não enxerga nenhum hostDê ao grupo do usuário Leitura nos grupos de hosts.
o token de API do Zabbix tem 64 caracteres…Faltou copiar parte do token.

Veja também