Trasteando con NMON

En el curro me han pedido alguna herramienta para monitorizar los servidores AIX y Linux y tener un histórico para poder consultar y ver la evolución y tal.

Lo que he encontrado para ambos sistemas es NMON y la verdad es que va de narices.

Como mejor explicación no escuentro otra mejor que la que nos trae el man:

“Displays local system statistics in interactive mode and records system
statistics in recording mode.”

Hay bastante información y enlaces de descarga en:

http://www.ibm.com/developerworks/wikis/display/WikiPtype/nmon

Una vez que tenemos el fichero .nmon con los datos estadísticos en “bruto” necesitamos algo para poder leerlos. Hay una hoja de cálculo hecha en Excel con unas macros las cuales te procesan todo el fichero .nmon y te crean hojas con los datos. Ésta podría ser una solución pero nos obligaba a pasar por un Windows así que siempre que podamos evitarlo, mejor.

Hay otra herramienta: nmon2rrd

Ésta nos coje el mismo fichero .nmon y nos genera gráficas al estilo del MTRG todo dentro de un HTML que podemos colgar en cualquier servidor web. Así que ya tenemos la solución.

En el crontab de cada máquina ponemos una tarea que a las 0:05 empiece a recoger información, hasta las 23:55 del mismo día. Acto seguido se pasa éste ficherito por scp o como se quiera a la máquina Linux que va a generar los html. En ésta máquina destino ponemos otra tarea que sea ejecutar un script que recoge todos los .nmon, los procesa y según el día crea un directorio nuevo para tener los html ordenaditos por carpetas y poder navegar por días.

El script, un poco rudimentario quizá pero efectivo, lo teneis aquí:

#!/bin/bash

cd /var/log/nmon
ls | grep -v auto | grep -v temp | grep -v old > temp
export ruta=/var/www/nmon

cat temp | while read k
do
nmon=$k
export maq=`echo $nmon | cut -d “_” -f 1`
export dia=`echo $nmon | cut -d “_” -f 2 | cut -d “-” -f 1`
export mes=`echo $nmon | cut -d “_” -f 2 | cut -d “-” -f 2`
export anyo=20`echo $nmon | cut -d “_” -f 2 | cut -d “-” -f 3 | cut -d “.” -f 1`
if [ ! -d $ruta/$maq ]
then
mkdir $ruta/$maq
fi
if [ ! -d $ruta/$maq/$anyo ]
then
mkdir $ruta/$maq/$anyo
fi
if [ ! -d $ruta/$maq/$anyo/$mes ]
then
mkdir $ruta/$maq/$anyo/$mes
fi
if [ ! -d $ruta/$maq/$anyo/$mes/$dia ]
then
mkdir $ruta/$maq/$anyo/$mes/$dia
fi
nmon2rrd -f $nmon -d $ruta/$maq/$anyo/$mes/$dia -x
mv $nmon $nmon.old
sleep 3
done

Aquí tenemos un ejemplo:

nomn1nmon2

 

 

Por último sólo decir que el nmon2rrd está para AIX pero se distribuye el fiuente en C, así que sólo hay que compilarlo con un gcc desde el Linux y ponerlo en una ruta accesible.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s