monitorizando redes con munin(en linux) Para Debian

  1. ¿Qué es munin?

    Munin es un programa que permite monitorizar uno o varios equipos. Además, presenta la información a través de un servidor web, está hecho en perl y permite el uso de plugins, lo cual lo hace realmente versátil. También muestra una gran cantidad de información mediante unas gráficas creadas con la librería (biblioteca — library) gráfica RRDtool, mucho más chulas y bonitas :).

  2. Instalando munin

    Munin está incluido en el repositorio oficial de debian por lo que sólo hay que actualizar el equipo e instalarlo.


    # aptitude update
    # aptitude install munin # si vamos a emplear el equipo como servidor
    # aptitude install munin-node # si vamos a leer datos de él

    Munin puede usarse para monitorizar uno o varios equipos, por lo que munin-node debe instalarse en los equipos cliente y munin en el equipo que actuará a modo de servidor y que provee de servicio web.

    Una manera rápida de instalar y configurar el programa para un sólo equipo se detalla en el apartado de Enlaces.

  3. Ficheros de configuración

    Munin cuenta con varios ficheros y directorios que hay que conocer.

    • /etc/munin/munin.conf. Es el fichero de configuración general y, más concretamente, donde se configura el lado servidor de munin. En este fichero se especifican los directorios a emplear y la configuración de las diferentes máquinas. Debe estar configurado en el servidor.
    • /etc/munin/munin-node.conf. El fichero de configuración del nodo. Munin ve a cada equipo que monitoriza como el nodo de una red y mediante este fichero se especifica la configuración. Debe existir en cada equipo.
    • /etc/munin/plugins/. Es el directorio donde munin lee los plugins a emplear. Éstos son simples enlaces al directorio real de los plugins (/var/lib/munin/plugins/) y se pueden añadir y quitar de la manera más simple, creando o borrando un enlace.
    • /var/www/munin/. Directorio donde se vuelca por defecto el código HTML generado con los informes. Se puede cambiar en munin.conf. Debe pertenecer al usuario y grupos munin.
    • /var/lib/munin/. Directorio donde se guardan todos los datos de los diferentes nodos y con los que se generan las gráficas.
    • /var/log/munin/. Directorio de registros del sistema o logs. En las configuraciones de red es interesante el fichero munin-nodes.log, que detalla la información enviada y transmitida desde el nodo.
    • /etc/cron.d/munin. Fichero del cron que se ejecuta cada cinco minutos y que actualiza los datos del equipo en la base de datos de munin.
    • /etc/cron.d/munin-node. Fichero del cron que se ejecuta cada cinco minutos y que actualiza los datos de los nodos que estén dados de alta.
    • /etc/init.d/munin-node. Script para reiniciar la solicitud de información a los nodos.
  4. Configurando el servidor

    Editamos el fichero /etc/munin/munin.conf y lo dejamos de la siguiente manera:

    # Example configuration file for Munin, generated by 'make build'
    dbdir /var/lib/munin
    htmldir /var/www/munin
    logdir /var/log/munin
    rundir /var/run/munin
    tmpldir /etc/munin/templates
    #graph_period minute
    #
    [indo.n1mh.org]
    address la.ip.de.indo
    local_address la.ip.de.indo
    use_node_name yes
    #
    [coyote.n1mh.org]
    address 127.0.0.1
    local_address 127.0.0.1
    use_node_name yes

    Aquí se especifican los directorios y ficheros a emplear para guardar los datos (dbdir), los informes generados (htmldir), los logs (logdir), las plantillas html (tmpldir), los semáforos (rundir), etc… También se especifican los equipos que son nodos, es decir, a los que debe conectarse y obtener la información de los plugins.

    Al igual que antes, si no especifico la dirección local (local_address) que tiene el equipo, munin no genera las gráficas, con lo que se incluye la dirección IP por partida doble.

  5. Configurando un nodo

    Editamos el fichero /etc/munin/munin-node.conf y lo dejamos de la siguiente manera:

    #
    # Example config-file for munin-node
    #
    log_level 4
    log_file /var/log/munin/munin-node.log
    port 4949
    pid_file /var/run/munin/munin-node.pid
    background 1
    setseid 1
    host *
    user root
    group root
    setsid yes
    ignore_file ~$
    ignore_file \.bak$
    ignore_file %$
    ignore_file \.dpkg-(tmp|new|old|dist)$
    ignore_file \.rpm(save|new)$
    host_name coyote.n1mh.org
    allow ^xxx\.xxx\.xxx\.xxx$

    Las líneas más importantes de este fichero son las que comienzan con host_name y allow. La primera especifica el nombre con que el servidor identifica a esta máquina y no deberíamos tocarla a no ser que no se reconozcan, pero lo cierto es que nunca me ha funcionado ningún nodo hasta que no he habilitado esta opción.

    La segunda línea especifica desde que dirección IP dejaremos que se conecten, es decir, pondremos la dirección IP del servidor munin. Sin esta configuración no obtendremos más que errores de conexión. Por cierto, hay que escribir la IP como una expresión regular, tal y como se muestra (^ indica el inicio y $ el final de la expresión).

  6. Arrancando munin

    Munin se ejecuta cada cinco minutos como un trabajo del cron. Los scripts están en /etc/cron.d/ y se pueden modificar para que ejecute lecturas cada minuto y así realizar pruebas.

  7. Accediendo a la información

    Simplemente introducimos en el navegador la dirección de htmldir, en este caso file:///var/www/munin/ ó http://localhost/munin si contamos con un servidor web.

1 comentario:

Andres Diaz dijo...

Hola, interesante articulo, lo instalé tal cual lo dices en tu articulo, pero me surge una duda...

Las gráficas me muestran dos opciones, por día y por semana, la pregunta es, como hago para que me las muestre por hora?

Y otra cuestión, cómo hago para que en uso de filesystems me muestre solo el uso de 2 de las 8 particiones que tengo en mi servidor Solaris?

Fenomeno, gracias...