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