Integração do Zabbix com Grafana

Na Zabbix Conferece 2015 foi apresentado um estudo de caso em que o Zabbix estava integrado a outras ferramentas e uma delas chamou bastante a minha atenção e a do meu amigo André Déo. A ferramenta se chama Grafana.

Com ela é possível visualizar os dados coletados no Zabbix em gráficos e dashboards muito lindos e bem trabalhados. Veja algumas imagens abaixo ou acessando diretamente este site http://play.grafana-zabbix.org/

aExemplo de monitoramento de nível de serviço.

9e6ee67e-17a3-11e5-85de-fe9dcc2dd375Exemplo de dashboard.

622ec3be-17ad-11e5-8023-eba137369cfeExemplo de gráfico.

 A integração do Grafana com o Zabbix ocorre através do uso de um plugin desenvolvido pelo russo Alexander Zobnin, que fez um ótimo trabalho e bem documentado. O plugin e a documentação do mesmo estão acessíveis nestas páginas: https://github.com/alexanderzobnin/grafana-zabbix e http://docs.grafana-zabbix.org

Este plugin faz uso da API do Zabbix e a integração com o Grafana é possível a partir do Zabbix 2.0.

Para a execução deste tutorial foram utilizados os softwares abaixo:

Server A

  • Sistema operacional: Debian 9 64 bits e Ubuntu Server 16.04 64 bits
  • Zabbix 3.4.x
  • Grafana 4.4.x

Server B

  • Sistema operacional: CentOS 7 64 bits
  • Zabbix 3.4.x
  • Grafana 4.4.x

Atenção.:

Neste tutorial, não será mostrado a instalação do Zabbix.

Na execução deste tutorial, o Grafana foi instalado na mesma máquina que o Zabbix, mas se você preferir pode instalar em uma máquina à parte, conforme mostra a imagem abaixo.

grafana_zabbixCenários de integração do Zabbix com o Grafana.

Instalação do Grafana


Observação: O Grafana não possui pacotes para 32 bits, ele é disponibilizado oficialmente apenas para sistemas de 64 bits.

Para instalar o Grafana no Debian 9 64 bits ou no Ubuntu Server 16.04 64 bits execute os seguintes comandos:

cd /tmp 
VERSION=4.4.3_amd64
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana_$VERSION.deb 
sudo apt-get install -y adduser libfontconfig 
sudo dpkg -i grafana_$VERSION.deb
sudo update-rc.d -f grafana-server defaults

Os comandos usados nos dois métodos foram obtidos no site oficial do Grafana, nas páginas:

No primeiro link é mostrado mais detalhes sobre o pacote, como por exemplo: local dos binários, local do arquivo de log, local dos arquivos de configuração, entre outros.

Inicie o Grafana com um dos comandos abaixo.

sudo service grafana-server start
ou
sudo systemctl start grafana-serve

Para instalar o Grafana no CentOS 7 64 bits crie o respositório:

vi /etc/yum.repos.d/grafana.repo

Conteúdo do arquivo /etc/yum.repos.d/grafana.repo:

[grafana]
name=grafana
baseurl=https://packagecloud.io/grafana/stable/el/6/$basearch
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packagecloud.io/gpg.key https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

E em seguida execute os seguintes comandos:

yum install -y grafana
systemctl daemon-reload
systemctl start grafana-server
systemctl status grafana-server

A saída do comando de status deve ser:

grafana-server.service - Grafana instance
   Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; enabled; vendor preset: disabled)
   Active: active (running) since Seg 2016-12-12 14:59:40 BRST; 1 day 1h ago
     Docs: http://docs.grafana.org
 Main PID: 7229 (grafana-server)
   ...

Em seguida basta configurar o serviço para inicializar automaticamente:

systemctl enable  grafana-server

O log do Grafana fica em: /var/log/grafana/

O arquivo de configuração do Grafana fica em: /etc/grafana/grafana.ini

O arquivo de variáveis de ambiente do Grafana fica em: /etc/default/grafana-server

O script de inicialização do Grafana fica em: /etc/init.d/grafana-server

O banco de dados do Grafana é em Sqlite3 e fica em: /var/lib/grafana/grafana.db

O Grafana é acessível a partir da URL http://IP-SERVIDOR:3000.

O usuário é admin e a senha padrão é admin.

Integrando o Grafana com o Zabbix

