Nesse outro artigo mostrei como utilizar o Grafana com o InfluxDB como data source e o Telegraf como data collector. Agora vou mostrar como Configurar o Telegraf para colocar seus hosts no dashboard do Grafana. Essa configuração farei no Raspberry para gerar um dashboard com informações do sistema e vou aproveitar para mostrar como criar um coletor de métricas personalizado.
Tópicos
Instalar o Telegraf
Como no artigo supracitado construimos uma imagem Docker e fizemos todas as configurações pelo browser, não deu pra perceber como funciona a inclusão de hosts no dashboard.
Bem, a começar pelo conceito; utilizamos o Grafana para exibir belos gráficos, utilizamos o InfluxDB como data source, sendo que o InfluxDB é um banco de dados chamado de “time series” e utilizamos o Telegraf como agente. Esse agente se encarrega de fazer as coletas e enviar os dados para o banco de dados, que por sua vez é consultado pelo Grafana, dentro do intervalo de tempo padrão (que pode ser personalizado) de 10 segundos. Para configurar esse agente é muito simples, apenas algumas linhas no arquivo de configuração são necessárias para que ele inicie a coleta. Mãos à obra.
Adicionar repositório no Raspbian
O primeiro passo é adicionar o repositório no Raspbian. Para tal, execute:
1 2 3 4 |
sudo su apt-get install wget wget https://dl.influxdata.com/telegraf/releases/telegraf-1.5.2_linux_armhf.tar.gz tar zxvf telegraf-1.5.2_linux_armhf.tar.gz |
Se estiver instalando em um Debian ou seus derivados, o processo é um pouco diferente aqui:
1 2 |
wget https://dl.influxdata.com/telegraf/releases/telegraf_1.5.2-1_amd64.deb sudo dpkg -i telegraf_1.5.2-1_amd64.deb |
Supondo que tenha optado por instalar no Raspberry, o próximo passo é copiar as estruturas do diretório telegraf para a raíz do sistema. Ainda como root:
1 |
cp -r ../telegraf/* / |
Entre no diretório /etc/telegraf, edite o arquivo telegraf.conf e mude os parâmetros:
1 2 3 4 |
urls = ["http://192.168.1.7:8086"] database = "telegraf" username = "telegraf" password = "telegraf" |
Agora você pode criar um serviço ou chamá-lo a partir de de um script de inicialização do sistema ou ainda, executá-lo diretamente pela linha de comando:
1 |
telegraf --config /etc/telegraf/telegraf.conf& |
Se estiver rodando em um Linux convencional, inicie o serviço com:
1 2 3 |
systemctl enable telegraf #ou service telegraf start |
Agora já podemos criar um dashboard com informações do Raspberry. Leia o artigo anterior para entender daqui pra frente. A configuração para pegar a CPU utilizada pelo sistema e pelo usuário ficou assim:
E a partir daí é só ir criando as métricas que deseja visualizar.
Antes de vermos como colocar uma métrica personalizada, dê uma olhada em 3 ítens que resolvi colocar no dashboard:
Como criar uma métrica personalizada
Com o Telegraf é bastante simples de se fazer e o melhor, você pode criar seu coletor de métricas na linguagem de programação que preferir. Para exemplificar, criaremos um gerador de dados fake em shell script.
Coletor em shell script
Para testar, escrevi um script de uma linha, apenas para enviar os dados ao InfluxDB. Como estamos utilizando o InfluxDB como receptor dos dados, devemos simplesmente escrever o header do shell e uma linha de comando:
1 2 |
#!/bin/bash echo "random value=$(((RANDOM % 150)+1))" |
Isso gerará números randômicos entre 1 e 150.
Adicionar o usuário telegraf
O dono e o grupo do arquivo fake.sh devem ser telegraf. Adicionemo-lo:
1 2 |
sudo su adduser telegraf --shell /bin/false |
Siga o ritual da adição e então mude as propriedades do arquivo (supondo que ele esteja em /usr/bin):
1 2 |
chown telegraf.telegraf /usr/bin/fake.sh chmod 750 /usr/bin/fake.sh |
Configurar o Telegraf
Agora precisamos incluir uma configuração no arquivo /etc/telegraf/telegraf.conf relacionada ao nosso script. Edite o arquivo com seu editor preferido e então adicione essas linhas na sessão [[inputs.system]]:
1 2 3 4 5 |
[[inputs.exec]] commands = ["bash /usr/bin/fake.sh"] timeout = "5s" name_suffix = "_rpi" data_format = "influx" |
Reinicie o telegraf e adicione a saída de sua métrica ao Grafana:

O resultado é a imagem de destaque desse artigo. Fácil ou não?
Siga-nos no Do bit Ao Byte no Facebook.
Prefere twitter? @DobitAoByte.
Inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.
Nossos grupos:
Arduino BR
https://www.facebook.com/groups/microcontroladorarduinobr/
Raspberry Pi BR
https://www.facebook.com/groups/raspberrybr/
Orange Pi BR
https://www.facebook.com/groups/OrangePiBR/
Odroid BR
https://www.facebook.com/groups/odroidBR/
Sistemas Embarcados BR
https://www.facebook.com/groups/SistemasEmbarcadosBR/
Sistemas Eletrônicos
https://www.facebook.com/groups/544679592355388/
Projetos Arduino | Eletrônica
https://www.facebook.com/groups/projetosarduinoeletronica/
ESP8266 e ESP32
https://www.facebook.com/groups/ESP8266BR/
ARM Brasil
https://www.facebook.com/groups/508153815944410/
MIPS BR
https://www.facebook.com/groups/MIPSBR/
Do Bit ao Byte
https://www.facebook.com/groups/dobitaobyte/
Próximo post a caminho!