Mi Blog

No te olvides seguirme en Facebook.

Tan solo tienes que hacer click en Me Gusta

 

 

x

⋆ Cómo instalar Grafana, InfluxDB y Telegraf en GNU/Linux Debian

⋆ Cómo instalar Grafana, InfluxDB y Telegraf en GNU/Linux Debian

(Tiempo estimado: 9 - 17 minutos)

Monitorizar la infraestructura de una red y sus servicios es muy sencillo gracias a Grafana, InfluxDB y Telegraf. Su amplio repertorio de plugins hace que podamos monitorizar casi cualquier sistema y/o servicio de nuestra red o de nuestro Cloud.

Seguid leyendo y aprenderéis a instalar y configurar vuestros primeros Dashboards con Grafana...

 

 

¿QUÉ ES GRAFANA, INFLUXDB Y TELEGRAF?

Jenkins es un servidor de automatización Open Source escrito en Java. Está basado en el proyecto Hudson y es, dependiendo de la visión, un fork del proyecto o simplemente un cambio de nombre.

Grafana, InfluxDB, TelegrafConexión entre componentes

 

 

Grafana

Grafana es un software libre basado en licencia de Apache 2.0, que permite la visualización y el formato de datos métricos. Permite crear cuadros de mando y gráficos a partir de múltiples fuentes, incluidas bases de datos de series de tiempo como Graphite, InfluxDB y OpenTSDB. Originalmente comenzó como un componente de Kibana y luego se ha ido bifurcando.

Grafana es multiplataforma y también se puede implementar con Docker. Está escrito en lenguaje Go y tiene un HTTP API completo.

Además de administrar cuadros de mando clásicos (adiciones, eliminaciones, favoritos), Grafana ofrece compartir un cuadro de mando actual mediante la creación de un enlace o una instantánea estática del mismo.

Todos los paneles de control y las fuentes de datos están vinculados a una organización, y los usuarios de la aplicación están vinculados a organizaciones a través de roles.

Grafana evita que los usuarios sobrescriban accidentalmente un panel de control. Existe una protección similar cuando se crea un nuevo panel de control cuyo nombre ya existe.

La herramienta ofrece la posibilidad de configurar alertas.

Web: https://grafana.com/

 

 

InfluxDB

InfluxDB es una base de datos basada en series de tiempo (time-series database). Las bases de datos de este tipo, han experimentado un crecimiento exponencial los últimos años. Las bases de datos de series de tiempo necesitan de un sistema que maneje de forma eficiente esas series de datos, con miles de datos por segundo, y de los que se necesitan hacer cálculos de manera optima y eficiente, como son las medias, mínimos, máximos, búsquedas en el tiempo, etc, y todo ello en tiempo real. InfluxDB es una base de datos que permite hacer análisis de datos en tiempo real.

InfluxDB permite trabajar con millones de puntos de datos y como puede trabajar en clúster, nos ofrecerá resultados en tiempo real con una alta precisión en el tiempo.

InfluxDB dispone de una versión gratuita de código abierto (open source) y permite trabajar con ella perfectamente. Tiene algunas características que solo están disponibles en la versión empresarial aunque su precio es bastante elevado. Dispone de un completo ecosistema que nos permite recolectar, guardar y tomar decisiones en base a los datos que recolecta otorgando la posibilidad de generar gráficos, alertas y notificaciones incluso en tiempo real.

Web: https://www.influxdata.com/

 

 

Telegraf

Telegraf es un servicio que recopila y envía métricas de datos de diferentes sistemas. Puede recopilar datos del sistema en el que se ejecuta, como por ejemplo el uso de disco, la carga del sistema, uso de la memoria RAM, carga de la CPU, el número de conexiones y muchas más cosas. Además, incluye una enorme lista de plugins de entrada, como Apache, consul, couchDB, Docker, Elasticsearch, Fluentd, HAproxy, http POST, etc... La salida de Telegraf, por norma general, se envía a una base de datos de tipo serie de tiempos como InfluxDB.

Web: https://www.influxdata.com/time-series-platform/telegraf/

 

 

Monitorizar estadísticas en tiempo real SI es posible

 

 

1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL

  • Un PC con GNU/Linux Debian
  • Otro PC con GNU/Linux o una VM para hacer como cliente
  • Conexión a Internet (obligatorio)

 

 

2.- ESQUEMA DE RED

El esquema de red para este tutorial será muy sencillo. Tendremos solamente 2 equipos. El primer equipo tendrá instalado Grafana, InfluxDB y Telegraf. El segundo equipo tendrá solamente Telegraf para monitorizar algunos recursos del sistema.

Grafana, InfluxDB, TelegrafEsquema de red

 

 

3.- INSTALACIÓN DE INFLUXDB

Instalar InfluxDB es muy sencillo en un equipo con GNU/Linux Debian. Antes de la instalación, haremos un update del los repositorios e instalamos los siguientes paquetes:

raul@debian:~$ sudo apt-get update
raul@debian:~$ sudo apt-get install -y apt-transport-https software-properties-common wget

 

 

Añadimos los repositorios oficiales de InfluxDB:

raul@debian:~$ wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -
raul@debian:~$ source /etc/os-release
raul@debian:~$ echo "deb https://repos.influxdata.com/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/influxdb.list

 

 

Y ahora si, instalaremos InfluxDB con el siguiente comando:

raul@debian:~$ sudo apt-get install influxdb

 

 

Con el siguiente comando comprobaremos que el servicio de InfluxDB está arrancado:

raul@debian:~$ sudo /etc/init.d/influxdb status
● influxdb.service - InfluxDB is an open-source, distributed, time series database
Loaded: loaded (/lib/systemd/system/influxdb.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2020-03-27 10:35:16 CET; 1min 14s ago
Docs: man:influxd(1)
Main PID: 1066 (influxd)
Tasks: 8 (limit: 1138)
Memory: 11.1M
CGroup: /system.slice/influxdb.service
└─1066 /usr/bin/influxd -config /etc/influxdb/influxdb.conf

 

 

 

 

4.- INSTALACIÓN DE TELEGRAF

Telegraf es el agente encargado de recolectar los datos y enviarlos a InfluxDB. Para instalar telegraf en el servidor y así poder recolectar el estado del mismo, es tan sencillo como ejecutar el siguiente comando:

raul@debian:~$ sudo apt-get install telegraf

 

 

En el fichero de configuración /etc/telegraf/telegraf.conf, deberemos configurar principalmente la dirección IP y el puerto a donde se enviarán las métricas. A modo de resumen, los parámetros básicos para editar son los siguientes:

urls = ["http://127.0.0.1:8086"]
database = "telegraf"
precision = "s"
timeout = "5s"

 

 

Ahora es momento de reiniciar el servicio para que los cambios se apliquen. Lanzaremos el siguiente comando:

raul@debian:~$ sudo service telegraf restart

 

 

5.- INSTALACIÓN DE GRAFANA

Grafana nos permite la visualización de los datos de forma visual con unos estupendos gráficos y dispone miles de opciones y plugins. Para instalar Grafana en el servidor ejecutaremos los siguientes comandos previos a la instalación:

raul@debian:~$ sudo apt-get update
raul@debian:~$ wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -

 

 

Y ahora si, con los siguientes comandos añadiremos el repositorio a nuestra lista de repositorios e instalaremos grafana:

raul@debian:~$ sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
raul@debian:~$ sudo apt-get install grafana

 

 

Ahora para asegurarnos, reiniciaremos Grafana:

raul@debian:~$ sudo service grafana-server restart

 

 

Desde un navegador, abriremos la dirección del servidor donde está Grafana y el puerto 3000. En este ejemplo la URL utilizada es http://192.168.1.47:3000/. Introduciremos el usuario por defecto "admin" y la contraseña por defecto "admin". Podremos cambiarla si queremos en el siguiente paso:

Grafana, InfluxDB, TelegrafPantalla de Login de Grafana

 

 

Ahora, en la pantalla principal lo primero que hay que hacer es añadir un Origen de datos. Haremos click en el icono de "Add data source":

Grafana, InfluxDB, TelegrafAñadir origen de datos

 

 

Seleccionaremos como origen de los datos InfluxDB:

Grafana, InfluxDB, TelegrafSeleccionar base de datos tipo InfluxDB

 

 

Ahora toca configurar los datos de InfluxDB. Lo mas importante es marcar la casilla Default e introducir la URL y el puerto donde corre InfluxDB. Cómo estamos instalando todo en la misma máquina, la URL de InfluxDB respecto a Grafana será http://127.0.0.1:8086:

Grafana, InfluxDB, TelegrafURL del servidor de InfluxDB

 

 

Introduciremos el nombre, el usuario y la contraseña configurada en InfluxDB:

Grafana, InfluxDB, TelegrafDetallas de la base de datos

 

 

Y ya podemos guardar y comprobar la configuración.

Grafana, InfluxDB, TelegrafGuardar y comprobar

 

 

El siguiente paso es añadir un Dashboard donde visualizaremos los datos. Haremos click en "New Dashboard":

Grafana, InfluxDB, TelegrafAñadir nuevo cuadro de mandos

 

 

Lo primero es añadir la Query (consulta bbdd). La query es seleccionar QUÉ datos queremos extraer de la base de datos para luego visualizarlos:

Grafana, InfluxDB, TelegrafAñadir Query

 

 

Aunque hay millones de opciones en las consultas (consultar la web oficial si es necesario), en la siguiente Query añadiremos el % de uso del disco sda1 en el servidor debian donde está instalado Grafana:

Grafana, InfluxDB, TelegrafQuery uso de disco sda1 en %

 

 

Ahora seleccionaremos el tipo de gráfica que queremos para los datos extraídos. Para este ejemplo usaremos una gráfica de tipo "Gauge":

Grafana, InfluxDB, TelegrafViualización Gauge

 

 

Configuramos el Título de la gráfica:

Grafana, InfluxDB, TelegrafConfiguración del cuadro

 

 

A continuación gradamos el Dashboard:

Grafana, InfluxDB, TelegrafGuardamos Dashboard

 

 

Como se pude ver, en el Dashboard creado, sale la gráfica que hemos añadido. Para añadir mas gráficas podremos hacerlo desde el icono con el símbolo de + en la parte superior:

Grafana, InfluxDB, TelegrafAñadir nuevas gráficas

 

 

Añadimos una nueva gráfica de líneas con el cpu load de 1minuto, 5mins y 15 minutos:

Grafana, InfluxDB, TelegrafNueva gráfica añadida

 

 

Si queremos añadir usuarios a Grafana, podemos hacerlo haciendo click en "Add Users":

Grafana, InfluxDB, TelegrafAñadir usuarios

 

 

En la siguiente pantalla podremos ver el listado de usuarios y crear nuevos usuarios a Grafana:

Grafana, InfluxDB, TelegrafUsuarios en Grafana

 

 

6.- INSTALACIÓN DE TELEGRAF EN NODO CLIENTE

En el nodo cliente, instalaremos solamente el cliente de Telegraf que será el encargado de recolectar los datos y enviarlos al servidor InfluxDB:

raul@debian:~$ sudo apt-get update
raul@debian:~$ sudo apt-get install -y apt-transport-https software-properties-common wget
raul@debian:~$ wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -
raul@debian:~$ source /etc/os-release
raul@debian:~$ echo "deb https://repos.influxdata.com/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
raul@debian:~$ sudo apt-get install telegraf

 

 

En el fichero de configuración /etc/telegraf/telegraf.conf, deberemos configurar principalmente la dirección IP y el puerto a donde se enviarán las métricas. A modo de resumen, los parámetros básicos para editar son los siguientes:

urls = ["http://192.168.1.47:8086"]
database = "telegraf"
precision = "s"
timeout = "5s"

 

 

Ahora es momento de reiniciar el servicio para que los cambios se apliquen. Lanzaremos el siguiente comando:

raul@debian:~$ sudo service telegraf restart

 

 

Desde el panel de control de Grafana, añadiremos las gráficas exactamente igual pero seleccionando el equipo cliente como se ve a continuación:

Grafana, InfluxDB, TelegrafAñadir métricas de un PC cliente

 

 

ENJOY!


Raúl Prieto Fernández

Sitio Web: raulprietofernandez.net

Si quieres ir rápido, ve solo. Si quieres llegar lejos, ve acompañado.

Escribir un comentario

Código de seguridad
Refescar