Instal·lant Telegraf + InfluxDB + Chronograf + Grafana

Ja és hora de donar-li una mica a Telegraf, tinc pendents uns quants posts que crec puguin resultar interessants, així que si us sembla bé, avui veurem com muntar la base, InfluxDB per emmagatzemar mètriques, Chronograf com el seu visualitzador nadiu; y, com no, Grafana, perquè tots sabem que és el millor visualitzador de mètriques i farem màgia.

El que s'ha dit, usaremos aquest document com base inicial para unos posts que iremos publicando en el blog para explotar nuestro sistema de monitorización. El stack de TICK (Telegraf, InfluxDB, Chronograf i Kapacitor) nos puede venir genial para abrazar y extender nuestro entorn de monitorización, personalmente para la visualización de determinadas métricas en tiempo real, y para ello l'agent de Telegraf nos recopilará els dades que ens interessen, els emmagatzemarà en el nostre InfluxDB y podremos visualitzarlos en Chronograf. Encara que el dicho, personalment soy molt més fan de Grafana por tota la seva elasticitat, però Chronograf ens pot venir molt bé per aprendre el llenguatge Flux. Ya que bueno, InfluxDB 1.x usaba com lenguaje de consultas InfluxQL i des de la versió 2.x se usa Flux, y a alguns nos cuesta el canvi 🙂

Con Telegraf podremos recopilar mètriques del equipo donde instal·lem l'agent o també de equips remotos donde no se pueda instalar, per exemple, en un switch, y este tipo de maquines les consultamos mediante SNMP. La idea final es tener unos dashboards de Grafana que nos muestren los datos que recopilemos, e insisto, para mí el punt fuerte es poder tener dades con intervalos de 1 segon.

Instalación de InfluxDB

InfluxDB és una BD de series de dades TSDB (Time Series Database), de codi abierto, molt més eficiente para almacenar y procesar este tipus de datos. A la hora de publicar el post teníamos la versión 2.1, con los siguientes comandos, descargaremos el repositori de InfluxDB e instalaremos InfluxDB, además de levantar el servei y verificar el seu estat (ah, este post está basado en un Ubuntu 20.04):

wget -qO- https://repos.influxdata.com/influxdb.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdb.gpg > /dev/null
export DISTRIB_ID=$(lsb_release -si); export DISTRIB_CODENAME=$(lsb_release -sc)
echo "Deb [signed-by=/etc/apt/trusted.gpg.d/influxdb.gpg] https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} estable" | sudo tee /etc/apt/sources.list.d/influxdb.list > /dev/null

sudo apt-get update && sudo apt-get install influxdb2

sudo systemctl start influxdb
sudo systemctl status influxdb
sudo systemctl enable influxdb

Instalaremos a continuació Influx CLI, para posteriormente configurar mínimamente InfluxDB y bueno, com client CLI de línea de comandos para la gestió en caso de necessitarlo.

wget https://dl.influxdata.com/influxdb/releases/influxdb2-client-2.2.0-linux-amd64.tar.gz
tar xvzf influxdb2-client-2.2.0-linux-amd64.tar.gz
sudo cp influxdb2-client-2.2.0-linux-amd64/influx /usr/local/bin/
rm -rf influxdb2-client-2.2.0-linux-amd64/

Vamos a configurar InfluxDB con influx CLI, con ‘sudo influx setupcrearemos el usuario, contrasenya, primera organización, y primer bucket para almacenar, la retención de datos para este bucket, y confirmamos:

sudo influx setup

> Welcome to InfluxDB 2.0!
? Please type your primary username influx_user
? Please type your password **************
? Please type your password again **************
? Please type your primary organization name Open Services IT
? Please type your primary bucket name Monitor
? Please type your retention period in hours, o 0 for infinite 0
? Setup with these parameters?
  Username:          influx_user
  Organization:      Open Services IT
  Bucket:            Monitor
  Retention Period:  infinite
 (y/N) y

Bo, un par de notas ahora, para consultar cual es nuestra organización y su ID, executem:

sudo influx org list

ID                      Name
x4473x3a36x4d008        Open Services IT

Y si queremos listar nuestro Token:

sudo influx auth list
ID Description Token User Name User ID Permissions 08xx775x1706000 influx_user's Token Ts...Q== influx_user 08xx1253x3060 [read:/authoriza...

Instalando Chronograf

Para instalar Chronograf, el visualizador de InfluxDB, lo haremos así de rápido:

wget https://dl.influxdata.com/chronograf/releases/chronograf_1.9.1_amd64.deb
sudo dpkg -i chronograf_1.9.1_amd64.deb
sudo systemctl status chronograf
sudo systemctl enable chronograf

Abrimos un navegador y conectamos el nostre Chronograf con la BD de InfluxDB http://DIRECCIÓN_IP:8888

Comenzamos el asistente de configuración, posem en “Get Started”,

