InfluxDBWeek: Cómo Monitorear Linux con InfluxDB 2.0 Beta.

InfluxDBWeek: Cómo Monitorear Linux con InfluxDB 2.0 Beta.

Bienvenidos al segundo artículo de esta semana dedicada a InfluxDB, en este caso, te muestro cómo desplegar InfluxDB 2.0 Beta en Docker, también veremos cómo monitorear un sistema Linux.

InfluxDB 2.0, aún está en etapa beta, pero creo que tiene una madurez más que interesante para probarlo. En esta versión, que está basada en su servicio Cloud integra capacidades de todos los componentes (excepto Telegraf). Esto hace que el despliegue sea más sencillo, ya que en un mismo paquete tendremos Chronograf, Kapacitor e InfluxDB.

Con respecto a los cambios, lo que más me gusta están relacionados con la interfaz, la seguridad, al agregarle autenticación interna (cosa que Chronograf 1.8 no tiene) y el manejo de Token Keys para los Telegraf que tengamos desparramados por ahí. Esto último, es lo que más me gusta, así uno no anda dejando en archivos de configuración usuarios y contraseñas.

Para que vean un poco sobre los cambios, les dejo el gráfico de arquitectura. Si leyeron el artículo anterior, verán una clara diferencia.

Arquitectura InfluxDB 2.0
InfluxDBWeek: Cómo desplegar InfluxDB, Chronograf, Kapacitor y Telegraf en Docker + Bonus Track.
Bienvenidos a esta semana dedicada a InfluxDB. Hoy veremos como desplegar en Docker InfluxDB, Chronograf, Kapacitor y Telegraf en Docker.

Arranquemos

Antes de comenzar a monitorear nuestro servidor, vamos a ver el despliegue de InfluxDB 2.0 Beta. Como les comente más arriba, para esta versión se integraron las capacidades de Kapacitor, Chronograf e InfluxDB en un solo paquete. Esto hace muy sencillo el despliegue y la administración de todo.

Nuestro "docker-compose.yml" se verá así:

version: "3.3"

services:
  influxdb:
    container_name: influxdb
    image: quay.io/influxdb/influxdb:2.0.0-beta
    volumes:
      - ./influxdb:/root/.influxdbv2/
    ports:
      - 9999:9999
    networks:
      - "monitoring"

networks:
  monitoring:

¿Sencillo, no? en este caso, vamos a desplegar InfluxDB. Más adelante, veremos la configuración de Telegraf. La instalación la podés encontrar en el tutorial donde vimos el monitoreo de Docker.

Monitoreando Docker con Telegraf, InfluxDB y Grafana
En este artículo, te voy a mostrar cómo monitorear Docker, usando Telegraf, InfluxDB y Grafana.

Básicamente, lo que vamos a hacer acá es darle un nombre al contenedor, seleccionar la imágen, fijense, que no es una imagen de Docker Hub, en este caso InfluxData decidió subir a otra registry esta versión Beta.

También montamos un volumen para que la data de InfluxDB sea persistente, exponemos un puerto, en este caso el "9999" y definimos una red, para que en el caso de que tires un Telegraf como contenedor, lo pongas en la misma Docker Network y todo vaya fluido.

Para desplegar ejecutamos, como siempre:

docker-compose up -d

La terminal nos devuelve:

Creating influxdb ... done

Para verificar que efectivamente esté corriendo, ejecutamos:

docker ps

El output de eso sería algo como esto:

CONTAINER ID        IMAGE                                  COMMAND                  CREATED             STATUS              PORTS                    NAMES
53bd5d6eec01        quay.io/influxdb/influxdb:2.0.0-beta   "/entrypoint.sh infl…"   22 seconds ago      Up 21 seconds       0.0.0.0:9999->9999/tcp   influxdb

Y con eso ya estaríamos. ¿Vamos a configurarlo?

Configuremos InfluxDB

Para comenzar, vamos a dirigir nuestro navegador al http://localhost:9999. Veremos esto:

Esta es la pantalla de bienvenida. Le damos un clic en "Get Started" y lo siguiente que veremos es esto:

Acá vamos a especificar datos importantes. Por ejemplo, el usuario de administrador, la contraseña, la confirmación de la misma. El nombre de la organización, ya que InfluxDB 2.0 es multi tenant por defecto y por último vamos a especificar el nombre de nuestro primer "bucket".

Seguramente te preguntarás ¿Qué es un bucket?. Un bucket es la ubicación donde los datos se guardan, es, una base de datos, que solo se dedica a almacenar time series data. Todos ellos tienen una política de retención que puede configurarse.

