Telegraf es un agente multiplataformas que se encarga de recoger datos y enviarlos a nuestros recolectores.
Podemos estraer datos de mas de 100+ Plugins (Cpu, memoria, Vcenter, http,…) y enviar a más de 50+ tipos diferentes (InfluxDB, Prometheus, Json, Azure, …) y mucho mas.
Instalación Windows
Para la instalación en un equipo Windows es bien sencilla, descargaremos telegraf https://portal.influxdata.com/downloads/, lo descomprimimos y copiamos la carpeta donde deseemos.
Install Telegraf | Telegraf 1.24 Documentation (influxdata.com)
Using Telegraf on Windows | InfluxData

Servicio de Windows
Para configurar telegraf como un servicio de Windows, ejecutaremos lo siguiente:
telegraf.exe --service install --config "carpeta\telegraf.conf"
*Adcionalmente podemos especificar una carpeta si tenemos los ficheros .conf en otra carpeta:
--config-directory 'C:\Program Files\telegraf\conf
https://github.com/influxdata/telegraf/blob/master/docs/WINDOWS_SERVICE.md
Los distintos comandos que tenemos son: Install Telegraf | Telegraf 1.24 Documentation (influxdata.com)

Linux
Para instalar en Linux ejecutaremos los siguientes comandos.
1. sudo wget -qO- https://repos.influxdata.com/influxdb.key | sudo tee /etc/apt/trusted.gpg.d/influxdb.asc >/dev/null 2. source /etc/lsb-release 3. echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list 4. apt install telegraf
Ficheros Configuración
Configuration options | Telegraf 1.24 Documentation (influxdata.com)
El primero sera el apartado de “Agent” que establecemos cada cuanto ejecutaremos la recolección y envio de datos.
[agent]
#Cada cuanto capturar los datos
interval = "60s"
## Si interval="10s" colecionara cada :00, :10, :20, etc.
round_interval = true
#Tamaño del buffer hasta que envie los datos
#https://github.com/influxdata/telegraf/wiki/MetricBuffer
metric_batch_size = 1000
#Tamaño maximo del Buffer
metric_buffer_limit = 10000
#Permite alterar las capturas de datos en un tiempo aleatorio, para no saturar el sistema al capturar datos.
collection_jitter = "0s"
#Intervalo de envio de datos outputs
flush_interval = "10s"
#agregamos un intervalo de tiempo para el envio de datos
flush_jitter = "0s"
#Se utiliza para redondear la metricas
precision = ""
## Logging configuration:
#Ejecución en modo debug.
debug = false
#solo muestra mensajes de error.
quiet = false
#esteblece la ubicación del fichero de log.
logfile = "/Program Files/Telegraf/telegraf.log"
#podemos especificar un nombre de hostname, si esta vacio es el propio de la máquina.
hostname = ""
#Elimina el tag de host.
omit_hostname = false
Ahora necesitamos indicar el output o salida de datos.
Plugin directory | Telegraf 1.24 Documentation (influxdata.com)
[[outputs.influxdb_v2]]
urls = ["http://servidor_influx:8086"]
token = "Token"
organization = "Mordor World"
bucket = "telegraf"
#https://github.com/influxdata/telegraf/blob/release-1.24/plugins/outputs/influxdb_v2/README.md
Windows counters
y ahora toca especificar los inputs que es lo que vamos a capturar del equipo local u de algun sitio remoto, en windows
[[inputs.win_perf_counters]]
##Captura de Contadores de procesador
[[inputs.win_perf_counters.object]]
# Processor usage, alternative to native, reports on a per core.
ObjectName = "Processor"
Instances = ["*"]
Counters = [
"% Idle Time",
"% Interrupt Time",
"% Privileged Time",
"% User Time",
"% Processor Time",
"% DPC Time",
]
Measurement = "win_cpu"
# Set to true to include _Total instance when querying for all (*).
IncludeTotal=true
##Captura de Contadores de Memoria
[[inputs.win_perf_counters.object]]
# Example query where the Instance portion must be removed to get data back,
# such as from the Memory object.
ObjectName = "Memory"
Counters = [
"Available Bytes",
"Cache Faults/sec",
"Demand Zero Faults/sec",
"Page Faults/sec",
"Pages/sec",
"Transition Faults/sec",
"Pool Nonpaged Bytes",
"Pool Paged Bytes",
"Standby Cache Reserve Bytes",
"Standby Cache Normal Priority Bytes",
"Standby Cache Core Bytes",
]
# Use 6 x - to remove the Instance bit from the query.
Instances = ["------"]
Measurement = "win_mem"
# Set to true to include _Total instance when querying for all (*).
#IncludeTotal=false
Para agregar más counters se agrupa de la siguiente forma.
[[inputs.win_perf_counters.object]] # Tipo de objeto counter
ObjectName = "Paging File" # Nombre del Objeto
Counters = [ # Datos a capturar
"% Usage",
]
Instances = ["_Total"] # Instancia
Measurement = "win_swap" # Nombre de la tabla en donde guardar los datos.

Para ver los contadores de Windows, ejecutar “Perfmon”.
Para ver los contadores usar sistema operativo en inglés.
Linux
Para capturar metrics de linux por ejemplo
[[inputs.cpu]]
percpu = true
totalcpu = true
collect_cpu_time = false
report_active = falseCopy
[[inputs.disk]]
ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]
[[inputs.diskio]]Copy
[[inputs.internal]]
collect_memstats = trueCopy
[[inputs.kernel]]
# no configurationCopy
[[inputs.mem]]
# no configurationCopy
/etc/telegraf/telegraf.d/net.conf
[[inputs.net]]Copy
[[inputs.swap]]
# no configurationCopy
[[inputs.processes]]
# no configurationCopy
[[inputs.system]]
## Uncomment to remove deprecated metrics.
# fielddrop = ["uptime_format"]
Comandos Telegraf
Despondremos tambien de algunos comando extras para configurar nuestros ficheros de configuración o pruebas de telegraf.
--aggregator-filter <filter> filter the aggregators to enable, separator is :
--config <file> configuration file to load
--config-directory <directory> directory containing additional *.conf files
--debug turn on debug logging
--input-filter <filter> filter the inputs to enable, separator is :
--input-list print available input plugins.
--output-filter <filter> filter the outputs to enable, separator is :
--output-list print available output plugins.
--pidfile <file> file to write our pid to
--pprof-addr <address> pprof address to listen on, don't activate pprof if empty
--processor-filter <filter> filter the processors to enable, separator is :
--quiet run in quiet mode
--sample-config print out full sample configuration
--test gather metrics, print them out, and exit;
processors, aggregators, and outputs are not run
--usage <plugin> print usage for a plugin, ie, 'telegraf --usage mysql'
--version display the version and exit
--console run as console application (windows only)
--service <service> operate on the service (windows only)
--service-name service name (windows only)
Crear fichero .conf
Vamos a crear un fichero para ello utilizamos el parametro “–sample-config” y queremos capturar cpu, mem, net y salida a influx.
telegraf --sample-config -input-filter cpu:mem:net --output-filter influx_v2 > ./telegraf.conf
-input-filter cpu:mem:net
--output-filter influx_v2
Test fichero
Para validar el fichero agregamos al comando –test
telegraf --test --config ./telegraf.conf --config-directory ./telegraf.d/

Mensaje de Deprecated Warning al realizar el Test
Si recibimos el siguiente mensaje lo podemos eliminar agregando en telegraf.conf
[agent]
snmp_translator = "gosmi"
