Cristina Alcantarilla
INFORMÁTICA & DISEÑADORA
Munin es una herramienta de monitoreo de red

Munin es una herramienta de monitoreo de red, de recursos que pueden ayudar a analizar las tendencias de los recursos y “lo que acaba de pasar para matar nuestro rendimiento?” problemas. Está diseñado para ser muy plug and play. Una instalación predeterminada proporciona una gran cantidad de gráficos con casi ningún trabajo.

Puedes ver más informaciçon en http://munin-monitoring.org/

Usando Munin  puedes controlar de una manera sencilla el rendimiento de tus ordenadores, redes, redes SAN, aplicaciones, mediciones meteorológicas, etc…. Esto hace que sea fácil de determinar “lo que está pasando”, cuando surge un problema de rendimiento. 

Munin utiliza  RRDtool (escrito por Tobi Oetiker) y está escrito en Perl, mientras que los plugins pueden ser escritos en cualquier idioma. Munin tiene una arquitectura maestro / nodo en el que el maestro se conecta a todos los nodos a intervalos regulares y les pide datos. A continuación, almacena los datos en ficheros RRD, y (si es necesario) actualiza los gráficos. Uno de los objetivos principales ha sido la facilidad de crear nuevos plugins (gráficos)

Cómo instalar y configurar Munin:

 

Empezamos con la instalación, munin y sus plugins:

$ aptitude -V install munin munin-node munin-plugins-extra

Si nuestra máquina fuera virtual:

$ aptitude -V install munin munin-node munin-libvirt-plugins

También sus dependencias:

$ aptitude install liblwp-useragent-determined-perl libvirt-bin libcache-cache-perl

A continuación deberemos de editar el fichero de configuración de munin para especificar el directorio de salida (asegurándonos de que el usuario munin tenga permisos de escritura sobre el) y el nombre del servidor a usar:

$ nano /etc/munin/munin.conf

dbdir /var/lib/munin
htmldir /var/www/stats.facine.es/web/
logdir /var/log/munin
rundir /var/run/munintmpldir /etc/munin/templates

includedir /etc/munin/munin-conf.d

[facine.es]
address 127.0.0.1
use_node_name yes

Si nuestra máquina fuera virtual, instalamos plugins virtualizados:

$ munin-libvirt-plugins-detect

Pedimos sugerencias de plugins (los prueba todos y es normal de que nos informe de que algunos pueden producir errores):

$ munin-node-configure –suggest

Aceptamos las sugerencias y las autoconfiguramos:

$ munin-node-configure –shell

Por defecto los plugins de munin se instalan en /usr/share/munin/plugins/ y para activarlos sólo tenemos que crear un enlace simbólico al plugin deseado en /etc/munin/plugins/, lugar donde iremos para revisar qué plugins se han auto instalado y configurado:

$ cd /etc/munin/plugins

Plugin para munin:

$ ln -s /usr/share/munin/plugins/munin_stats

Plugins para Apache:

$ ln -s /usr/share/munin/plugins/apache_accesses
$ ln -s /usr/share/munin/plugins/apache_processes
$ ln -s /usr/share/munin/plugins/apache_volume

Plugins para MySQL:

$ ln -s /usr/share/munin/plugins/mysql_bytes
$ ln -s /usr/share/munin/plugins/mysql_queries
$ ln -s /usr/share/munin/plugins/mysql_slowqueries
$ ln -s /usr/share/munin/plugins/mysql_threads
$ ln -s /usr/share/munin/plugins/mysql_ mysql_bin_relay_log
$ ln -s /usr/share/munin/plugins/mysql_ mysql_commands
$ ln -s /usr/share/munin/plugins/mysql_ mysql_connections
$ ln -s /usr/share/munin/plugins/mysql_ mysql_files_tables
$ ln -s /usr/share/munin/plugins/mysql_ mysql_innodb_bpool
$ ln -s /usr/share/munin/plugins/mysql_ mysql_innodb_bpool_act
$ ln -s /usr/share/munin/plugins/mysql_ mysql_innodb_insert_buf
$ ln -s /usr/share/munin/plugins/mysql_ mysql_innodb_io
$ ln -s /usr/share/munin/plugins/mysql_ mysql_innodb_io_pend
$ ln -s /usr/share/munin/plugins/mysql_ mysql_innodb_log
$ ln -s /usr/share/munin/plugins/mysql_ mysql_innodb_rows
$ ln -s /usr/share/munin/plugins/mysql_ mysql_innodb_semaphores
$ ln -s /usr/share/munin/plugins/mysql_ mysql_innodb_tnx
$ ln -s /usr/share/munin/plugins/mysql_ mysql_myisam_indexes
$ ln -s /usr/share/munin/plugins/mysql_ mysql_network_traffic
$ ln -s /usr/share/munin/plugins/mysql_ mysql_qcache

Plugins para Memcached (Si lo tenemos instalado):

$ ln -s /usr/share/munin/plugins/memcached_ memcached_rates
$ ln -s /usr/share/munin/plugins/memcached_ memcached_bytes
$ ln -s /usr/share/munin/plugins/memcached_ memcached_counters

