Un servidor de monitoreo con Munin
Tenía ganas de hablar de Munin, una herramienta de monitoreo de sistemas, la red y la infraestructura. Este producto se encarga de registrar diferentes actividades de los componentes del servidor y clientes, y refleja esta información en gráficas. Es similar a la herramienta Cacti, de la que ya hablamos en su día.
Con Munin se pueden monitorear fácilmente el rendimiento de computadoras, redes, SAN, aplicaciones, mediciones meteorológicas y lo que se nos ocurra. Permite tener un historial de actividad de todos estos componentes, durante el tiempo.
Munin está escrito en Perl y usa RRDtool para crear gráficos, que son accesibles vía web. Una de sus ventajas es el gran número de complementos de monitoreo disponibles, hasta 500. Estos son utilizados por los nodos de Munin para recopilar información del estado actual de diferentes objetos.
En multitud de páginas web existen guías sobre su instalación en diferentes distribuciones de GNU/Linux. Yo voy a explicar su instalación sobre un servidor VPS, en mi proveedor de confianza Clouding.io, sobre una distribución Debian 10
Instalar y configurar Munin en Debian 10
Antes de nada, debemos instalar el servidor web, en este caso Apache, de la siguiente manera:
sudo apt install apache2 apache2-utils
Añadimos los módulos necesarios para su funcionamiento:
sudo apt install libcgi-fast-perl libapache2-mod-fcgid sudo a2enmod fcgid
Los paquetes necesarios para la instalación ya se encuentran disponibles en los repositorios de la distribución, por lo que esto nos facilita mucho las cosas.
sudo apt update sudo apt install munin munin-node munin-plugins-extra
Configuración de Munin
Con Munin podemos monitorizar el propio servidor donde esta instalado, aunque su función principal es controlar otros dispositivos remotos. Debemos tener en cuenta que el fichero principal de configuración en Debian está ubicado en /etc/munin/munin.conf
y lo usaremos más adelante para añadir los nodos que queremos controlar.
Como no queremos que cualquiera pueda acceder al panel web del producto, vamos a indicarle un usuario y contraseña, utilizando el comando htpasswd
, ya que el producto funciona sobre un servidor web con Apache, como sigue:
htpasswd -c /etc/munin/munin-htpasswd admin
De esta manera definimos el usuario y la contraseña para acceder vía web.
El siguiente paso es copiar el fichero de configuración web a la carpeta correspondiente de Apache y añadir el nuevo virtual host:
sudo copy -p /etc/munin/apache24.conf /etc/apache2/sites-available/munin.conf sudo a2ensite munin sudo systemctl reload apache2
Una vez hecho debemos hacer un paso adicional, que es habilitar el acceso remoto a la interfaz. Para ello modificamos el fichero /etc/apache2/sites-available/munin.conf
, quedando de la siguiente forma:
# ***** COMMON SETTINGS FOR ALL STRATEGIES ***** ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph Alias /munin/static/ /var/cache/munin/www/static/ <Directory /var/cache/munin/www> #Require local #Require all granted AuthUserFile /etc/munin/munin-htpasswd Authtype Basic AuthName "Munin" Require valid-user Options FollowSymLinks SymLinksIfOwnerMatch Options None </Directory> <Directory /usr/lib/munin/cgi> #Require local #Require all granted AuthUserFile /etc/munin/munin-htpasswd Authtype Basic AuthName "Munin" Require valid-user Options FollowSymLinks SymLinksIfOwnerMatch <IfModule mod_fcgid.c> SetHandler fcgid-script </IfModule> <IfModule !mod_fcgid.c> SetHandler cgi-script </IfModule> </Directory>
Una vez hecho simplemente hemos de recargar el servicio de Apache:
sudo systemctl restart apache2.service
Para reiniciar el servicio de Munin:
sudo systemctl restart munin-node.service
Ya podemos acceder vía web:
Habilitar módulos adicionales en Munin
Con el comando munin-node-configure --suggest
podemos habilitar los módulos adicionales recomendados:
munin-node-configure --suggest
Con un resultado similar a este:
La columna «Used» muestra si un módulo está habilitado, la columna «Suggestions» muestra si el servidor ejecuta un servicio que puede ser monitoreado por este módulo. Debemos crear un enlace simbólico, si lo queremos habilitar, para el módulo en /etc/munin/plugins
.
Por ejemplo si queremos habilitar los modulos de Apache:
cd /etc/munin/plugins ln -s /usr/share/munin/plugins/apache_accesses ln -s /usr/share/munin/plugins/apache_processes ln -s /usr/share/munin/plugins/apache_volume
Y reiniciamos el servicio:
sudo systemctl restart munin-node.service
Con el resultado:
La gracia de estos productos es controlar otros clientes, ya sean servidores o dispositivos de red, como switches, firewalls o routers. En la siguiente entrada veremos como se hace:
Cómo añadir un cliente remoto a Munin
Para más información podéis consultar la web oficial del proyecto: