Atualizado em: 05 de Março de 2018
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/
Exemplo de monitoramento de nível de serviço.
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 5.0.x
Server B
- Sistema operacional: CentOS 7 64 bits
- Zabbix 3.4.x
- Grafana 5.0.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.
Cená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=5.0.0_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:
- http://docs.grafana.org/installation/configuration/
- http://docs.grafana.org/installation/debian/
- https://grafana.com/grafana/download
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
Mais informações sobre a instalação do Grafana no CentOS podem ser obtidas em: http://docs.grafana.org/installation/rpm/
O log do Grafana fica em: /var/log/grafana/grafana.log
O binário do grafana-server fica em: /usr/sbin/grafana-server
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 (Debian/Ubuntu) ou /etc/sysconfig/grafana-server (CentOS/Red Hat).
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.
Preencha os campos conforme o exemplo da figura abaixo.
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.
Clique em Zabbix Triggers e arraste para a area de trabalho da primeira linha do dashboard.
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.
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ábalho. Será 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.
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)
Conforme mostra a figura abaixo, informe o nome do gráfico. O nome do gráfico será atualizado automaticamente.
Conforme mostra a figura abaixo, clique no botão em formato de disquete para salvar as alterações.
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.
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.
http://docs.grafana.org/guides/whats-new-in-v5/
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
https://grafana.net/dashboards
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/
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?
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
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.
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.
Muito legal, mas quando tento criar um dashboards novo ele não acha o datasource alguma ideia ?
Obrigado
Ótimo post, mas estou com um problema.
Instalei tudo certinho, consigo visualizar meus hosts no Grafana, porém quando tento criar um dashboard, ele não me traz os dados.
Sabe o que possa ser?
Excelente tutorial, rodou tudo certinho como orientado.
Parabéns!
Seu tutorial ficou ótimo, parabéns
Boa tarde
Excelente tutorial
Eu tenho o grafana instalado em Centos e zabbix em outro servidor Ubuntu, na hora de fazer a autenticação no datasource ocorre um erro: Zabbix API Error: Invalid params. Login name or password is incorrect.
Estou utilizando o caminho correto http://10.10.1.188/zabbix/api_jsonrpc.php
O usuario e senha são os mesmos para acessar o zabbix.
Alguem poderia ajudar?