11/27/2009


Monitorear el sistema en Gnu/Linux desde consola

En este post quiero hacer una recompilación de scripts y comandos para monitorear nuestro sistema desde la consola de una manera agradable, es decir darle un toque de color :).

Visualizar netstat:

Empecemos con el monitoreo a través de la herramiento netstat, muy conocida por su multiplataforma para ver las conexiones entrantes y salientes. Bueno a continuación les dejo un script encontrado en la web y modificado para esta versión de Ubuntu 9.10 que uso en español.


#!/bin/bash
cyan="\E[1;36m\E[1m";
normal="\E[m";
blue="\E[34m\E[1m";
violet="\E[35m\E[1m";
red="\E[31m\E[1m";
yellow="\E[33m\E[1m";
green="\E[37m\E[32m\E[1m";
text="\E[1;37m\E[1m";

if [ "$UID" != "0" ]; then
echo -e "$red$0: You will get more information if you have root privileges. Try sudo $0$normal"
fi

netstat -natp | \
while read line; do

if [ `echo $line | awk '{print($1)}'` = "Proto" ]; then
echo -e "$yellow=====================================================================================================$normal"
echo -e "$text$line$normal"
echo -e "$yellow=====================================================================================================$normal"
else

state=`echo $line | awk '{print($6)}'`
color=$yellow
case $state in
"ESTABLECIDO")
color=$green;;
"SYN_SENT" | "SYN_RECV")
color=$yellow;;
"FIN_WAIT1" | "FIN_WAIT2" |"TIME_WAIT")
color=$violet;;
"CLOSE" | "CLOSE_WAIT" | "LAST_ACK" | "CLOSING" )
color=$blue;;
"ESCUCHAR")
color=$red;;
"UNKNOWN")
color=$red;;
*)
esac
echo -e "$color$line$normal"

fi
done;
Para usar el script:
touch nett
/*Creamos el fichero*/
chmod +x nett
/*Le damos permiso de ejecucion*/
gedit nett
/*Abrimos Gedit y pegamos el codigo y ponemos guardar */
./nett
/*Para usarlo*/

Visualizar logs:

Primero instalamos el paquete ccze que nos colorizará nuestra terminal con los resultados de los logs.
apt-get install ccze

Generalmente visualizamos los logs en los ficheros que se encuentran en /var/log/.

La herramienta TAIL permite visualizar ciertas líneas de un archivo de texto plano, por ejemplo las últimas X líneas, pero la opción que utilizaremos se queda esperando cambios en el archivo y los muestra a medida que van apareciendo. En el caso de visualizar un archivo de log tendremos la actualización constante del archivo en nuestra pantalla:

# tail -f /var/log/syslog

Ahora solo queda mejorar un poco la salida para que sea mas ágil la lectura:

# tail -f /var/log/syslog | ccze

A continuación veremos la salida de dmesg:

# tail -f /var/log/dmesg | ccze

También se pueden monitorear tres logs al mismo tiempo, aunque no es muy recomendable nos dará una mirada al instante de lo que ocurre en nuestro sistema:

# tail -f /var/log/syslog /var/log/auth.log /var/log/dmesg | ccze


Pueden crear alias en el archivo $HOME/.bashrc para ahorrarse el comando en conjunto :

...
alias syslog='tail -f /var/log/syslog | ccze'
alias maillog='tail -f /var/log/mail.log | ccze'
alias weblog='tail -f /var/log/squid/access.log | ccze'
...

Luego solamente tipeando:

$ syslog

Veremos la salida de /var/log/syslog coloreada.

Espero que les resulte útil. Saludos :)

Fuente y Relacionados:
Logs en Gnu/Linux
Logs en Tiempo Real
Colorear Logs

3 comentarios:

Tepes said...

Muy interesante el tema, una buena forma de ver registros sin dejarnos la vista en la consola.

Saludos!!

El Moderador said...

Permítame felicitarlo por su excelente pagina, me encantaría tenerlo en mi pagina web. Estoy seguro que su pagina sería de mucho interés para mis visitantes, por lo que estoy muy interesada en intercambiar enlaces con Ud.

te puedo ofrecer un enlace en estas webs:

Linux

Quedo a la espera de su respuesta, que tenga un buen día.

Free Poker said...

Thank you for providing such a thoughtful Monitorear el sistema en Gnu/Linux desde consola post, I really enjoy to be here. Your have great insight about Monitorear el sistema en Gnu/Linux desde consola of your post. Your My Blog. Gnu/Linux! blog is really excellent.
--------------------------
My website: Online Poker Bonus deals and Texas Hold'em Poker