Dashboard Dashing en Icinga2

En el artículo de hoy vamos a seguir hablando de la plataforma de monitorización Icinga2, concretamente del tablero Dashing, que nos permitirá tener un tablero o dashboard, si utilizamos el termino anglosajón, con la información principal, que nosotros le indiquemos.

Sobre Icinga2 Dashing

Como hemos indicado se trata de un producto que nos brinda la posibilidad de tener un tablero, con toda la información, que nosotros le indiquemos, de los diferentes hots y plataformas que tengamos monitorizados. Todo ello basado en el framework Sinatra, que nos ofrece un bonito y moderno panel de control. Dicho módulo está escrito en Ruby, por lo que tendremos que tener habilitado dicho lenguaje en nuestro servidor.

Instalación y configuración del módulo

Antes de nada, tenemos que tener instalado Icinga2. El código del módulo está ubicado en GitHub y como no podía ser de otra manera está licenciado utilizando software libre. Primero de todo nos tenemos que descargar el proyecto a nuestro servidor, de la siguiente manera:

  1. cd /usr/share
  2. wget https://github.com/Icinga/dashing-icinga2/archive/master.zip
  3. unzip master.zip
  4. mv dashing-icinga2-master dashing-icinga2
  5. cd dashing-icinga

Ya hemos dicho que está escrito en ruby, por lo que tenemos que instalar los paquetes necesarios. En mi caso el servidor es un Centos 7, por lo que los pasos serían lo siguientes:

  1. yum makecache
  2. yum -y install epel-release 
  3. yum -y install rubygems rubygem-bundler ruby-devel openssl gcc-c++ make nodejs

Ahora procedemos a instalar «bundler», una gema que nos permite a partir de un fichero (gemfile), poder definir todas las gemas que vamos a utilizar en un proyecto y en caso de que no las tengamos instaladas, se instalarán automáticamente.

  1. gem install bundler
  2. #Instalamos las posibles dependencias utilizando bundler
  3. bundle

Continuemos, ahora debemos añadir un nuevo usuario de la API de Icinga2, editando el fichero /etc/icinga2/conf.d/api-users.conf, de la siguiente manera:

  1.   object ApiUser "dashing" { 
    
  2.         password = "icinga2ondashingr0xx" 
    
  3.         permissions = [ "status/query", "objects/query/*" ] 
    
  4. }

La contraseña es la que viene por defecto, así que es importante que la cambiemos por una nueva.

También editamos el fichero configuración json de dashing, ubicando en /usr/share/dashing-icinga2/config/, llamado icinga2.json, con el siguiente código:

  1. # vi /usr/share/dashing-icinga2/config/icinga2.json
  2. { 
  3.   "icinga2": { 
  4.     "api": { 
  5.       "host": "localhost", 
  6.       "port": 5665, 
  7.       "user": "dashing", 
  8.       "password": "icinga2ondashingr0xx" 
  9.     } 
  10.   } 
  11. }

Reiniciamos dashing:

  1. cd /usr/share/dashing-icinga2
  2. ./restart-dashing

Ya estamos acabando, por último debemos indicar la IP de nuestro servidor, donde tengamos instalado Icinga2, en el fichero /usr/share/dashing-icinga2/dashboards/icinga2.erb, así:

De esta manera ya podemos acceder al nuevo dashboard, escribiendo, en mi caso: http://192.168.0.23:8005/icinga2

Para que se vea alguna alarma, he parado el servicio sshd en los nodos que he utilizado para el artículo 🙂 El producto tiene mucha miga, así que os recomiendo visitar su página en GitHub.

Me servido para realizar el artículo de la documentación oficial, además de un artículo en la web «Diario de un Proyectante«