Monitorizar Apache con Apachetop
Si coleccionas dominios y tienes miles de visitas únicas diarias en algún momento te puede haber surgido la necesidad de monitorizar ese tráfico para decidir si tu servidor es suficiente o por el contrario necesitas contratar uno más potente…
Suponiendo que tienes almenos un VPS (mejor si es dedicado) puedes usar tu panel de control o mejor puedes conectar con tu shell (consola de comandos) vía SSH (usando un programa como Putty), entonces podemos hablar de varios niveles para comprobar la carga de tu servidor desde el más básico hasta algo un poco más sofisticado.
- El más básico: escribes el comando uptime que te dará como resultado una línea con 3 valores de load average al final de la misma refiriéndose a la carga del último minuto, últimos 5 minutos y últimos 15 minutos respectivamente, lo ideal es que cada uno de estos valores esté la mayor parte del tiempo por debajo de 1 (si tienes 1 core) o por debajo de n (si tienes n cores).
- El más común: escribes el comando top y puedes ver en tiempo real y con refresco automático todos los procesos que se están ejecutando en tu máquina indicando la carga de CPU, memoría, etc… de cada uno, por defecto el tiempo de refresco es 3 sg pero puedes cambiarlo pulsando la tecla s y también puedes mostrar sólo los procesos con un determinado nombre de usuario, por ejemplo los apache ya que son los más interesantes en la mayoría de los casos pulsando la tecla u seguida del nombre en cuestión.
- El más completo: es el comando apachetop pero no viene normalmente por defecto y hay que instalarlo, una vez hecho puedes escribir el comando apachetop -f path (siendo path la ruta absoluta del log de alguno de tus dominios o virtualhosts), también puedes indicar varios logs escribiendo apachetop -f path -f path -f path etc… Mientras ves la información en pantalla puedes usar los cursores arriba y abajo para seleccionar un determinado item y pulsar los cursores derecha o izquierda para mostrar u ocultar la información ampliada del item seleccionado, por ejemplo el ‘referral’.
- Si sólo necesitas saber como vas de memoria RAM: puedes usar el comando free.
Pasos para instalar apachetop via ssh
yum install readline-devel
yum install ncurses-devel
tar xvzf apachetop-0.12.6.tar.gz
cd apachetop-0.12.6
./configure
make
make install
La forma de instalarlo puede variar según la distribución de linux que tengas o según tus gustos personales así como las posibles aplicaciones, en cualquier caso puedes ver como va tu servidor y decidir si te quedas con el, contratas uno superior o por el contrario lo bajas de nivel para optimizar tu gasto, si quieres proponer otras formas de monitorizar la actividad de tu servidor o discutir las propuestas usa la zona de comentarios y los lectores te lo agradecerán.
Jose A Ruiz
05/07/2011 at 6:24 pm
Buen artículo Andy.
Ciertamente cuando te hablé del comando TOP no te profundicé más por que pensaba que solo era para salir del paso, pero personalmente solo uso TOP en sistemas en los que no puedo/debo instalar nada más.
Para visualizar en tiempo real los recursos de los procesos que están corriendo suelo utilizar una alternativa al comando TOP que es el comando HTOP
Después para monotorizar recursos concretos del servidor como por ejemplo las consultas a la base de datos utilizo algunas aplicaciones externas de escritorio que me permiten tener un entorno más visual de ventanas y gráficos.
Para el comando APACHETOP concreto algunos detalles que para los usuarios menos avanzados pueden resultar de utilidad;
-El path del archivo de logs de un dominio depende de la configuración del sistema, por ejemplo para ejecutar APACHETOP en un sistema operativo CentOS con Plesk por defecto sería algo así (cambiando midominio.com por el correspondiente)
apachetop -f /var/www/vhosts/midominio.com/statistics/logs/access_log
Así mismo para servidores con CentOS se puede realizar la instalación con el comando YUM INSTALL HTOP y YUM INSTALL APACHETOP y suelo tener instalado Atomic ( wget -q -O – http://www.atomicorp.com/installers/atomic.sh | sh )
DETALLE: ojo si alguien copia/pega que los camandos los he puesto en mayúscula
Por si a alguien está buscando un servidor dedicado, personalmente utilizo servidores Cloud Dinámicos que ofrecen gran flexibilidad a precios bastante asequibles, así que dejo mi enlace de 1and1
Saludos!
Andy García
06/07/2011 at 8:59 am
Muchas gracias por la info pero siendo ‘novato’ de linux lo que no me termina de convencer es el comando YUM debido a la variedad de repositorios disponibles, me parece un caos.
Acabo de ejecutar yum install htop y no me lo instala, tengo que buscar un repositorio y configurarlo, bla, bla y no tengo control sobre la versión que instalo ya que eso lo ha decidido el repositorio por mi, bla, bla.
Cuando actualicé PHP me dijeron usa los repositorios oficiales, al final no sé cual usé y me puso la versión 5.2.10 cuando la última de la rama 5.2 era la 5.2.11 y esa es justamente la que necesito ahora pero he probado con cienes y cienes de repositorios y aún no he dado con la tecla, con lo fácil que es eso en windows leches.
Si intento actualizar #PHP con utterramblings.repo y YUM y me sale una lista de «Transaction Check Error» ¿qué puedo hacer?
P.D. cuando tenga que cambiar de servidor y contrate 1&1 usaré tu enlace de referido… 🙂
Jose A Ruiz
06/07/2011 at 10:26 am
En distribuciones de linux basadas en Redhat con Plesk suelo tener instalado Atomic para despreocuparme un poco de lo que comentas e instalar las versiones estables de ART sin tener que estar cambiando repositorios para el sistema con el comando yum ( http://www.atomicorp.com/wiki/index.php/Atomic_Rocket_Turtle )
Instalación de Atomic:
wget -q -O – http://www.atomicorp.com/installers/atomic.sh | sh
Tras la instalación prueba yum install htop
PDD20
06/07/2011 at 11:44 am
Hola Andy, te dejo una forma fácil de instalar un repositorio y htop (necesitarás otro repositorio diferente):
http://www.pedrodelgado.es/2011/02/instala-el-repositorio-yum-atomic-para-centos-y-plesk.html
http://www.pedrodelgado.es/2011/02/instalar-htop-la-alternativa-avanzada-a-top.html
Te dejo yo también mi enlace de 1and1: http://web.epartner.es/click.asp?ref=531651&site=5327&type=text&tnb=8 😉
Saludos!
Andy García
08/07/2011 at 7:26 pm
He instalado el repositorio atomic y gracias a el he podido actualizar el PHP aunque me hubiera gustado elegir una versión distinta de la última, cuando me di cuenta ya estaba instalando y no me pareció interesante parar la transacción aún sabiendo que es una transacción.
Fernando
08/01/2013 at 6:40 pm
Una observación: en el comando TOP cuando utilizas la tecla «u» no filtra por procesos como lo indicas, si no por usuario.
Buen aporte saludos
Andy Garcia
26/04/2014 at 10:35 am
La tecla «u» filtra los procesos de un determinado nombre de usuario, por ejemplo «apache», es una cuestión semántica pero gracias por el apunte.