Y cumplimentamos los siguientes datos:

  • Connection URL: IP o hostname de InfluxDB y el portto (per defecte 8086), podría ser http://127.0.0.1:8086 si és la misma màquina.
  • Nom de la connexió: Le indicamos un nombre a la conexión.
  • Organization: Indicamos el nombre de la organización de InfluxDB.
  • Token: Pegamos el Token de acceso.
  • Telegraf Database Name: Opcional, si volem otro nombre de BD, por defecto se llamará 'telegraf'.

Posem en “Afegir connexió” i finalitzamos l'assistent de connexió.

Instal·lant Telegraf

Bo, obviament dependerá del SO on tengamos que instal·lar Telegraf, ya que podem instal·larlo en Windows, Mac, Ubuntu, Centos, RedHat, Debian, contenidors… així que si necessites, echa un vistazo a su web oficial. Aquest exemple seria per a sistemes Ubuntu/Debian:

wget -qO- https://repos.influxdata.com/influxdb.key | sudo tee /etc/apt/trusted.gpg.d/influxdb.asc >//dev/null
source /etc/os-release
echo "deb https://repos.influxdata.com/${ID} ${VERSION_CODENAME} estable" | sudo tee /etc/apt/sources.list.d/influxdb.list
sudo apt-get update
sudo apt-get install -y telegraf

El fitxer de configuració de Telegraf el tindrem a ‘/etc/telegraf/telegraf.conf’ i si el editem tindrem infinites possibilitats d'obtenció de dades, de l' equip local (o d'un altre remot en cas necessari). I això és el que anirem veient en futurs posts, així que el que us deixo aquí serà la configuració comuna, que serà dir-li a Telegraf que enviï les dades al nostre InfluxDB, així que la configuració de l'output seria almenys la següent:

 ...
 [[outputs.influxdb_v2]]
  urls = ["http://ADREÇA_IP_INFLUXDB:8086"] # required
  organization = "Open Services IT"
  bucket = "Monitor"
  token = "T...Q=="
...

I res, iniciem, habilitem i veiem l'estat del servei de Telegraf amb:

sudo systemctl enable telegraf
sudo systemctl restart telegraf
sudo systemctl status telegraf

Y si volvemos a nuestro Chronograf, y exploramos las métricas de nuestro bucket, podremos comenzar a visualizar que esto ya recopila datos!

Instalando Grafana

I bo, venga acabando que es gerundio… si volem, en la misma máquina podemos montar Grafana, y crear un conector contra InfluxDB para pues eso, visualizar, tratar los datos y hacer magia, viendo los datos en mapas, taules, formacits, gráficas de barras. línies…

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 -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
sudo apt-get update
sudo apt-get install -y grafana

I res, iniciem, habilitamos y vemos el estado del servicio de Grafana con:

sudo systemctl start grafana-server
sudo systemctl status grafana-server
sudo systemctl enable grafana-server

Si accedim amb un navegador a http://DIRECCION_IP_GRAFANA:3000 nos validaremos con el usuario predeterminado admin y contraseña admin, que deberemos por favorcito changer según nos logueemos.

Lo siguiente será eso, crear un conector contra InfluxDB para visualizar los datos que a futuro emmagatzememos ahí, anem a “Configuration” > “Data sources” > “Add data source”.

Mirar el listado, es impresionante de donde podem visualizar datos… imaginaros las BBDD internas que tengáis en la empresa… venga que me lio, buscamos InfluxDB y lo seleccionamos.

Y creamos el conector, indicando:

  • Name: Nombre de la conexión.
  • Query Language: Flux
  • URL: http://ADREÇA_IP_INFLUXDB:8086
  • Organization: El nombre de la organización de InfluxDB
  • Token: Pegamos el Token de acceso.
  • Default bucket: Indicamos el bucket que usaremos.

I posem en “Save & Test”, si hem seguido todos los pasos bien, esto conectará!

Y si creamos un Dashboard nuevo, creamos un nuevo Panel, indicamos por ejemplo un Time Series, o sigui, la típica visualización de líneas. Y ponemos la consulta de Flux, ya podremos ver los datos! Ahora toca jugar con las opciones de visualización, otro tipo de Panel… i per suposat, comenzar a alimentar esto! Si no sabemos Flux, lo más sencillo será copiar las consultes des de Chronograf. O… directament importarte Dashboards en Grafana de gent que ya se los haya currado 🙂 Y veem muchos exemples, ya veréis como mola…

Os contaría muchas cosas, pero es tarde, es un post largo y anem a ir viendo en futurs posts muchas ideas que seguro que llaman vuestra attention. Si estáis aburridos echar un vistazo a coses que se le poden afegir a Grafana…

El que s'ha dit, muchas gràcies si has arribat fins aquí, gracias por compartir en xarxes socials, por los likes y esas cosas, que hay que ser agradecido 🙂

¡Éxitos!

Posts recomanats

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, no dubtis a contactar amb mi, us intentareu ajudar sempre que pugui, compartir és viure ;) . Gaudir dels documents!!!

Posen un Honeypot en la teva vida

1 de February de 2022