Instalando Graphite y Grafana para visualizar las gráficas de Centreon

En este documento vamos a alucinar… sobre todo si eres fan de la medición de gráficas y quieres explotarlas… podremos exportar los resultados de nuestro Centreon a una máquina con Grafana y obtener la mejor solución para la visualización de nuestros datos… Serán impresionantes los dashboards que podremos generar, los personalizaremos a nuestro gusto, combinando métricas o intervalos de cada ítem que tengamos monitorizado con Centreon. Y además super sencillo!

 

Centreon (entre otros) permite exportar los datos que recolecciona a formato Base de Datos de Series Temporales (TSDB), pues gracias a ello, podremos almacenarlos en una Base de Datos de Graphite y con Grafana presentar esos datos en preciosos Dashboards. Grafana es una plataforma Open para crear nuestros propios cuadros de mando que permiten monitorizar nuestra infraestructura. En este documento, veremos cómo instalar Graphite y Grafana en una máquina con CentOS 7. Por tanto, nuestro Centreon o Nagios monitorizará nuestra plataforma como hasta ahora, pero además, redireccionaremos las métricas que monitoriza a una BD remota, y Grafana podrá leer dicha información y así nosotros crear los Dashboard que nos interese!

 

Ojo que este documento no tiene por que usarse sólo para Nagios o Centreon, si no que veremos en futuros documentos cómo leer información y tratarla de bases de datos de MySQL por ejemplo, ya veréis que interesante, veremos futuro mediciones de consumo electrico de casa o de la empresa, o cualquier cosa que se nos ocurra, de verdad que es impresionante y sobre todo si luego esto lo ponemos en una pantalla en nuestro departamento. O en nuestros hogares con un espejo mágico tipo MagicMirror que ya os contaré, ya… e incluso me atreveré a poner fotos de lo que tengo montado en casa para que veais que impresionante es.

 

Instalación de Graphite,

La máquina Centreon en este ejemplo tiene la dirección IP 192.168.1.57 y el Centos donde instalaremos Graphite y Grafana será la 192.168.1.104. Comenzamos!!

 

Para instalar Graphite, utilizaremos el repositorio EPEL, si no lo tienes instalado, deberás hacerlo, e instalamos Graphite y los paquetes necesarios:

yum install -y epel-release
yum install -y httpd graphite-web python-carbon perl

 

Inicializamos el interfaz de graphite y lo iniciamos ejecutando:

/usr/bin/graphite-manage syncdb --noinput
/usr/bin/graphite-build-index
/usr/bin/chown -R apache:apache /var/lib/graphite-web
systemctl start carbon-cache

 