Dicho esto, cuando le das "Continue" y si todo esta bien, el siguiente paso, es especificar cómo queremos arrancar.

Si recién estamos arrancando, podemos elegir la opción "Quick Start" donde veremos un dashboard listo recolectando información del InfluxDB. En nuestro caso, vamos a hacer un clic en la opción "Advanced".  

Lo siguiente es, nuestro flamante InfluxDB listo para seguir configurando. En la siguiente imagen veremos las bases de datos que viene por defecto, más el bucket que creamos en el proceso de configuración.

La instalación termina acá, pero nosotros no, lo siguiente es configurar Telegraf para comenzar a monitorear un Ubuntu Server 20.04 recién instalado.

Cómo monitorear un Servidor Ubuntu Server 20.04 con InfluxDB

Para tener un dashboard en Chronograf, no debíamos hacer mucho en Telegraf, solo necesitábamos los datos del servidor InfluxDB donde inyectar los datos, usuario y contraseña y especificar los inputs en el archivo telegraf.conf.

En InfluxDB 2.0 la esencia no cambia, pero es mucho más amigable comenzar a trabajar, aunque al principio parezca que tiene más pasos.

Vamos a sección "load data" y seleccionamos "Telegraf" tal como aparece acá abajo.

Luego hacemos un clic en "Create Configuration", esto nos va a ayudar con el Token Key y nos va a dar una idea de la configuración que debemos hacer.

En la siguiente pantalla, debemos elegir que queremos monitorear, en este caso, vamos a seleccionar "System" y luego vamos a darle un clic en "Continue".

Lo siguiente es darle un nombre descriptivo a la configuración, si se fijan a la izquierda, aparecen en verde todos los plugins que vienen con esa configuración.

Si quisiéramos monitorear otra cosa y este tenga un pre requisito, lo va a marcar en esta misma pantalla. En este caso, le vamos a dar un clic en "Create and Verify". Si todo esta bien, avanzamos.

En la siguiente imágen InfluxDB, nos generá un Token ID, que lo más recomendable es que lo pasemos como variable de entorno en el sistema operativo que queremos monitorear y luego, la indicación de cómo debemos correr Telegraf. Noten que en vez de especificar un archivo telegraf.conf, vamos a especificar una URL.

Si por algún motivo, esta opción no nos gusta, podemos configurar todo en un archivo e invocarlo cuando ejecutamos Telegraf.

Para este ejemplo, fijense, que la dirección es "http://localhost:9999". Me podría conectar si el Telegraf estuviera local, pero como es una maquina virtual, debo hacer un Tweak y especificar la dirección IP de mi Mac en donde corre Docker.

En mi caso queda así:

telegraf --config http://192.168.1.43:9999/api/v2/telegrafs/059ce79064f9b000

Lo que debería devolver sería algo como esto:

2020-04-29T02:13:27Z I! Starting Telegraf 1.14.0
2020-04-29T02:13:27Z I! Loaded inputs: net processes swap system cpu disk diskio mem
2020-04-29T02:13:27Z I! Loaded aggregators:
2020-04-29T02:13:27Z I! Loaded processors:
2020-04-29T02:13:27Z I! Loaded outputs: influxdb_v2
2020-04-29T02:13:27Z I! Tags enabled: host=conejito
2020-04-29T02:13:27Z I! [agent] Config: Interval:10s, Quiet:false, Hostname:"conejito", Flush Interval:10s

Un tip por acá: Si no tira un error luego de los 10 segundos iniciales, todo esta bien.

Para este caso, todo parece estarlo, así que volvemos al InfluxDB y en este caso, vamos a la parte de Dashboards.

De manera automática, cuando creamos la configuración, InfluxDB ya también nos deja un dashboard listo. En este caso, es el que dice System.

Si hacemos un clic ahí, ya comenzaremos a ver información de monitoreo que arroja el Ubuntu Server.

Lindo sería que, tome el nombre que le pusimos en la configuración para generar un dashboard con el mismo nombre, tal vez, es algo que veremos en la versión final, no lo sé con seguridad.

De todos modos, podemos darle unos retoques, para que el dashboard tenga reflejado que sistema estamos monitoreando y de esta manera, damos por terminado nuestro trabajo.

Para ir cerrando

Como siempre, espero que este artículo te haya servido para que conozcas más de observability. Aquí abajo dejo los archivos de configuración de Telegraf para que lo tengas como referencia, lo mismo con el docker-compose.

influxdb-v2.0-beta · master · Ignacio Van Droogenbroeck / Docker Recipes
Acá hay recetas que uso para mi y que comparto en el blog

Eso es todo, muchas gracias por leer y hasta la próxima.