Exportando métricas de Glances a InfluxDB y visualizando con Grafana

Glances es una interesante y completa herramienta que permite monitorizar diversos recursos del sistema de un vistazo general: carga, CPU, memoria, I/O de disco, uso de red…

Podemos sacar potencial a Glances exportando los datos a InfluxDB para más tarde visualizarlos con Grafana.

Instalación del software necesario

Teniendo en cuenta que vamos a utilizar distintos componentes y siempre surgen dudas de compatibilidad, para el presente artículo el sistema utilizado ha sido Ubuntu 16.04. Tanto InfluxDB como Grafana los he instalado desde repositorios de la distro, mientras que Glances lo he instalado con pip3.

Instalación de Glances con pip3:

pip3 install glances

Instalación de Grafana e InfluxDB desde repos:

apt install influxdb influxdb-client grafana

Una vez instalados, iniciaremos InfluxDB y Grafana:

service influxdb start
service grafana start

La interfaz web de Grafana escuchará en el puerto 3000 (http://localhost:3000) y la de InfluxDB en 8083 (http://localhost:8083)

Preparando InfluxDB para almacenar métricas

Necesitaremos crear una Base de Datos en InfluxDB para que Glances pueda ir volcando las métricas correspondientes.

  1. Conectamos con InfluxDB:
    influx
    
  2. Creamos la Base de Datos para Glances:
    CREATE DATABASE glances 
    

Creación de datasource en Grafana

Para poder visualizar las métricas de Glances necesitaremos indicarle a Grafana el origen de los datos. Para ello crearemos un datasource en Datasources -> Add New

Rellenaremos con los datos observados en la imagen. InfluxDB deshabilita por defecto la autenticación y autorización tanto de la interfaz web HTTP como para las conexiones a BBDD. Leed la documentación correspondiente de InfluxDB para activarlas y de esta manera securizar adecuadamente vuestro entorno. Para el presente artículo en InfluxDB Details podéis poner en User y Password datos aleatorios. Realizamos un test de conexión para verificar.

Últimos pasos y visualización de gráficas

Descargamos los siguientes ficheros del repo de Glances (son de Nicolas Hennion, el creador de Glances):

wget https://raw.githubusercontent.com/nicolargo/glances/master/conf/glances-grafana.json
wget https://raw.githubusercontent.com/nicolargo/glances/master/conf/glances.conf

Iniciamos Glances desde terminal pasándole con la opción -C el fichero glances.conf que hemos descargado y también con –export-influxdb

glances -C glances.conf --export-influxdb

Importamos el panel para Glances (fichero glances-grafana.json) en Grafana en Dashboards -> Home -> Import y después buscándolo con Browse en la localización donde lo hayamos descargado anteriormente.

Si queremos guardar este Dashboard de Glances en Grafana, presionamos Ctrl + S

Una vez realizado esto deberían comenzar a dibujarse las gráficas correspondientes:

Enjoy! 😉