Munin, que significa memoria, es una herramienta que permite monitorizar uno o varios equipos y representar sus datos de manera gráfica para su posterior análisis por parte del administrador del sistema.
Funciona en modo cliente/servidor, por lo que habrá un servidor que recoja los datos de cada uno de los clientes que monitoriza y cree las gráficas respectivas.
Instalación
Si deseamos visualizar las gráficas desde cualquier equipo mediante el protocolo HTTP, necesitamos instalar el paquete de Apache (o cualquier servidor web) en nuestro equipo. Si no los instalamos solo visualizaremos las gráficas en modo local. Para ello:
apt-get install apache2
Para instalar el paquete del servidor:
apt-get install munin
Para instalar el paquete del cliente:
apt-get install munin-node
/etc/munin/munin.conf
En este fichero encontramos la configuración del servidor, donde especificaremos los directorios donde se almacenarán las gráficas y los datos, así como cada uno de los equipos que se van a monitorizar.
Si queremos, podemos descomentar esos directorios para elegir una ruta diferente.
dbdir /var/lib/munin
htmldir /var/cache/munin/www
logdir /var/log/munin
rundir /var/run/munin
tmpldir /etc/munin/templates
A continuación especificamos cada uno de los equipos a monitorizar con la siguiente estructura, por ejemplo:
[equipo.dominio] address 127.0.0.1 use_node_name yes
/etc/munin/apache.conf
Si vamos a utilizar Apache como servidor web debemos configurar este archivo para agregar un alias al servidor web que indique la ruta de los ficheros HTML de las gráficas y desde qué direcciones IP vamos a poder visualizar la página (Consultar la ayuda de Apache al respecto).
Alias /munin /var/cache/munin/www <Directory / var/cache/munin/www> Order allow,deny Allow from localhost 127.0.0.0/8 192.168.0.0/24 ::1 Options none …
En Apache se habrá creado un enlace simbólico a este archivo para que cargue su configuración al iniciar, si no existe ese enlace lo podemos crear a mano:
ln -s /etc/munin/apache.conf /etc/apache2/conf.d/munin
Tras la configuración del alias reiniciamos apache.
/etc/init.d/apache2 restart service apache2 reload
Accedemos a la página web de las gráficas mediante el protocolo http (desde cualquier ordenador) o directamente abriendo los archivos como en un ordenador local:
http://localhost/munin
file:///var/cache/munin/www/index.html
/etc/munin/munin-node.conf
Este fichero debe existir en el equipo del que se desean obtener datos, es decir, el equipo cliente. En él configuraremos el nombre del equipo cliente y la dirección IP del servidor que va a monitorizarlo y crear las gráficas, así como el usuario y grupo con el que se obtienen los datos.
Cada vez que se modifica este fichero hay que reiniciar el demonio munin-node.
user root group root host_name cliente.dominio allow ^192\.168\.0\.1$ cidr_allow 192.168.0.0/24
Se puede especificar tanto una IP concreta como una subred.
clilente.dominio debe coincidir con el nombre que el equipo servidor posee en el fichero /etc/hostname.
/etc/cron.d/munin
El servidor no se ejecuta como un demonio, se trata de un proceso que se ejecuta cada 5 minutos, por defecto, para recopilar los datos y actualizar las gráficas. En este fichero encontraremos la configuración de la tarea programada que hace que el programa munin se ejecute cada cierto tiempo. Podemos configurarlo según nuestras necesidades.
munin-cron
Se trata de un programa que podemos ejecutar nosotros mismos en cualquier momento para forzar la ejecución del servidor. Aunque para ello debemos ejecutarlo con el usuario munin y no como root. Por eso debemos primeramente que cambiar de usuario:
su - munin --shell=/bin/bash
munin-cron
exit
/etc/init.d/munin-node restart
El cliente trabaja como un demonio, por tanto está ejecutándose constantemente en el equipo en segundo plano. Podemos pararlo o reiniciarlo como cualquier otro demonio del sistema.
/var/log/munin/
En este directorio encontraremos todos los ficheros de logs referentes a la ejecución del servidor y cliente munin.
munin-check
Con este programa que podemos ejecutar desde el usuario root podemos comprobar si la configuración y los directorios de salida configurados son correctos, reportándonos cualquier error que pueda existir en ellos.
/usr/share/munin/plugins/
Los plugins son scripts que permiten monitorizar los diferentes aspectos del sistema. En este directorio encontramos aquellos plugins que vienen por defecto al instalar el paquete, pero la gran ventaja es que en su página web podemos encontrar muchísimos más plugins, así como escribir nosotros mismos los nuestros.
Para instalar un plugin nuevo en el sistema solamente debemos descargarnos el fichero, copiarlo en este directorio y otorgarle permisos de ejecución (chmod 755). Una vez instalado el plugin debemos habilitarlo para que comience a funcionar.
/etc/munin/plugins/
Para habilitar un plugin para que comiencen a crearse gráficas con sus datos solamente debemos crear en esta carpeta un enlace simbólico al plugin en cuestión.
ln -s /usr/share/munin/plugins/uptime /etc/munin/plugins/uptime
Algunos plugin necesitan especificar una dato, como un usuario o una determinada partición, para ello su nombre original termina en el carácter “_” para que nosotros escribamos a continuación el parámetro necesario. Cada plugin es diferente, por lo que deberemos leer la ayuda que el fichero tiene en su interior.
Por ejemplo, para calcular la quota que por usuario se está utilizando en una partición deberíamos de añadir el enlace simbólico de la siguiente manera.
ln -s /usr/share/munin/plugins/quota-usage_ /etc/munin/plugins/quota-usage_sda1
/etc/munin/plugin-conf.d/munin-node
Para deshabilitar un plugin, solamente tendremos que eliminar su enlace simbólico de este directorio.
rm /etc/munin/plugins/uptime
Y reiniciamos el demonio en el equipo del nodo de donde obtenemos los datos para que se apliquen los cambios.
/etc/init.d/munin-node restart
/etc/munin/plugins-conf.d/munin-node
Otros plugins necesitan más configuración, nos lo indicará la ayuda que encontremos dentro del archivo del plugin. En esos casos debemos incluir dicha configuración dentro de este archivo:
Por ejemplo, el plugin "dirsizes" descargado del repositorio de plugins, necesita el siguiente código:
[dirsizes]
user root
env.watchdirs /var/www,/tmp
telnet [munin-node-ip] 4949
Haciéndole un telnet al munin-node comprobamos si está preparado para las peticiones de datos desde el servidor.
Enlaces transversales de Book para Munin: Monitorización gráfica
Munin: Monitorización gráfica escrito por Rafa Morales está protegido por una licencia Creative Commons Atribución-NoComercial-SinDerivadas 4.0 Internacional