28/6/2012 - Actualización tras el comentario de jonhattan [1] vemos que el paquete munin-libvirt-plugins sólo es necesario si nuestra máquina es virtualizada.
Munin es una aplicación, escrita en perl, de monitorización red/sistema que nos muestra gráficos a través de una interfaz web, con cerca de 500 plugins disponibles. Podremos supervisar el rendimiento de servidores, redes SAN y aplicaciones.
En este artículo voy a tratar de relatar cómo instalar y configurar Munin. Y digo tratar pues es mi primera toma de contacto con esta herramienta.
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 [2] (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 [3] (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 [4] 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 [5] 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 [6] y el cual incluye. Sitio que no será accesible.
$ nano /etc/apache2/sites-available/monitorizacion
$ 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 [7], 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 [8]
$ 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 [9]
" >> /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
$ htpasswd -c /var/www/stats.facine.es/.htpasswd admin
New password:
Re-type new password:
Adding password for user admin
Al cabo de un rato obtendremos algo así:
Fuente de la sabiduría: Pedro González [11] (@NITEMAN_es) [12].
Adjunto | Tamaño |
---|---|
![]() | 2.78 MB |
Enlaces
[1] http://jonhattan.faita.net/
[2] http://memcached.org
[3] http://varnish-cache.org
[4] http://www.fail2ban.org
[5] http://es2.php.net/apc
[6] http://code.google.com/p/munin-php-apc
[7] http://code.google.com/p/munin-php-apc/downloads/list
[8] http://munin-php-apc.googlecode.com/files/munin_plugin_php_apc-0.1.zip
[9] http://localhost/apc_info.php?auto
[10] http://facine.es/sites/default/files/articles/files/captura_munin.pdf
[11] http://niteman.es
[12] https://twitter.com/#!/NITEMAN_es
[13] http://facine.es/monitorizacion-de-servidores-con-munin-en-debian