Sistema de monitoreo Munin

Revisión del 09:29 16 jun 2016 de Humberto0601ad jc (discusión | contribuciones) (Fuentes)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Munin
Información sobre la plantilla
Monitoreomunin.png
Sistemas Operativos compatiblesLinux, Windows
IdiomaInglés
LicenciaGPL
Sitio web
http://munin-monitoring.org

Munin. Es una herramienta multiplataforma basada en web, utilizada en el monitoreo de los recursos en red. Está diseñada para ser plug and play. Su arquitectura es bastante sencilla: un servidor que centraliza los datos enviados por los agentes instalados en cada cliente. Permite monitorizar muchos parámetros y visualizarlos en cómodas gráficas. Toda la información generada puede verse a través de la web desde cualquier parte. Está implementado en Perl y liberado bajo licencia GPL versión 2 de la Free Software Foundation.

Sistema de monitoreo Munin

Munin es un sistema de monitoreo de redes sencillo, configurable, extensible, capaz de autodescubrimiento. Puede controlar fácilmente el rendimiento de sus computadoras, redes, aplicaciones, etc. Su mejor escenario se encuentra en el mantenimiento de servidores o en la gestión de varios puestos de trabajo. Puede usarse para comprobar el estado de salud y carga de las máquinas, anticipar problemas de rendimiento o capacidad, y en caso de problemas ofrece a posteriori valiosa información sobre los momentos anteriores al problema.

Munin usa la librería RRDtool para generar las gráficas de rendimiento de los parámetros del sistema analizado y sysstats para obtener datos. El marco está escrito en Perl, mientras que los plugins se pueden programar a la medida en cualquier otro lenguaje de scripting o compilador. El servidor corre sobre Linux, el agente corre sobre Linux y Windows pero con algunas limitaciones cuando es utilizado sobre el sistema operativo Windows.

Utiliza una arquitectura maestro/nodo, en el cual el maestro es el encargado de almacenar la información que lee periódicamente de los nodos. La instalación y configuración son relativamente fáciles si esta utilizando debian.

Características

  • Cuenta con una interfaz [web] que muestra la evolución histórica del uso de recursos.
  • Monitorea el uso de recurso de cada máquina, recursos como disco, red, uso de CPU, RAM, Carga (load).
  • Es capaz de monitorear indicadores de algunas aplicaciones como tamaño de cola de postfix, procesos de apache, consultas de mysql entre otras.
  • Genera gráficas por día, semana, mes y año de cada uno de los indicadores.
  • Muestra el mínimo, máximo, media y valor actual de los indicadores en cada período de tiempo.
  • Es posible configurar umbrales de alerta para estado de advertencia y crítico.

Estructura del Sistema

Munin se divide en tres componentes principales:

Servidor: Un demonio que corre en todas las máquinas monitoreadas, por default en el puerto 4949. Su función es configurar y llamar a los plugins. Cuando se habla de munin-node, se refiere al servidor.

Plugins: Cada uno de los agentes de recolección de datos que son invocados por munin-node. Dan la información que monitorean, y son también capaces de describir su función y configuración.

Cliente: Proceso que corre periódicamente (normalmente cada 5 minutos) desde un nodo central, interrogando a cada uno de los servidores munin-node, y generando las páginas Web.

Ventajas

  • Permite determinar con anticipación cuando un recurso estará sobre utilizado o será insuficiente.
  • Permite monitorear errores o generar mejoras. Por ejemplo, detectar errores de red que pueden ser causados por la alta carga del servidor.
  • Permite medir cuantitativamente el crecimiento del uso de los recursos, de esta manera es posible sustentar la compra de hardware o medir el crecimiento.

Instalación de Munin

Munin es una potente herramienta de monitorización de máquinas que genera estadísticas sobre su funcionamiento y al mismo tiempo muy sencilla y fácil de configurar en cualquier plataforma. Para instalar Munin en un nodo con una distribución basada en Debian basta con instalarlo desde sus repositorios y de la misma forma se puede instalar la máquina que servirá de servidor de Munin. En este caso se instala en un sistema Debian Squeeze.

 # apt-get install munin munin-common munin-plugins-extra

Una vez instalados los paquetes ya se tendrá a Munin casi funcionando. Munin puede actuar de dos formas: como servidor, el cual mostrará los datos recopilados de uno o más nodos, y como nodo, el cual se encarga de enviar datos al servidor. En este caso el propio Munin actuará como servidor y nodo al mismo tiempo.

Antes de configurarlo vamos a dar un repaso a los ficheros y directorios más importantes:

  • ???/etc/munin/munin.conf: es el fichero de configuración del servidor Munin.
  • */etc/munin/munin-node.conf: fichero de configuración del nodo Munin.
  • */etc/munin/plugin-conf.d/munin-node: hay ciertos plugins que necesitan parámetros para funcionar, los plugins se configuran en este fichero.
  • */etc/munin/plugins/: directorio con los plugins activos en Munin. No son más que enlaces simbólicos hacia donde realmente se encuentran los plugins.
  • */usr/share/munin/plugins: es el directorio donde se encuentran fisicamente todos los plugins de Munin. La lista de plugins es extensa.
  • */etc/init.d/munin-node: script utilizado para recargar la configuración del nodo Munin.

Configuración

La configuración de Munin es bastante rápida y sencilla. Primero se configura el servidor y para esto se edita el fichero /etc/munin/munin.conf.

dbdir   /var/lib/munin
htmldir /var/cache/munin/www
logdir /var/log/munin
rundir  /var/run/munin

includedir /etc/munin/munin-conf.d

[host.mydomain.com]
address 192.168.1.116
use_node_name yes

Con esta sencilla configuración, le hemos especificado a Munin sus directorios de trabajo para la base de datos, los resultados en html, el directorio de logs y donde se guardará el pid de Munin. También le especificamos la dirección IP del nodo, que en este caso será él mismo. Para configurar nuestro nodo, es decir, la parte de Munin que recoge los datos, editaremos el fichero /etc/munin/munin-node.conf.

log_level 4
log_file /var/log/munin/munin-node.log
pid_file /var/run/munin/munin-node.pid

background 1
setsid 1

user root
group root

ignore_file ~$
ignore_file DEADJOE$
ignore_file \.bak$
ignore_file %$
ignore_file \.dpkg-(tmp|new|old|dist)$
ignore_file \.rpm(save|new)$
ignore_file \.pod$

host_name host.mydomain.com

allow ^127\.0\.0\.1$
allow ^192\.168\.1\.116$

host *
host 192.168.1.116

port 4949

La línea host_name ayuda al servidor a identificar a este nodo, mientras que las directivas allow indican desde qué direcciones IP es posible conectarse, en este caso desde localhost y desde la IP de la propio máquina. Por último, se indica el puerto de escucha con la directiva port, en este caso el 4949.

Ya se tiene configurado el Munin. Ahora queda que funcione. Para comprobar que todo esté correcto se ejecuta el comando munin-check que comprobará si los permisos y propietarios de los ficheros son correctos o no. Si hubiera algo mal, te sugiere cómo debería ser. En este caso se corrigieron algunos permisos:

# chmod -R 755 /etc/munin/plugin-conf.d
# chown -R nobody:munin /var/lib/munin/plugin-state

Ya debería estar todo correcto, asi que se puede arrancar el nodo Munin:

# /etc/init.d/munin-node start

Todo esta listo, pero ¿Cómo recoge datos el nodo Munin? ¿Cada cuánto tiempo? ¿Dónde se configura eso?

Munin ofrece otro script llamado munin-cron el cual va actualizando los resultados en html que va generando. Se puede configurar una tarea cron en el usuario munin, así que se hace login como dicho usuario y se configura la tarea cron con crontab -e:

# su - munin --shell=/bin/bash
# crontab -e

Se actualiza las estadísticas cada 5 minutos, asi que la tarea cron debe quedar de la siguiente forma:

# crontab -l
# m h  dom mon dow   command
*/5 * * * * munin-cron

Ahora bien, ¿Dónde veo las gráficas? Para ello se necesita un servidor web. Nginx es muy rápido y liviano, asi que en este caso se procede a instalarlo desde el repositorio:

# apt-get install nginx

La versión de Nginx de los repositorios es bastante antigua, pero solamente se utilizará para mostrar contenido estático, asi que esta versión nos sirve. Lo único que queda es configurar un location para mostrar los resultados generados por Munin en el directorio /var/cache/munin/www. Como no es una configuración muy extensa, se hace en el virtualhost por defecto que viene con Nginx en el fichero /etc/nginx/sites-enabled/default añadiendo lo siguiente dentro del bloque server:

[...]
server_name  host.mydomain.com;
[...]
location /munin {
    alias /var/cache/munin/www;
    index index.html index.htm;
    autoindex on;
    allow all;
}

Recargamos la configuración del servidor Nginx:

# /etc/init.d/nginx reload

Hecho esto, se tendrá accesible el Munin en Dominio Munin

Fuentes