Zabbix e Grafana: Disponibilizando um Dashboard por Cliente

Introdução

Uma das perguntas mais frequentes que temos nos canais de Zabbix é: “Como eu faço para disponibilizar um gráfico/tela por cliente?”
Quando essas pessoas passam a usar os gráficos do Grafana alimentados pelos dados do Zabbix, o cenário não muda, o objetivo deste post é descrever como suprir essa demanda.

Pré-Requisitos

Eu parto do princípio que você já possui o Zabbix e o Grafana integrados e funcionando perfeitamente.

Configurações no Zabbix Server

A única configuração que precisa ser feita no Zabbix Server é a criação dos usuários, nesse caso foram criadas duas contas: “Cliente 01” e “Cliente 02”, ambos do tipo “Zabbix User” e membros do grupo “Clientes”. Mas isso para demonstrar o conceito, o que você precisa ter em mente é que cada cliente tem que possuir um usuário no Zabbix Server com acesso aos hosts que lhe interessa.

Configuração no Grafana

A primeira coisa que vamos fazer é desativar a opção de usuários comuns de criarem Organizações. Para ficar bem simples, entenda cada organização como um cliente, logo, não queremos nossos clientes criando novas organizações.

# vi /etc/grafana/grafana.ini

# Allow non admin users to create organizations
;allow_org_create = true
allow_org_create = false

REINICIE O SERVIÇO

# service grafana-server restart (CentOS 6.x) 
# systemctl restart grafana-server (CentOS 7.x)
# sudo service grafana-server restart (Debian/Ubuntu)

CRIAR OS USUÁRIOS

Clique no logo do Grafana // Admin // Global Users

Clique no botão Add new user

Preencha os dados e clique no botão Create 

Observação: O Grafana não aceita o mesmo e-mail para usuários diferentes. 

Repita o processo para o Cliente 02
 

CRIAR AS ORGANIZAÇÕES

Clique no logo do Grafana // Admin // New organization

Preencha o nome da organização e clique no botão Create

Você pode cadastrar informações adicionais para a organização.

Repita o processo para o Cliente 02

Clique no logo do Grafana // Admin // Global Users

Na linha do Cliente 01, clique no botão Edit

Na seção Organizations, preencha o nome da Organização e o nível de privilégio (Role), nesse momento vamos deixar como Admin e clique no botão Add

Na linha da organização Main.org, altere o nível de privilégio (Role) para Admin

Repita o processo para o Cliente 02
 

Entendendo um pouco mais sobre as organizações

No começo do post foi dito para vocês entenderem cada organização como um cliente, pois naquele momento essa informação era suficiente, mas agora precisamos detalhar um pouco mais esse tópico, na realidade cada organização é uma instância do Grafana. Cada organização possui suas dashboards, data sources e configurações, e, esses dado não são compartilhados entre elas. Desse modo o que foi dito antes, não está incorreto, mas essa explicação é importante para as próximas etapas.

Outro detalhe importante é a questão da amarração das permissões, se você estiver logado como admin, e usar a opção Switch to Cliente 01 (Organização), por exemplo, e criar uma dashboard nessa organização, ela não estará disponível para o usuário cliente 01 (Proprietário da organização Cliente 01), pois ela está amarrada ao perfil do usuário admin. O usuário admin está alterando a organização Cliente 01, dentro do universo dele, que é totalmente isolado do universo do usuário Cliente 01.
 

CONFIGURAÇÕES PARA CADA CLIENTE

Clique no logo do Grafana // Admin // Sign out

Realize o Login como Cliente 01

Clique no logo do Grafana // Cliente 01 // Switch to Cliente 01

  • Habilite o plugin do Zabbix para essa organização;
  • Configure o Data Source para essa organização, utilizando as credenciais do Cliente 01 cadastrado no Zabbix Server;
  • Crie a Dashboard para essa organização.

Repita o processo para o Cliente 02
 

CONFIGURANDO AS PERMISSÕES DEFINITIVAS

Realize o Login como Admin

Clique no logo do Grafana e certifique-se que o admin está no perfil da organização Main.org, se não estiver altere para esse perfil.

Clique no logo do Grafana // Admin // Global Users

Altere o perfil da Organização Cliente 01 para Viewer e remova a organização Main.org, basta clicar no botão “X” na linha da organização.

Repita o processo para o Cliente 02
 

Visualizando as Dashboards

Execute o login como Cliente 01

Clique no nome da Dashboard, nesse caso Cliente 01

Visualize os gráficos

Repita o processo para o Cliente 02

Você pode copiar o endereço do dashboard e passar para o seu cliente, nesse tutorial:
http://IP-SERVIDOR:3000/dashboard/db/cliente-01
http://IP-SERVIDOR:3000/dashboard/db/cliente-02

Tutorial de total autoria por André Déo, CEO Do site Blog do Deó, link da publicação original neste link

Deixe uma resposta