Um dos grandes pontos quando discutimos sobre projetos de monitoramento, certamente é sobre quais Dashboards irão ser entregues e com quais tipos de visualização.
O Zabbix possui funcionalidades de Gráficos, Mapas, Telas e Slideshow, porém, em alguns ambientes há a necessidade de entregar uma visualização mais elaborada ou diferente dos recursos que o Zabbix disponibiliza na ferramenta.
Para que possamos atender essas necessidades, trabalhamos com integrações do Zabbix via API para desenvolvermos Dashboards envolvendo programação e também trabalhamos com uma ferramenta Open Source denominada Grafana, na qual a comunidade desenvolveu uma integração com a finalidade de utilizar os dados coletados no Zabbix para uma visualização com flexibilidade de gráficos e outras funcionalidades que não são possíveis utilizando apenas o Zabbix.
O Grafana é uma suíte de análise e visualização de métricas Open Source, utilizado mundialmente em diferentes mercados para visualização de dados em tempo real.
Neste artigo vamos realizar a instalação do Grafana, integração com Zabbix e entender conceitos de Dashboard, Painéis e Organizações, assuntos relevantes para quem oferece o monitoramento como serviço para clientes.
1) Arquitetura
O Grafana pode ser instalado em sistemas operacionais Ubuntu/Debian, Centos/RedHat, Windows, Mac e Docker. Pode ser instalado diretamente no mesmo servidor que o Zabbix desde que seu ambiente seja pequeno ou ambiente de POC, conforme nosso exemplo desse artigo.
Hoje todos nossos clientes estão em um servidor dedicado para o Grafana, portantno, existem dois outros pontos de atenção.
- A Instalação Padrão do Grafana vem com SQLITE3, então, caso você tenha grande crescimento com o seu ambiente ou prefere garantir sua operação, sugiro utilizar MySQL.
– Ambientes com mais de 100 usuários, com certeza utilizar MySQL - A conexão entre Zabbix e Grafana é realizada via API do Zabbix, então caso seu ambiente Zabbix tenha grande quantidade de acessos no Frontend, sugiro dedicar um Frontend somente para coletas API. Hoje utilizamos essa arquitetura principalmente para trabalhar com automatizações com a API do Zabbix, não somente em arquiteturas que envolvem o Grafana.
Dica: O Grafana oferece também a possibilidade de trabalhar como serviço Cloud.
2) Instalação Grafana
Vamos utilizar um ambiente de demonstração no artigo: CentOs 7.2 com Zabbix 3.2.
Instalação Grafana 4.2 (última versão estável disponível hoje)
yum install https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.2.0-1.x86_64.rpm
systemctl start grafana-server
Habilitando serviço no boot:
systemctl enable grafana-server.service
3) Plugin Zabbix – Alexander Zobnin:
Após a instalação do Grafana, devemos instalar o Plugin do Zabbix.
Instalação do Plugin via Grafana CLI (Executar no Shell):
grafana-cli plugins install alexanderzobnin-zabbix-app
Após instalado, vamos acessar o Grafana que, por padrão, utiliza a porta 3000. Navegar até o lado superior esquerdo, clicar em Plugins, depois Apps:
Vamos habilitar o Plugin do Zabbix, clicando em Enable:
Após o Plugin do Grafana habilitado, devemos configurar o Data Source, do qual é responsável por realizar a conexão entre Zabbix e Grafana.
Após clicar em Data Sources, clicar em +Add data source. Agora vamos realizar a conexão entre Zabbix e Grafana.
Name: Descrição para facilitar a administração, principalmente quando trabalhar com mais de um Zabbix em um Grafana.
Type: Qual tipo de Data Source – Zabbix.
Http Settings: URL da API do seu Zabbix. (em grandes ambientes pode se dedicar um frontend somente para o mesmo)
Zabbix API details
Username: Usuário que tem acesso para visualização dos dados que você vai trabalhar no Grafana. (somente visualização)
Senha: Senha do usuário Zabbix
Dica: Crie um usuário dedicado para essa conexão!
Preenchidas essas informações, podemos testar a conexão no botão Add:
Deve retornar a seguinte mensagem:
Pronto! Temos o Zabbix e Grafana conectados, vamos agora conhecer as possibilidades de “painéis”:
Após clicar no botão New, será aberta uma tela de um novo Dashboard, onde temos os painéis disponíveis para criarmos nossos Dashboard.
Abaixo destaco os painéis padrões da instalação que uso em clientes.
Graph:
O Painel gráfico, o modo de trabalho é bem similar como o Gráfico do Zabbix trabalha, claro que com diversas possibilidades: alteração de cores e visualização, diversas opções para se trabalhar com gráficos.
Singlestat:
O Painel Single Stat é utilizado para visualização de um único dado. Muito utilizado por todos que utilizam Grafana com Zabbix.
Tabelas:
O Painel Table, como o próprio nome demostra, é para criação de Dashboard em modo Tabela, e há flexibilidade total para criar colunas conforme sua necessidade:
Zabbix Triggers:
O painel de Triggers fornece a possibilidade de você criar uma visualização de suas Triggers no Zabbix, onde você pode realizar filtros de grupo, podendo liberar para seu cliente ver somente alarmes dele no Grafana junto com os gráficos coletados do Zabbix. Uma outra utilização interna que temos é em migração de ambientes, onde muitas vezes o time do cliente precisa de uma visualização de ambos ambientes para que não seja necessário a alteração de abas em diferentes Zabbix, sendo assim, realizamos a conexão dos dois ambientes e fornecemos uma única tela para visualização.
Além da visualização da Trigger, você pode trabalhar com integração de ACK entre Zabbix e Grafana. Também tem a opção Grafana e Zabbix, ou seja, caso um usuário crie uma ACK no Zabbix, o comentário irá aparecer no Grafana, e caso seja feito um comentário na ACK via Grafana, automaticamente também poderá ser visualizado na interface de Triggers do Zabbix.
Ambientes utilizados nas demonstrações: http://www.jlcp.com.br – http://play.grafana.org
Vamos criar um Dashboard com painel do tipo Singlestat para demonstração. Clique em Dashboard, novo Dashboard, opção do painel SingleStat, depois editar.
Query Mode: Temos a possibilidade de utilizar as métricas do Zabbix, mas também temos a opção de IT Service, ou seja, podemos inserir os dados de SLA utilizando o IT SERVICE do Zabbix.
Vamos utilizar o Query mode Metrics.
Group: Grupo Zabbix
Hosts: Host do Zabbix
Aplicação: Aplicação do Zabbix:
Item: Item do Zabbix
É interessante reforçar que o Grafana apenas faz a interação dos dados coletados no Zabbix, então é premissa que qualquer coleta que você deseja inserir no Zabbix, o Zabbix esteja coletando. O Grafana não trabalha com qualquer tipo de coleta de itens de monitoramento.
Vamos utilizar para demonstração a utilização de memória do servidor GLPI em porcentagem.
Feito isso, vamos na aba “Options do Painel” inserir unidade %.
Pronto, temos o painel com a porcentagem de utilização de memória. Podemos também ir na opção General e fornecer um nome.
Vamos agora trabalhar com algumas opções para habilitar funcionalidades interessantes:
Habilitei a opção Gauge e inseri o Coloring, ambos em “Options”:
Resultado:
As permissões no Grafana são definidas em organizações, assim como no Zabbix, então caso você deseja criar um ambiente para que seus clientes acessem, é necessário que você crie uma organização para cada cliente e posteriormente criar uma conexão de Data Source para cada Organização. Isso garante a segurança na utilização da mesma para diversos clientes.
Gostou da ferramenta? Conheça o curso “Integração Zabbix com Grafana EAD” e aplique o cupom PTIGRAFANA no carrinho de compras para ganhar um desconto especial – EXCLUSIVO para leitores do PTI 🙂
3 Comentários
Muito legal, ja tenho um zabbix e o grafana rodando redondo, mas as vezes o grafana não mostra o item que esta disponível e funcional no zabbix.
Voce sabe porque isso acontece ?
Ja reinicie os dois serviços mas o grafa continua não disponibilizando apenas alguns item os outros ele mostra e funciona 100%.
Cesario
Show the error message: “Could not connect to given url”. My webserver have LDAP auth access. Do I need to configure something more?
Pessoal,
Bom dia!!
Estou com um problema onde eu tenha o grafana Grafana v5.4.2 em uma maquina Ubuntu 16.04.6 e um Zabbix em outra da mesma maneira.
Fiz a instalação do grafana e instalei o plugin alexanderzobnin-zabbix-app e habilitei o mesmo.
Quando eu vou tentar criar o data sources do zabbix, ele aparece lá, eu clico em seve & test é gerado esse erro abaixo. Alguém consegue me orientar?
Zabbix plugin failed
Error: Fetch error: 404 Not Found Instantiating http://18.234.66.176:3000/public/@grafana/ui Loading http://18.234.66.176:3000/public/plugins/alexanderzobnin-zabbix-app/datasource-zabbix/module.js Loading plugins/alexanderzobnin-zabbix-app/datasource-zabbix/module