Admin Libre - Administración de sistemas y redes

Instalación y configuración de Munin en OpenBSD
Por Francisco Gaitán el 2 de Abril de 2022

Munin es una herramienta de monitorización de red que facilita la detección de problemas mediante la elaboración de gráficas de forma periódica, analizando el uso de memoria, espacio libre en disco, uso de las interfaces de red y otros datos interesantes. Es un programa modular y permite el uso de plugins personalizados.

Estas indicaciones son válidas para Munin 2.0.69 en OpenBSD 7.1, por lo que si usas una versión posterior es posible que cambie algo.

Instalación

Esta primera instalación la haré en el servidor que hará tanto de nodo como de generador de los datos presentados en HTML. Instalaré estos tres programas:

  • munin-node corre en segundo plano recogiendo datos sobre la propia máquina
  • munin-server recoge los datos de los distintos nodos y genera las gráficas en HTML
  • rrdcached funciona como servidor de caché para reducir el uso de entrada/salida del disco
# pkg_add munin-node munin-server rrdtool

Una vez instalados los tres programas conviene leer las notas de uso de estos paquetes, las cuales se encuentran en el directorio /usr/local/share/doc/pkg-readmes/

Configuración

Los archivos de configuración de munin se encuentran en el directorio /etc/munin/.

munin-node.conf

Para indicar a munin que datos tiene que generar hay que activar los plugins. Ejecutando como usuario munin-node-configure --shell listará los comandos a ejecutar como root para enlazar los plugins por defecto.

munin.conf

Este archivo no es necesario cambiarlo, aunque yo he especificado el nombre de la máquina editando esta parte del archivo:

# a simple host tree
[mail.example.com]
     address 127.0.0.1
     use_node_name yes

También hay que especificar el archivo sock de rrdcached:

# RRD updates are per default, performed directly on the rrd files.
# To reduce IO and enable the use of the rrdcached, uncomment it and set it to
# the location of the socket that rrdcached uses.
#
rrdcached_socket /var/run/rrd/rrdcached.sock

crontab

Añado esta linea de crontab (# crontab -e) al usuario root para que genere las gráficas cada 5 minutos:

*/5     *       *       *       *       su  -s /bin/sh _munin /usr/local/bin/munin-cron

newsyslog

Es conveniente añadir esto al archivo /etc/newsyslog.conf para rotar los logs de munin:

/var/log/munin/munin-graph.log  _munin:_munin   644  7     250  *     Z
/var/log/munin/munin-html.log   _munin:_munin   644  7     250  *     Z
/var/log/munin/munin-limits.log _munin:_munin   644  7     250  *     Z
/var/log/munin/munin-update.log _munin:_munin   644  7     250  *     Z

rrdtool

Como en OpenBSD el servidor web funciona con chroot en /var/www hay que copiar rrdtool y algunas librerías a este directorio. Esto se puede realizar automáticamente tal y como indica el pkg-readme con este comando:

# /usr/local/share/examples/rrdtool/rrdtool-chroot enable

Esto se debe de hacer cada vez que el paquete rrdtool sea actualizado en el sistema.

Arrancando los programas

# rcctl enable munin_node rrdcached
# rcctl start munin_node rrdcached

Como añadir un nuevo nodo

Si quieres monitorizar otro servidor basta con instalarle munin-node y editar estos campos de la configuración, suponiendo que el servidor principal que genera las gráficas tiene la IP 203.0.113.1:

allow ^203\.0\.113\.1$
[...]
# Which address to bind to
host *

De nuevo se hacen los enlaces que indica la salida del comando munin-node-configure --shell y se activa y arranca munin_node:

# rcctl enable munin_node
# rcctl start munin_node

Y en el archivo munin.conf del servidor se añade el nuevo nodo:

# a simple host tree
[mx-backup.example.com]
     address 203.0.113.1
     use_node_name yes

Recuerda que el servidor que genera las gráficas debe poder acceder al nodo munin a través de TCP puerto 4949. También debes añadir los logs de munin a newsyslog como anteriormente.

Configuración de httpd para que muestre los datos

Si todo ha ido bien, munin generará archivos HTML periódicamente en el directorio /var/www/htdocs/munin/. Ahora toca configurar httpd(8) para que cargando https://munin.example.com en el navegador aparezca la página de munin protegida por usuario y contraseña.

Lo primero es crear una entrada de tipo A (y AAAA para IPv6) en el DNS para el nombre de host munin.example.com apunte al servidor.

Una vez hecho esto voy a crear el archivo htpasswd. Primero genero la contraseña ejecutando htpasswd usuario; tras introducir la contraseña nos indicará la línea de texto que va al archivo htpasswd, que en este ejemplo será /var/www/htpasswd/munin.example.com.htpasswd, que sería algo así:

foo:$2b$10$oJSLq4vh6Z4.EFGLIa142eSnH8vbIEvHFPxe9Kyoe8KlfWMLLrTLe

/etc/httpd.conf

Esta es la parte correspondiente de la configuración del servidor web, que no reproduzco al completo al ser un tema aparte. Puedes ver un ejemplo en el archivo /etc/examples/httpd.conf.

authenticate with "/htpasswd/munin.example.com.htpasswd"
location * {
	root "/htdocs/munin"
}

Destacado

Contacto

Si has encontrado algún error o quieres comentarme algo mándame un correo a webmaster@adminlibre.org