web stats
Back
Featured image of post Monitorización con Telegraf, InfluxDB y Grafana

Monitorización con Telegraf, InfluxDB y Grafana

Uno de los usos más prácticos que se le pueden dar a nuestra Raspberry, es utlizarlo como un servidor central para monitorizar los diferentes equipos de nuestra casa.

Uno de los usos más prácticos que se le pueden dar a nuestra Raspberry, es utlizarlo como un servidor central para monitorizar los diferentes equipos de nuestra casa.

Una forma sencilla, muy potente y con uso de consumos mínimo, muy utilizado en entornos productivos, es:

  • Telegraf – es el «cliente» que recolecta los datos en su host, y los envía una una Base de Datos centralizada. Es ampliamente customizable mediante plugins.
  • InfluxDB – Es la BBDD que recibe los datos de Telegraf. Está diseñado para trabajar de forma muy eficiente con series de datos temporales.
  • Grafana – Es el frontend donde visualizaremos los diferentes gráficos y medidores. Recolecta datos de muchísimas otras fuentes por lo que es muy elastico de cara a futuro.

Todos estos productos son Open Source y gratuitos, y activamente desarrollados.

Un diagrama básico podría ser el siguiente:

img
img

En mi caso lo voy a instalar todo en una raspberryPi 2B corriendo Raspbian Buster. Más adelante veremos como añadimos más nodos.

Antes de nada necesitamos tener clara la versión y codigo de nuestro S.O., en nuestro caso buster

pi@rpi2:~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 10 (buster)
Release:        10
Codename:       buster

Instalación de InfluxDB y Telegraf

Añadimos los repositorios de influx, son el mismo para ambos productos.

curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
echo "deb https://repos.influxdata.com/debian buster stable" | sudo tee /etc/apt/sources.list.d/influxdb.list

Instalamos Telegraf y InfluxDB

sudo apt update
sudo apt install telegraf
sudo apt install influxdb

Configurar Telegraf

Antes de nada, debemos de configurar Telegraf para indicarle qué información debe recoger, y dónde debe enviarla. Para ello modificamos el fichero de configuración

sudo nano /etc/telegraf/telegraf.conf

En la sección [[outputs.influxdb]] descomentamos la url correspondiente a http.

 urls = ["http://127.0.0.1:8086"]

el nombre del database a utilizar

database = "telegraf"

y le indicamos que no cree la BBDD, ya que la vamos a crear manualmente nosotros más delante

 skip_database_creation = true

También dentro de este apartado, vamos a añadir autentificación para tener más controlado el entorno, y no dejar los datos expuestos a cualquier ataque. Se pueden añadir medidas adicionales, pero como primer paso nos puede servir con esto.

  ## HTTP Basic Auth
  username = "telegraf"
  password = "MIPASSWORD"

Reinicamos el servicio para que coja los cambios realizados:

sudo systemctl restart telegraf

y lo activamos como servicio para que levante automáticamente

sudo systemctl enable telegraf

InfluxDB

Los puertos que utiiliza InfluxDB por defecto son:

Puerto Descripcion
8086 API http a la que se conectará Telegraf
8088 Servicio de backup y restore

Vamos a configurar la autentificación, al igual que hicimos con Telegraf. Para ello modificamos el fichero de configuracion de InfluxDB:

sudo nano /etc/influxdb/influxdb.conf

Y modificamos lo siguiente dentro del apartado [http]

  enabled = true
  bind-address = ":8086"
  auth-enabled = true

Tras esto, guardamos y reiniciamos el servicio

sudo systemctl restart influxdb

Y lo activamos como servicio para que levante automáticamente:

sudo systemctl enable influxdb

Chronograf

Los puertos que utiiliza Cronograf por defecto son:

Puerto Descripcion
8088 API http a la consola de administración

Para poder ver, o gestionar influxdb de forma gráfica, podemos instalar Chronograf

sudo apt install chronograf

Creamos también el usuario admin de nuestro InfluxDB

curl -XPOST "http://localhost:8086/query" --data-urlencode "q=CREATE USER admin WITH PASSWORD 'MIPASSWORD' WITH ALL PRIVILEGES"

Ahora ya podemos acceder a la GUI o consola de administración. Lo podemos hacer en local (http://localhost:8888) o remotamente accediendo a la IP de nuestra raspberryPI (http://192.168.0.X:8888)

Una vez abierto, iniciamos una conexión añadiendo los datos de nuestro InfluxDB, y el usuario admin que acabamos de crear

img
img

img
img

Una vez creado, nos vamos a «InfluxDB Admin»

img
img

img

Creamos una nueva BBDD:

img
img

y un usuario telegraf con todos los permisos

img
img

Con esto debería estar todo listo. Hacemos un reboot para comprobar que todo arranca bien, y Telegraf empieza a meter datos en la BBDD

Lo podemos ver en Chronograf, en la opcion «Explore»

img
img

Con esto ya podemos ver de forma sencilla los datos reportados por Telegraf. En el siguiente capítulo veremos como ver esto de una manera más avanzada utilizando Grafana.

comments powered by Disqus
Creado con Hugo