Editamos el fichero de bienvenida y lo comentamos todo con almohadillas (#).

vim /etc/httpd/conf.d/welcome.conf

 

Modificamos el fichero ‘/etc/httpd/conf.d/graphite-web.conf’ para permitir acceso desde cualquier IP:

##ServerName graphite-web
<IfModule mod_authz_core.c>
    # Apache 2.4
    Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
    # Apache 2.2
    Order Deny,Allow
    Allow from all
</IfModule>

 

Y reiniciamos el servicio para recargar la configuración con:

systemctl restart httpd

 

Además de añadir un par de reglas que van a permitir el acceso externo al puerto de Graphite y acceso web, reiniciamos el firewall para que recargue la configuración, para ello:

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-port=2003/tcp
firewall-cmd --reload

 

Ojo, debemos indicar que los servicios arranquen al inicio con la máquina Centos, si? para ello ejecutamos:

chkconfig httpd on
chkconfig grafana-server on
chkconfig carbon-cache on

 

Podemos probar a abrir Graphite para ver si tenemos acceso y ver el agente predeterminado si contiene algo de información, para ello no será mas sencillo que abrir un navegador contra la dirección IP del CentOS, en este caso tan fácil como http://192.168.1.104 y ver que datos vamos teniendo…

 

Redireccionar output de Centreon a Graphite,

Bien, ahora haremos que el Broker del Centreon escriba también los datos a Graphite, para ello deberemos seguir los siguientes pasos en la máquina donde tenemos instalado Centreon!

Instalamos el plugin que necesitaremos en el Broker con:

yum install -y centreon-broker-graphite

 

Y ya podremos abrir la configuración GUI de nuestro Centreon, vamos a “Configuration” > “Pollers” > “Broker configuration” > “central-broker-master” > Pestaña “Output” > En el combo del Output escojemos ‘Graphite – Storage – Graphite’ > “Add”, completamos los siguientes campos de la siguiente manera:

  • Name: Graphite
  • DB host: 192.168.1.104 (dirección IP del Graphite)
  • DB port: 2003
  • DB user:
  • DB password:
  • Metric naming: centreon.metric.$HOST$.$SERVICE$.$METRIC$
  • Status naming: centreon.status.$HOST$.$SERVICE$

 

Con esto indicamos a donde exportará la información que recolecta nuestro Centreon y en qué formato lo mandará a nuestro Graphite (y luego lo veremos en Grafana).

 

Como siempre, recordar que tras cualquier cambio de configuración, debemos recargar la config en Centreon, para ello, lo haremos desde: “Configuration” > “Pollers” > “Export configuration” > Marcamos “Generate Configuration files” & “Run monitoring engine debug” & “Move Export Files” & en Method seleccionamos “Reload”, pulsamos por fin en “Export” y esperamos…

Tras ello, os recomiendo reiniciar estos dos servicios de Centreon desde su shell, nos conectamos con un Putty o lo que queramos a la máquina Centreon y ejecutamos:

service cbd restart
service centengine restart

 

Si queremos, podemos volver de nuevo a Graphite para ver cómo ya tenemos nuevas métricas que vienen de nuestro querido Centreon… va bien la cosa, no?

 

Instalación de Grafana

De vuelta a nuestra máquina con CentOS, vamos a seguir e instalar y configurar Grafana!

 

Lo primero será añadir un nuevo Repositorio a nuestra máquina, para ello, creamos el fichero ‘/etc/yum.repos.d/grafana.repo’ con el siguiente contenido:

[grafana]
name=grafana
baseurl=https://packagecloud.io/grafana/stable/el/7/$basearch
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packagecloud.io/gpg.key https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

 

Y procedemos a instalar Grafana e iniciar su servicio:

yum install -y grafana
systemctl start grafana-server

 

Añadimos en el firewall de la propia máquina acceso al puerto 3000 para poder conectarnos a Grafana desde cualquier equipo & recargamos con:

firewall-cmd --zone=public --permanent --add-port=3000/tcp
firewall-cmd --reload

 

Y listo!! Ya tenmos (i) Graphite instalado y configurado, (ii) nuestro Centreon que ya le manda los datos a esta máquina y (iii) un Grafana instalado que va a poder interpretar los datos obtenido y nos los mostrará en unos dashboards como decía aquel torero cantante… ‘im-pre-zionante’!!!

 

Accediendo a Grafana y creado nuestro primer dashboard,

Podemos ya abrir un navegador contra la dirección IP de nuestra máquina con CentOS y conectarnos a grafana, en mi ejemplo será contra esta dirección: http://192.168.1.104:3000 y nos validamos con el usuario predeterminado admin con contraseña ‘admin’.

 

Lo primero de todo será configurar un origen de datos, o sea, vamos a decirle que Grafana pueda leer los datos de la BD de Graphite, pulsamos primeramente en “Add data source”,

 

 

Y en este conector indicamos:

  • Name: Centreon
  • Type: Graphite
  • Url: http://localhost

Y pulsamos sobre “Add”, lo dicho, con esto haremos que Grafana pueda leer los datos de la máquina local, de Graphite. En otros documentos veremos cómo añadir otros origenes de datos para tratar y explotar otro tipo de información en Grafana.

 

Siguiendo con este asistente de introduccón, pulsaremos en “New dashboard” para crear nuestro primer Dashboard!

 

Y bueno sinceramente, usar Grafana es super super sencillo, podremos agregarle diferentes tipos de paneles en cada Dashboard, empezamos con el más típico, que no es más que el tipo ‘Graph’ que como entenderemos son gráficas, pueden ser lineales, en columnas, estacado… todo eso lo irás descubriendo, es muy muy intuitivo!!!

 

Nos creará este primer panel que podremos redimensionar para que se vea más o menos grande, con doble click en el título lo podremos editar, pulsamos en “Edit”,

 

Y como diria el gran Tamariz… Tiarararaaa!!!! ohhh magia!!! atentos….

Este Panel puede mostrar lo que queramos, tenemos varias pestañas (General, Metrics, Axes, Legend, Display…) que te animo a que vayas descubriendo o ten paciencia y en posts futuros te pondré ejemplos concretos. Pero vamos, en la pestaña ‘Metrics’ podremos añadir las métricas que nos interesen ver, hagamos un ejemplo muy sencillo, añadimos que sea de tipo ‘Centreon’ > ‘metric’ > ‘SERVIDOR’ > ‘ITEM MONITORIZADO’, y zas!!!! lo mostrará en la gráfica, ya podemos ver cualquier servidor o dispositivo que monitorizemos con Centreon aquí!! Nos sacará tanto su nombre cómo todos los servicios que monitorizamos desde Centreon!!! olé, olé y olé Rigodón!!!

 

Qué os parece? No me digáis que no podemos pensar qué visualizar y cómo, con unas gráficas impresionantes con Grafana?

Dedicandole un poco de tiempo podremos crearnos los dashboard con los paneles que nos interesen, cada Panel con sus métricas, las que sean, y veréis que se pueden personalizar a tope, para dejarlo como nos guste más… ir probando que en algún futuro documento volveremos a Grafana para ver más posibilidades!!!

 

Héctor Herrero

Autor del blog Bujarra.com
Cualquier necesidad que tengas, no dudes en contactar conmigo, os intentare ayudar siempre que pueda, compartir es vivir 😉 . Disfrutar de los documentos!!!