Manual
do
Maker
.
com
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.
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.
O primeiro passo é adicionar o repositório no Raspbian. Para tal, execute:
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:
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:
cp -r ../telegraf/* /
Entre no diretório /etc/telegraf, edite o arquivo telegraf.conf e mude os parâmetros:
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:
telegraf --config /etc/telegraf/telegraf.conf&
Se estiver rodando em um Linux convencional, inicie o serviço com:
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, na imagem de destaque.
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.
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:
#!/bin/bash
echo "random value=$(((RANDOM % 150)+1))"
Isso gerará números randômicos entre 1 e 150.
O dono e o grupo do arquivo fake.sh devem ser telegraf. Adicionemo-lo:
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):
chown telegraf.telegraf /usr/bin/fake.sh
chmod 750 /usr/bin/fake.sh
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]]:
[[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?
Inscreva-se no nosso canal Manual do Maker no YouTube.
Também estamos no Instagram.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.