Home Escrevendo um plugin em bash para o Telegraf
Post
Cancelar

Escrevendo um plugin em bash para o Telegraf

Esse é post relacionado ao processo de criação de um plugin em bash para execução no Telegraf.

O que é o plugin inputs.exec

O plugin exec executa todos os comandos em paralelo em cada intervalo e analisa as métricas de sua saída em qualquer um dos formatos de dados de entrada aceitos. Este plugin pode ser usado para pesquisar métricas personalizadas de qualquer fonte.

Configurando o plugin inputs.exec

Para qualquer script com saída para o influxdb você deve ter uma saída como no exemplo estático abaixo:

1
2
#!/bin/bash
echo 'nomedoplugin,tag1=a,tag2=b valor1=42i,valor2=43i,valor3=44i'

Por exemplo:

1
2
#!/bin/bash
echo 'speedtest,country=br,provedor=xyz ipaddress=127.0.0.1,download=8065038.08428252,upload=2075037.06488392,ping=36.1'

Após isso poderá ser inserido dentro do arquivo de configuração do telegraf em /etc/telegraf/telegraf.conf ou então criando um novo arquivo .conf dentro do diretório /etc/telegraf/telegraf.d.

O plugin de entrada inputs.exec deve conter os seguintes parâmetros:

1
2
3
4
5
6
7
8
9
[[inputs.exec]]
  ##  Caminho do script
  commands = ["/tmp/test.sh"]

  ## Tempo limite para que cada comando seja concluído.
  timeout = "5s" 

  ## Formato entrada de dados, exemplo: influxdb
  data_format = "influx"

Outras informações e exemplo de formatos de dados podem ser encontrados em Input Data Formats

Testando o plugin

Uma opção de teste é rodar o telegraf --config telegraf.conf --test após ter feito o setup acima ou com um parâmetro de filtro, nesse caso o exec.

1
telegraf --config telegraf.conf --input-filter exec --output-filter influxdb

Reinicie o serviço do Telegraf

Após qualquer alteração lembre sempre de fazer o restart para ativar o plugin corretamente.

1
sudo systemctl restart telegraf 

Outros documentos

Esta postagem está licenciada sob CC BY 4.0 pelo autor.