Liste os plugins disponíveis para serem instalados no Grafana

sudo grafana-cli plugins list-remote

Deve ser exibido um resultado semelhante a este:

id: abhisant-druid-datasource version: 0.0.2
id: alexanderzobnin-zabbix-app version: 3.1.2
id: bosun-app version: 0.0.25
id: bosun-datasource version: 0.0.5
id: briangann-gauge-panel version: 0.0.1
id: crate-datasource version: 0.1.0
id: digiapulssi-breadcrumb-panel version: 1.0.0
id: fastweb-openfalcon-datasource version: 1.0.0
id: fetzerch-sunandmoon-datasource version: 0.1.1
id: foursquare-clouderamanager-datasource version: 0.9.2
id: grafana-clock-panel version: 0.0.8
id: grafana-example-app version: 1.0.1
id: grafana-influxdb-08-datasource version: 1.0.2
id: grafana-kairosdb-datasource version: 1.0.1
id: grafana-piechart-panel version: 1.1.4
id: grafana-simple-json-datasource version: 1.2.3
id: grafana-worldmap-panel version: 0.0.16
id: gridprotectionalliance-openhistorian-datasource version: 1.0.1
id: gridprotectionalliance-osisoftpi-datasource version: 1.0.0
id: hawkular-datasource version: 1.0.5
id: jdbranham-diagram-panel version: 1.3.0
id: kentik-app version: 1.0.4
id: mtanda-heatmap-epoch-panel version: 0.1.7
id: mtanda-histogram-panel version: 0.1.6
id: ns1-app version: 0.0.5
id: opennms-datasource version: 2.0.1
id: percona-percona-app version: 1.0.0
id: praj-ams-datasource version: 1.0.1
id: rackerlabs-blueflood-datasource version: 0.0.2
id: raintank-snap-app version: 0.0.3
id: raintank-worldping-app version: 1.1.0
id: ryantxu-ajax-panel version: 0.0.2
id: savantly-heatmap-panel version: 0.1.0
id: sileht-gnocchi-datasource version: 1.0.6
id: sraoss-sunburst-panel version: 1.0
id: stagemonitor-elasticsearch-app version: 0.26.0
id: udoprog-heroic-datasource version: 0.1.0
id: voxter-app version: 0.0.1

Restart grafana after installing plugins . <service grafana-server restart>

Para integrar o Grafana ao Zabbix, instale o plugin alexanderzobnin-zabbix-app executando os comandos abaixo.

sudo grafana-cli plugins install alexanderzobnin-zabbix-app
sudo service grafana-server restart

Configurando o acesso do Grafana a API do Zabbix

Acesse o Grafana a partir da URL http://IP-SERVIDOR:3000. O usuário é admin e a senha padrão é admin.

Clique na logo do Grafana (canto superior esquerdo),  depois clique no menu Plugins, em seguida, acesse a aba App. Será listada a app do Zabbix. Clique em cima do ícone da app e, em seguida, clique no botão Enable.

Agora clique na logo do Grafana (canto superior esquerdo), depois clique no menu  Data Sources e, em seguida, no botão Add new.

a

 

 

 

 

 

Preencha os campos conforme o exemplo da figura abaixo.

b

 

Atenção.:

No campo URL, você deve informar a URL da API do Zabbix. Se o seu Zabbix é acessível na URL http://IP-Servidor, então o valor deste campo deve ser http://IP-Servidor/api_jsonrpc.php.

Se o seu Zabbix é acessível na URL http://IP-Servidor/zabbix, então o valor deste campo deve ser http://IP-Servidor/zabbix/api_jsonrpc.php.

 

 

 

 

 

 

 

 

Visualizando Dados do Zabbix no Grafana

Clique na logo do Grafana (canto superior esquerdo), depois clique no menu Dashboards e, em seguida, no botão + New.

c

Clique em Zabbix Triggers e arraste para a area de trabalho da primeira linha do dashboard.

b

Este painel serve para mostrar as triggers cadastradas e acionadas no Zabbix. Clique no nome Painel Title e em seguida no ícone Edit para configurar o painel, se necessário. Veja o exemplo da figura abaixo.

e

 

Clique no botão Add row para adicionar uma nova linha no dashboard e, em seguida, clique no ícone Graph e arraste para a área de trábalhoSerá exibido a configuração do gráfico na aba Metrics. Conforme mostra a figura abaixo, escolha o grupo de host, o nome do host, o nome da aplicação (entenda aqui como o grupo de item, que você configura no Zabbix ao cadastrar um item) e por fim escolha o item que será monitorado. O gráfico será atualizado automaticamente. Para adicionar mais um item ao gráfico, clique no botão Add query.

d1

Perceba que aparecerá a linha B referente a configuração do segundo item do gráfico. Configure o segundo item conforme mostrado na figura abaixo. Quando terminar clique no link General (ao lado de Metrics)

e

Conforme mostra a figura abaixo, informe o nome do gráfico. O nome do gráfico será atualizado automaticamente.

f

Conforme mostra a figura abaixo, clique no botão em formato de disquete para salvar as alterações.

g1

Pronto! O Zabbix está integrado ao Grafana!

Você também pode baixar dashboards prontos no site https://grafana.com/dashboards?dataSource=alexanderzobnin-zabbix-datasource e importar no Grafana clicando em Dashboards > Imports, conforme mostrado abaixo.

grafana_import

Depois é só customizar o dashboard para atender as necessidades do seu ambiente.

OBS.: Alguns dashboards podem requerer que outros plugins do Grafana sejam instalados para exibir todas as funcionalidades.

Agora é só se aprofundar nos estudos desta ferramenta para criar gráficos e dashboards mais elaborados.

Se quiser configurar o Grafana para usar HTTPS, siga os passos deste tutorial: http://blog.aeciopires.com/configurando-o-grafana-para-funcionar-sobre-https/

Se quiser configurar o Grafana para disponibilizar dashboards para cada cliente, siga os passos deste tutorial: http://andredeo.blogspot.com.br/2016/12/zabbix-e-grafana-disponibilizando-um.html

Abaixo estão alguns links para começar os estudos no Grafana.

https://grafana.com/blog/2017/03/22/grafana-4.2-release/

https://community.grafana.com/t/release-notes-for-grafana-v4-2-0/167

http://docs.grafana.org/guides/whats-new-in-v4-1/

http://docs.grafana.org/guides/whats-new-in-v4/

http://docs.grafana.org/guides/whats-new-in-v3/

http://grafana.org/blog/2016/11/09/grafana-4.0-beta-release/

http://grafana.org/blog/2016/05/11/grafana-3-0-stable-released.html

https://github.com/alexanderzobnin/grafana-zabbix/wiki/Usage

http://docs.grafana-zabbix.org

http://docs.grafana.org/

https://grafana.net/dashboards

https://grafana.net/plugins

https://grafana.net/resources/getting-started-with-grafana-net

https://grafana.net/resources/getting-started-with-plugins

http://docs.grafana.org/plugins/installation/

http://docs.grafana.org/guides/basic_concepts/

http://docs.grafana.org/guides/gettingstarted/

http://docs.grafana.org/http_api/overview/

http://docs.grafana.org/reference/graph/

http://docs.grafana.org/reference/templating/

http://docs.grafana.org/alerting/rules/

http://docs.grafana.org/features/shortcuts/

http://docs.grafana.org/installation/configuration/

http://docs.grafana.org/guides/screencasts/

http://docs.grafana.org/tutorials/

55 thoughts on “Integração do Zabbix com Grafana”

  1. Bom dia!

    Estou tentando integrar o Grafana com o Zabbix 3.2. Baixei a iso do site do zabbix , o site do zabbix esta acessivel mas nao consigo acessar o grafana na porta 3000.

    Tem algum passo que estou esquecendo?

  2. Talvez o firewall do servidor esteja bloqueando a porta de acesso…

    Dê um iptables -F e teste…

    Caso ok, crie uma regra para liberar no iptables

  3. Olá! Fiz o procedimento, e está funcionando. Porem, quando starto o Grafana, o uso da CPU vai a 100%, ficando impossível de usar o Centos 7 aqui. Eu mato ele, volta ao normal. Nesse Linux, tenho rodando, Zabbix + GLPI + OCS Inventory, tudo em cima de uma Vmware ESXI.

  4. Olá, Diego!

    Acredito que terá que aumentar a capacidade de processamento da VM, para continuar atendendo a demanda do uso pelos softwares instalados e pelos usuários.

    Abraço.

  5. Muito legal, mas quando tento criar um dashboards novo ele não acha o datasource alguma ideia ?

    Obrigado

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *