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.
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.
- Crie um grupo de usuários só de leitura Em Usuários → Grupos de usuários (Users → User groups), crie o grupo
sentryae, 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. - Crie um papel restrito à API Em Usuários → Papéis de usuário (Users → User roles), crie o papel
sentrya-apido tipo Usuário. Em Acesso à API, deixe habilitado e escolha a lista de permitidos (Allow list) com os métodos da tabela abaixo. - 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.
- Crie o usuário Em Usuários → Usuários (Users → Users), crie o usuário
sentryano grupo e com o papel acima, com uma senha forte. - 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).
Referência oficial do Zabbix: papéis de usuário e tokens de API.
Métodos que o papel precisa liberar
| Método | Obrigatório? | Para quê |
|---|---|---|
hostgroup.get | Sim | Grupos de hosts (filtros, Grupos visíveis, assistente de ouvintes). |
host.get | Sim | Hosts do monitoramento e contagem no teste da credencial. |
problem.get | Sim | Coletar os problemas abertos. |
trigger.get | Sim | Host de cada problema, triggers monitoradas, ouvintes. |
event.get | Sim | Recorrências e Histórico de ACKs. |
item.get | Não | Detalhes dos itens das triggers, Histórico do item e Explorar (dados recentes no app). |
user.get, usergroup.get | Não | Só para Entrada da equipe, Vínculo com o Zabbix e Usar permissões do Zabbix. |
token.get, token.create, token.generate, token.delete | Só para tokens de pessoa | Criar, renovar e apagar o token de cada pessoa vinculada. Veja Tokens de pessoa, abaixo. |
event.acknowledge | Só para ACK | Reconhecer incidente, comentar, mudar severidade e fechar problema pelo Sentrya. |
history.get, trend.get | Só para gráficos | Histó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.getetoken.delete, além deuser.geteusergroup.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 assistente | O que fazer |
|---|---|
| o Zabbix recusou o token | O token venceu, foi desativado ou é de outro Zabbix. Gere um novo em Tokens de API. |
| usuário ou senha incorretos | Confira no Zabbix; o usuário precisa ter acesso à API. |
| o usuário não tem acesso à API | No 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 host | Dê ao grupo do usuário Leitura nos grupos de hosts. |
| o token de API do Zabbix tem 64 caracteres… | Faltou copiar parte do token. |