
Saludos, llevo bastantes semanas instalando varios productos en mi Homelab con los que poder monitorizar toda mi Infraestructura, y si es posible también algunos de los servicios que tengo en Cloud.
En este caso voy a dedicar una serie de entradas a montar un Dashboard que nos ayude a conocer mejor nuestro entorno, y para ello me basaré en tres de los mejores productos que existen ahora mismo para esta tarea: InfluxDB, Telegraf y Grafana
Esquema lógico de la Infraestructura
Os dejo un gráfico que he creado para que comprendamos los tres componentes que vamos a instalar y configurar en este Laboratorio:
- Telegraf: Se encarga de recolectar todos los datos que le pasamos mediante el fichero de configuración, Telegraf colecciona el resultado de los outputs que tenemos configurados, como son CPU/RAM/LOAD o servicios como Nginx, MariaDB, etc.
- InfluxDB: Es donde Telegraf manda toda esta información, InfluxDB esta especialmente diseñado para almacenar de manera eficiente una cantidad importante de información, además se pueden definir periodos de retención de la información en caso de que tengamos un problema de performance
- Grafana: Es el Dashboard que se encarga de mostrar toda la información que InfluxDB tiene almacenado en las Bases de Datos
Tanto como Grafana como InfluxDB están preparados para ingerir información desde diferentes orígenes, lo que nos hace poder añadir otros componentes si así lo quisiéramos, tales como Promotehus, Chronograf, etc.
Atención: En este tutorial se omite la configuración mediante credenciales para InfluxDB y Telegraf, con lo que InfluxDB queda expuesto a recibir información de cualquier origen
Instalando los componentes
Comenzaremos con una actualización de los paquetes y la instalación de los nuevos paquetes:
apt-get update && upgrade apt-get upgrade
Instalando InfluxDB
Para instalar influxDB, añadiremos el repositorio a nuestro sistema con el siguiente comando:
curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
source /etc/lsb-release
echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
Y lanzaremos la instalación del mismo:
sudo apt-get update && sudo apt-get install influxdb
Una vez ha terminado la instalación, arrancaremos el servicio con el siguiente comando
service influxdb restart
Instalando Telegraf
Como ya tenemos el repositorio de influxdata añadido, será tan sencillo como lanzar el comando para instalar Telegraf:
sudo apt-get install telegraf
Editaremos ahora la configuracion de Telegraf ubicado en /etc/telegraf
vi /etc/telegraf/telegraf.conf
Y añadiremos la URL de nuestro servidor InfluxDB en la sección llamada outputs.influxdb, fijaros en la variable urls
[[outputs.influxdb]]
## The full HTTP or UDP endpoint URL for your InfluxDB instance.
## Multiple urls can be specified as part of the same cluster,
## this means that only ONE of the urls will be written to each interval.
# urls = ["udp://localhost:8089"] # UDP endpoint example
urls = ["http://localhost:8086"] # required
## The target database for metrics (telegraf will create it if not exists).
database = "telegraf" # required
## Precision of writes, valid values are "ns", "us" (or "µs"), "ms", "s", "m", "h".
## note: using "s" precision greatly improves InfluxDB compression.
precision = "s"
## Retention policy to write to.
retention_policy = "default"
## Write consistency (clusters only), can be: "any", "one", "quorom", "all"
write_consistency = "any"
## Write timeout (for the InfluxDB client), formatted as a string.
## If not provided, will default to 5s. 0s means no timeout (not recommended).
timeout = "5s"
Reiniciaremos el servicio de Telegraf:
service telegraf restart
Comprobando la configuración de InfluxDB usando Chronograf
La mejor manera de navegar dentro de la base de datos de InfluxDB es con Chronograf, un visualizador de la base de datos con funcionalidades de Dashboarding adicionales.
Para descargarlo, nos iremos hasta su web de descargas para tomar la última versión:
Si estamos usando el sistema de paquetes, que yo siempre recomiendo, tan sencillo como hacer un:
sudo apt-get install chronograf
Añadiremos una nueva conexión, para ello nos iremos a un navegador y abriremos http://LAIPDETUCHORNOGRAF:8888 y seguiremos el wizard:
Ahora, será tan sencillo como incluir estos parámetros, si tuviéramos user y password habrá que añadirlos:
Y ya si nos vamos a la tercera opción del menú, llamada Data Explorer, podremos ver el contenido de las bases de datos de InfluxDB:
Muy sencillo, sin duda. Vamos a ver a continuación cómo poner todos estos datos de forma elegante en Grafana.
Instalando y configurando Grafana
Para instalar Grafana, tenemos primero que añadir los repositorios oficiales a nuestra lista de repositorios
sudo apt-get install -y apt-transport-https sudo apt-get install -y software-properties-common wget wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add - sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
Y realizar la instalación de la siguiente manera:
sudo apt-get install grafana
Una vez ha terminado de instalar, procederemos a reiniciar el servicio:
service grafana-server restart
Además, me gustaría mencionar que para que arranque el servicio de manera automática, tendremos que realizar lo siguiente:
sudo systemctl enable grafana-server.service
Una vez ha iniciado el servicio sin problemas, ya podemos irnos a nuestra URL, http://IP:3000
- usuario: admin
- password: admin
Haremos click en el menú de Grafana, y nos iremos hasta Data Sources
Haremos click en Add data source
Haremos click en Edit data source, donde tendremos que marcar todas las opciones que vemos en la ilustración:
- Name: El nombre que deseemos
- Marcar el check de default
- El Tipo es importante que sea InfluxDB
- En URL podremos usar localhost:8086, o la IP o hostname del servidor
- En la Base de datos escribiremos telegraf
- Y en las credenciales escribiremos admin/admin
Creando el primer Dashboard, recogiendo datos del propio servidor
Si la prueba nos ha dado como satisfactoria, ¡es el momento de crear nuestro primer dashboard! Nos iremos hasta Home y haremos click en New
Pulsaremos en Add Panel – Graph
Nos aparecerá una gráfica vacía, pero no os desmotivéis, vamos a explicar como editar esta gráfica para que contenga datos, como vemos podemos observar varias pestañas que tendremos que editar para que la gráfica tenga sentido:
Por ejemplo, he editado la gráfica con los siguientes cambios:
- General: El nombre de la gráfica, como CPU, o RAM, o NOMBREHOST-CPU, etc.
- Metrics: Os adjunto la pantalla pero básicamente he seleccionado el measurement system, en where he seleccionado el propio servidor, en field, he seleccionado los diferentes loads y he creado un alias para que la leyenda tenga sentido, debe quedar algo como lo siguiente:
Con un poco de trabajo y paciencia podéis lograr lo siguiente, un Dashboard con todo lo necesario a saber de vuestro entorno:
En fondo blanco:
En fondo negro:
En próximas entradas vamos a ver lo siguiente, guardar el menú:
Nada más amigos, espero que os guste, y me gustaría dejaros la serie completa aquí:
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte I (Instalando InfluxDB, Telegraf y Grafana)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte II (Instalar agente Telegraf en Nodos remotos Linux)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte III Integración con PRTG
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte IV (Instalar agente Telegraf en Nodos remotos Windows)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte V (Activar inputs específicos, Red, MySQL/MariaDB, Nginx)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte VI (Monitorizando Veeam)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte VII (Monitorizar vSphere)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte VIII (Monitorizando Veeam con Enterprise Manager)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte IX (Monitorizando Zimbra Collaboration)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte X (Grafana Plugins)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XI
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XII – Plugin nativo de Telegraf para vSphere
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XIII – Veeam Backup for Microsoft Office 365
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XIV – Veeam Availability Console
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XV – Monitorización IPMI de nuestros Hosts ESXi
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XVI – Rendimiento y seguridad avanzada de Veeam Backup for Microsoft Office 365
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XVII – Mostrando los Dashboards en dos monitores usando Raspberry Pi 4
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XVIII – Monitorizar temperatura y estado de Raspberry Pi 4
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XIX (Monitorizando Veeam con Enterprise Manager) Shell Script
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XX (Monitorizando Certificados SSL x.509)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXI (Monitorizando HTTP Responses)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXII (Monitorizando Cloudflare con Mapa)
- En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXIII (Monitorizando WordPress con Jetpack RESTful API)
- En Busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXIV (Monitorizando de Veeam for Microsoft Azure)
- En Busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXV (Monitorizando Consumo Eléctrico)
- En Busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXVI (Monitorizando Veeam Backup for Nutanix)
- En Busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XXVII (Monitorizando ReFS y XFS (block-cloning y reflink)
Espero que os guste esta serie de Blog Posts, y si es así, dejar un comentario que es gratis y siempre anima.
Un saludo



HOla, muchas gracias por el articulo, voy a ponerlo en marcha cuanto antes y seguiré atento a las siguientes entradas.
Una duda, que version de linux vas a usar??
Saludos.
Saludos David, Ubuntu 14.04 LTS
Un saludo
Gracias Jorge,
solo una petición, si puede ser, y es dar un poco mas de calidad a las imagenes.
Funcionando de momente con un dashboard muy simple.
Esperando la segunda parte…
Saludos
Oh, las imágenes tienen calidad, solo es que son pequeñas, déjame poner el link a la imagen completa.
Un saludo
Ya puedes hacer click y ver las imágenes en todo su esplendor 🙂
Fenomenal!!!!
Gracias Jorge
Buenos días,
Yo estoy implementando un sistema similar con la solución de PANDORA FMS. ¿Has probado este SW?. ¿Qué me aporta esta solución que describes con respecto a PANDORA o NAGIOS?.
Muchas gracias y excelente post.
Saludos
Saludos Miguel,
No he probado Pandora, pero si Nagios durante mucho tiempo. Bueno, puedo decir que con estos tres componentes no tienes alarmas, o similares que si tienes en Nagios y otros, por defecto muestra datos que ingiere de los diferentes origenes, hay incluso un plugin para Grafana que muestra Dashboard de zabbix, que es otro sistema de monitorizacion.
Si hablamos de ventajas de este combo de aplicaciones puedo decir que:
1.- Esta preparado para mostrar y recibir gran cantidad de información, cuando cambias las gráficas de periodo de tiempo, en pocos segundos esta todo allí, en entornos Nagios con tal cantidad de información en un dashboard tendrías problemas de performance y picos de uso en la DB
2.- Configurar los output de Telegram, que son por asi decir los “plugins” no requiere instalar nada, simplemente editar el fichero de configuración de Telegram, y ya empieza a mandar la información
3.- Al no ser el típico SNMP, o puertos TCP conocidos, tienes la ventaja de que están un poco mas a salvo de ataques, aunque mi recomendación siempre es proteger el trafico de monitorizacion por VPN si es externo
4.- Grafana es una aplicación muy potente con unos plugins muy elegantes que harán la delicia de cualquier Departamento de Sistemas, ademas de ser Multi-Tenant para ofrecer este servicio si se quiere a terceros, y mostrar solo el Dashboard que necesita ver, no editar, etc.
No creo que esta solucion pueda reemplazar a un entorno Nagios/PRTG/Zabbix/ELK, pero si supera en gran medida a cualquiera de los mencionados a nivel de Dashboard (mostrar información), una mezcla de varias tecnologías puede ser acertado.
Un saludo
Muy interesante esta serie, me la guardo para probarla cuando saque un rato.
Muchas gracias por el pedazo de curro y por el blog.
Yo uso zabbix para monitorizar, pero como la parte de gráficas no es muy allá, lo uso junto con grafana. Grafana tiene un addon para integrar los datos de zabbix y tener tus dashboards basados en las monitorizaciones ya hechas en Zabbix y la verdad es que el resultado es una maravilla también.
Saludos Miguel Angel,
Si, la mezcla de Zabbix y Grafana es de las mas elegantes, ojala los demás sistemas de monitorizacion sacaran un addon para Grafana. Si te apetece compartir la configuración un poco por encima, y unas capturas de pantalla, siempre claro con IPS o Hostnames difuminados, podemos incluirlo en una de las series sobre este tema.
Ya sabes mi dirección de email.
Un saludo
Grande Jorge!!!
No lo habia visto, pero me parece estupendo el post.
Yo uso Groundwork en una versión open “retocada”, nos va bien porque podemos estractar informes de SLAS muy interesantes. Pero viendo esta solución igual le damos una vuelta…
Saludos
Muchas gracias Alberto !!
Ya sabes que siempre puedes enviarme una captura de pantalla, o unas pocas para ojear vuestra solución.
Un saludo
Olà Jorge! Gracias Segnor.
I really needed this in my learning path. Perfect! Please follow up with more like this.
Furthermore I’m interested in logs aggregation for obvious reasons 🙂
Thanks again!
Jorge! Gracias por Compartir! no comprendo lo siguiente: En que momento creamos la base telegraf ? Viene por defecto? Saludos!
Saludos Santiago,
En el orden que se explica en el Post, inténtalo y coméntame 🙂
Un saludo
Hola Jorge! Soy seguidor de tu blog y profesional IT y la verdad es que es una maravilla que haya profesionales como tú que se animen (y animáis) a hacer portales divulgativos como este.
En lo que respecta a esta serie de entradas, me he animado a montar un pequeño laboratorio en mi (pequeño) centro de trabajo.
Gracias!!!
Muchas gracias por el comentario Victor! Me alegro que sirva y que les estés dando una oportunidad, ya sabes que compartir tu dashboard siempre es cool!
Hola jorge, antes de nada, gracias por compartir temas tan interesantes como este.
Respecto a la instalación, me ha ocurrido un problema, cuando intento cargar tanto la URL de Telegraf http : // IP : 8086, esta me devuelve un “404 page not found”. Tengo la distro de Ubuntu 14.04.5 LTS recién instalada. He comprobado que no tengo problema con los puertos. ¿Se te ocurre qué puede estar ocurriendo? Algún bug? Sigo leyendo a ver si encuentro la solución…
Gracias!
Saludos Dario,
Muchas gracias a ti por visitarnos y comentar, no se me ocurre nada, esta el servicio ejecutándose correctamente? Te responde el 8083?
Un saludo
Veo ademas que el puerto 8086 es solo para el API, asi que si quieres usar el http debes usar el 8083, aqui tienes mas info:
https://github.com/influxdata/influxdb/issues/436
Un saludo
Buenas tardes y gracias por la contesta,
Los puertos 8086 y 8083 me responden correctamente a telnet, así que decidí seguir adelante con el manual, he podido instalar grafana y ya tengo una gráfica de prueba montada.
Muchas gracias Jorge, te seguiré leyendo 🙂
Fantástico Dario,
Ya nos mostraras ese Dashboard que estas montando cuando este mas avanzado 🙂
Un saludo!
Hola.
Estoy intentando implementar el dashboard para sustituir a cacty, perome encuentro que el telegraf no esta para versiones viejas de centos, tengo centos 5 y centos 4 en maquinas que no puedo actualizar.
He intentado usar collectd en esas maquinas, pero cuando lo activo en el influxdb.conf el servicio no reinicia.
Se puede usar dos colectores de datos diferentes sin problemas?
Me recomiendas otro que no sea collectd?
Gracias
Saludos Jose, no he probado en versiones tan antiguas, has probado a preguntar en el IRC de influxdb o telegraf? O en sus foros?
Un saludo
Gracias por responder, en guithub parece que alguien ya soluciono para la versión 5 de centos, pero primero le estoy dando otra oportunidad al collectd.
Escribiré sobre el resultado.
Muchas gracias Jose, esperamos tus comentarios.
Un saludo y gracias por comentar
Al final se complica mucho tener dos colectores si quieres mostrar datos iguales para todas las maquinas, borre collectd he instale telegraf para centos5.
Ahora me surge una duda nueva, después de 3 meses de datos de 10 maquinas mi espacio en disco sufre . Como podría limitar el tiempo de guardado de los datos. Ejemplo: que solo se guarden los dos meses anteriores?.
Saludos
Saludos Jose,
Cual es la retention policy que tienes en InfluxDB?
https://docs.influxdata.com/enterprise_influxdb/v1.3//guides/rebalance/#step-1-update-the-retention-policy
Un saludo
Excelente post amigo tema como este difícil en youtube 😉
fantastico tu tutorial. me surge un inconveniente al querer instalar Telegraf. Me da el error “Unable to locate package telegraf” tienes idea de como resolverlo? Agradeceria tu ayuda.
Cordial Saludo
Saludos Nicolas,
Quizá no has añadido los paquetes de influx correctamente?
Prueba así:
wget https://dl.influxdata.com/telegraf/releases/telegraf_1.5.2-1_amd64.deb
sudo dpkg -i telegraf_1.5.2-1_amd64.deb
Hola Jorge
gracias por el tutorial se ve muy bueno
estoy estancado
cuando escribo /etc/init.d/telegraf restart
recibo error de que no existe la carpeta
Saludos Diego,
Prueba service telegraf restart, un saludo
corri sudo service telegraf restart
no existe localhost:8083 / localhost:8086
Has seguido todos los pasos uno a uno? Revisalos de nuevo, seguro que te ayudan 🙂
si, incluso lo instale en Ubuntu para que sea igual
Y tienes Influx también y todo? qué te dicen los logs?
Admin UI will be deprecated starting from v1.3. It can be enabled in v1.2 by editing the influxdb config file.
Read more here: https://docs.influxdata.com/influxdb/v1.2/tools/web_admin/ 364
Thank you, done, edited.
Buenas tardes, como seria la configuración si aparte de mostrar la máquina del localhost mostrara tambien alguna de la misma red?QUe muestre el servidor y sus clientes. Muchas gracias!
Saludos Azork68,
Para ello tendras que instalar el agente de telegraf en todos los Linux o windows de tu red, y configurarlos para que manden sus datos a tu InfluxDB Server 🙂
Ya tengo instalado telegraf en los otros servidores dentro de la misma red, pero no consigo que aparezca en InfluxDB ¿Cual seria la configuración en el agente?
Saludos Azork68,
Tienes dos guias de como configurar tanto el de Linux o Windows, aqui:
En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte XVIII – Monitorizar temperatura y estado de Raspberry Pi 4
Y windows por ejemplo
En busca del Dashboard perfecto: InfluxDB, Telegraf y Grafana – Parte IV (Instalar agente Telegraf en Nodos remotos Windows)
Vale ya lo he solucionado, muchas gracias por facilitarme los enlaces, me han venido muy bien.
Gracias por responder Jorge! 🙂
Fantastico, un saludo
Hola, interesante articulo sobre todo por el detalle de las instalaciones pero segun entiendo Telegraph carga los datos en InfluxDB pero en la graficas termina mostrando datos de las CPU, etc, en que paso se generan y guardan estos datos ?.
Si, cuando instalas telegraf, viene por defecto ya con cpu, ram y demas configurado, si metes en una sola VM InfluxDB y telegraf, entonces ya ves la CPU, RAM y demas de esa VM 🙂
Buenas tarde Jorge,
La verdad es que es alucinante lo que se puede hacer con todo esto que comentas.
Yo ya tengo instalado grafana, y como fuentes de datos Zabbix y Librenms. La verdad es que con el plugin de zabbix es super comodo ir seleccionando equipos o recursos de la misma manera que lo tienes configurado en el propio zabbix. Con Librenms me estoy encontrando algún problemilla más, aunque le instale influxdb para que puedan verse los datos de una manera mas comoda que directamente con el mysql de librenms.
Ahora estoy intentando integrar una herramiento de ticketing, concretamente GLPI. He visto un plugin y demás, que he habilitado, pero no soy capaz de sacar consultas para poder ver el estado de los ticket.
Tu has añadido a grafana alguna herramienta de ticketing? por si me puedes echar una manilla…
Gracias!!
Jorge, acabo de descubrir con tu portal un mundo nuevo realmente con esto de telegraf, influxdb y grafana. Estoy empezando a interiorizarme, en particular para monitorizar ambientes VMware. La consulta que te quiero hacer es muy puntual por lo menos para entender. Como hace Telegraf, para tomar los datos de vCenter? lei en algunos post que no es por SNMP, entonces me queda la duda como lo hace. Obviamente la siguiente pregunta es como lo hace con otras plataformas? Windows, Linux, HPE ILO, etc. Si puedes ayudarme a entender, te lo agradecería. Muchas gracias.
Saludos Pablo, hay un articulo que muestra como recolecta la información de vCenter, https://www.jorgedelacruz.es/2020/01/20/vmware-como-conseguir-un-intervalo-perfecto-de-recoleccion-de-metricas-con-telegraf-influxdb-y-grafana/ Para el resto, pues depende, hay ya muchos input de telegraf, que están listos para ser consumidos, tu ultimo recurso es usar snmp, que también funciona.
Gracias Jorge, si ese articulo ya lo habia leido, mi pregunta iba direccionada a como hace telegraf para recolectar los datos, puntualmente esta consulta. Dicho de otro modo, que herramienta, protocolo, etc., utiliza telegraf para recolectar esa informacion de distintos destinos y de diferentes plataformas. Bueno, gracias de todas formas por la respuesta. Saludos.
Saludos Pablo,
La información oficial está aquí – https://github.com/influxdata/telegraf/tree/master/plugins/inputs/vsphere Usa el SDK de VMware de toda la vida, puerto 443. 🙂
un saludo
Jorge, voy a investigar en ese repositorio de github. Estoy recien empezando con esto, voy a seguir los instructivos que publicaste. Muchas gracias, quedamos en contacto. Saludos.
Hola Jorge, estoy instalando GTI en una VM con CentOS 8 pero no entiendo muy bien la parte donde no le pones credenciales en la configuración de Telegraf para que se conecte a Influxdb y en la parte desde Chronograf. Por que no le configuras credenciales en el archivo de configuración o desde Chronograf? No es necesario realizarlo?
Gracias de antemano.
Hola Jorge, estoy instalando GTI en un CentOS 8, pero no me queda claro por no le configuras auntenticación en el archivo de configuración de Telegraf o via web desde Chronograf, No es necesario que se configure autenticacion entre Telegraf e Influxdb? O hay alguna otra razon por que no lo hiciste?
Gracias de antemano.