Monitorización en OpenBSD (I)
# pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/3.8/packages/i386/symon-2.71.tgz
symon-2.71: complete
...
--- symon-2.71 -------------------
An example configuration for symon has been installed in
/usr/local/share/examples/symon.
RRD files can be obtained by running
/usr/local/share/symon/c_smrrds.sh
#
- Configuramos symon: Para ello nos servimos del ejemplo y editamos el mismo especificando las características propias del entorno:
# cp /usr/local/share/examples/symon/symux.conf /etc/ # cp /usr/local/share/examples/symon/symon.conf /etc/
# nano /etc/symux.conf ... mux 127.0.0.1 2100 source 127.0.0.1 { accept { cpu(0), mem, if(lo0), pf, # mbuf, # sensor(0), proc(httpd), if(rl0), if(ne3), if(wi0), # io(wd1), io(wd2), io(wd3), io(cd0) io(wd0) } datadir "/usr/local/share/symon/rrds/localhost" }
Hemos configurado tanto symux como symon, que serán los dos daemons encargados de recoger datos de todo lo indicado en la configuración, en este caso nos centramos en cpu(0), mem, pf, proc(httpd), tarjetas de red y disco duro io(wd0). También debemos configurar la variable datadir apuntando hacia el directorio donde estos dos procesos guardarán los datos en ficheros RRD (ojo con esto, porque más adelante cambiaremos el valor de datadir).# nano /etc/symon.conf ... monitor { cpu(0), mem, if(lo0), pf, # mbuf, # sensor(0), proc(httpd), if(rl0), if(ne3), if(wi0), # io(wd1), io(wd2), io(wd3), io(cd0) io(wd0) } stream to 127.0.0.1 2100
- Creamos los ficheros RRD: Una vez configurados los daemons nos situamos en el directorio donde guardarán los datos (variable datadir) y creamos los RRD que hemos indicado en el archivo de configuración, para ellos symon viene con un script llamado c_smrrds.sh, lo copiamos en datadir y creamos los archivos de datos:
Ya hemos creado los archivos necesarios para que symon (y symux) guarden la información, teóricamente estamos preparados para arrancar los daemons y empezar la diversión.
# cp /usr/local/share/symon/c_smrrds.sh /usr/local/share/symon/rrds/localhost # cd /usr/local/share/symon/rrds/localhost # ./c_smrrds.sh cpu0 # ./c_smrrds.sh mem # ./c_smrrds.sh pf # ./c_smrrds.sh proc_httpd # ./c_smrrds.sh lo0 # ./c_smrrds.sh rl0 # ./c_smrrds.sh ne3 # ./c_smrrds.sh wi0 # ./c_smrrds.sh wd0 # ls -l *rrd -rw-r--r-- 1 root wheel 4379260 Jan 5 12:10 cpu0.rrd -rw-r--r-- 1 root wheel 8757060 Jan 5 12:10 if_lo0.rrd -rw-r--r-- 1 root wheel 8757060 Jan 5 12:10 if_ne3.rrd -rw-r--r-- 1 root wheel 8757060 Jan 5 12:10 if_rl0.rrd -rw-r--r-- 1 root wheel 8757060 Jan 5 12:10 if_wi0.rrd -rw-r--r-- 1 root wheel 4379260 Jan 5 12:10 io_wd0.rrd -rw-r--r-- 1 root wheel 4379260 Jan 5 12:10 mem.rrd -rw-r--r-- 1 root wheel 19263780 Jan 5 12:10 pf.rrd -rw-r--r-- 1 root wheel 7005940 Jan 5 12:10 proc_httpd.rrd
- Arrancando los daemons: Tenemos varias opciones, a las bravas o de una forma un tanto más ética, usando /etc/rc.local, que para eso está. Añadimos lo siguiente:
Al reiniciar se inciarán los procesos, como todos los de /etc/rc.local, si queremos arrancarlos manualmente
# Symux if [ -x /usr/local/libexec/symux ]; then echo -n ' symux'; /usr/local/libexec/symux fi # Symon if [ -x /usr/local/libexec/symon ]; then echo -n ' symon'; /usr/local/libexec/symon fi
Y si todo ha sido correcto ahora tendremos los dos procesos corriendo y el puerto 2100 abierto en 127.0.0.1 (leyendo los archivos de configuración seguro que ya os habíais dado cuenta).# /usr/local/libexec/symux # /usr/local/libexec/symon
- Phpsymon: Procesa la información de forma instantánea conectándose al puerto 2100 y mostrando los resultados de forma gráfica y sencilla de interpretar, no utiliza ficheros RRD para nada.
- Syweb: Utiliza los datos RRD para crear las típica gráficas rrdtool (dependencia) de forma que tendremos un histórico de toda la información procesada. Es obvio que debemos instalar rrdtool
Syweb tiene más miga, además de bajarlo y descomprimirlo adecuadamente debemos preparar el chroot para que sea capaz de ejecutar rrdtool, darle un directorio temporal de caché, decirle donde se encuentran los archivos RRD de datos y poco más. Pero vamos por partes. Una vez dentro del directorio syweb ejecutamos un script que viene con él encargado de acondicionar el chroot para poder tener acceso a rrdtool y todas sus librerías:
# wget http://www.xs4all.nl/~wpd/symon/philes/syweb-0.53.tar.gz
# tar xfvvz syweb-0.53.tar.gz
# cd syweb/
# ls
CHANGELOG Makefile contrib install_rrdtool.sh
INSTALL README htdocs symon
# ./install_rrdtool.sh
rrdtool and libs installed in apache root
#
...
$symon['rrdtool_path']='/bin/rrdtool';
$symon['cache_dir']='cache';
$symon['host_tree']='rrds';
$symon['layout_dir']='/htdocs/tools/syweb';
...
syweb/
| cache/
| rrd/
| localhost/*rrd
datadir "/var/www/htdocs/syweb/rrds/localhost"
Con todo esto tenemos lo más básico de la máquina monitorizado, si consigo reunir fuerzas y tiempo suficientes intentaré explicar otro tipo de monitorizaciones avanzadas (snmp, nagios...). Hasta entonces, suerte con las gráficas :).