Plugins para Varnish (Si lo tenemos instalado):

$ ln -s /usr/share/munin/plugins/varnish_ varnish_backend_traffic
$ ln -s /usr/share/munin/plugins/varnish_ varnish_expunge
$ ln -s /usr/share/munin/plugins/varnish_ varnish_hit_rate
$ ln -s /usr/share/munin/plugins/varnish_ varnish_memory_usage
$ ln -s /usr/share/munin/plugins/varnish_ varnish_objects
$ ln -s /usr/share/munin/plugins/varnish_ varnish_request_rate
$ ln -s /usr/share/munin/plugins/varnish_ varnish_threads
$ ln -s /usr/share/munin/plugins/varnish_ varnish_transfer_rates
$ ln -s /usr/share/munin/plugins/varnish_ varnish_uptime

Si tenemos instalado Fail2Ban sería buena idea monitorizarlo, para ello lo configuramos:

$ echo “[fail2ban*]
user root
” > /etc/munin/plugin-conf.d/fail2ban

Y lo activamos:

$ ln -s /usr/share/munin/plugins/fail2ban /etc/munin/plugins/

Si tenemos APC y queremos monitorizarlo tendremos que realizar un paso extra, la creación de un nuevo sitio, y activación, para colocar un fichero php necesario por el plugin y el cual incluye. Sitio que no será accesible.

$ nano /etc/apache2/sites-available/monitorizacion

ExtendedStatus On
<VirtualHost 127.0.0.1:80>
ServerName monitorizacion
ServerAlias 127.0.0.1
<Directory />
Order Deny,Allow
Deny from All
</Directory>
DocumentRoot /var/www/monitorizacion/web/
<Location />
Options +FollowSymLinks
Allow from all
</Location>
<Location /server-status>
SetHandler server-status
</Location>
<Location /server-info>
SetHandler server-info
</Location>
LogLevel error
ServerSignature Off
</VirtualHost>

$ mkdir -p /var/www/monitorizacion/web/
$ ln -s /etc/apache2/sites-available/monitorizacion /etc/apache2/sites-enabled/zzz-monitorizacion

Importante que este nuevo sitio lo activemos con el prefijo “zzz-” para asegurarnos de que se ejecuta en último lugar.

Descargamos el plugin de http://code.google.com/p/munin-php-apc/downloads/list, colocamos el fichero php en el sitio creado en el paso anterior y lo configuramos y activamos:

$ cd /tmp
$ wget http://munin-php-apc.googlecode.com/files/munin_plugin_php_apc-0.1.zip
$ unzip munin_plugin_php_apc-0.1.zip
$ cp -p php_apc/apc_info.php /var/www/monitorizacion/web/
$ mkdir -p /usr/local/share/munin/plugins/
$ cp -p php_apc/php_apc_ /usr/local/share/munin/plugins/
$ rm -R munin_plugin_php_apc-0.1.zip php_apc
$ echo “[php_apc_*]
user root
env.url http://localhost/apc_info.php?auto
” >> /etc/munin/plugin-conf.d/munin-node
$ ln -s /usr/local/share/munin/plugins/php_apc_ /etc/munin/plugins/php_apc_usage
$ ln -s /usr/local/share/munin/plugins/php_apc_ /etc/munin/plugins/php_apc_hit_miss
$ ln -s /usr/local/share/munin/plugins/php_apc_ /etc/munin/plugins/php_apc_purge
$ ln -s /usr/local/share/munin/plugins/php_apc_ /etc/munin/plugins/php_apc_fragmentation
$ ln -s /usr/local/share/munin/plugins/php_apc_ /etc/munin/plugins/php_apc_files
$ ln -s /usr/local/share/munin/plugins/php_apc_ /etc/munin/plugins/php_apc_rates

Antes de reiniciar apache y munin, debemos de revisar que los plugins tienen permisos de ejecución:

$ chmod -R 755 /usr/share/munin/plugins
$ service apache2 restart
$ service munin-node restart

Por último nos faltaría proteger el directorio con contraseña para que nadie pueda acceder a nuestras estadísticas, si no existiera el fichero: /var/www/stats.facine.es/web/.htaccess, con munin-cron forzamos que se genere el árbol de ficheros y ya podremos editarlo:

$ su – munin –shell=/bin/bash
$ munin-cron
$ exit
$ nano /var/www/stats.facine.es/web/.htaccess

AuthType Basic
AuthName “Acceso Privado”
AuthUserFile /var/www/stats.facine.es/.htpasswd
AuthGroupFile /dev/null
<limit GET PUT POST>
require valid-user
</limit>

$ htpasswd -c /var/www/stats.facine.es/.htpasswd admin
New password:
Re-type new password:
Adding password for user admin

 

Y tendremos nuestro Munin corriendo 🙂

munin

Tutoriales:

http://waste.mandragor.org/munin_tutorial/munin.html

Share Button

Deja un comentario