Blog Técnico de Manuel García
Publicado en Blog Técnico de Manuel García (http://facine.es)

Inicio > Monitorización de servidores con MUNIN en DEBIAN

Monitorización de servidores con MUNIN en DEBIAN

Publicado por Manuel García el Lun, 11/06/2012 - 12:29 in
Debian, Monitorización, Servidores, Munin
Monitorización de servidores con MUNIN en DEBIAN

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/munin

tmpldir /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
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 [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
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

Al cabo de un rato obtendremos algo así:

[10]

Fuente de la sabiduría: Pedro González [11] (@NITEMAN_es) [12].

AdjuntoTamaño
PDF icon Captura completa de munin [10]2.78 MB
Leer más [13]

URL de origen: http://facine.es/monitorizacion-de-servidores-con-munin-en-debian?page=0

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