¿Cómo ver registros en tiempo real a través de la Terminal?

16

Esta es una pregunta básica: en la película "La red social" hay varias escenas en las que el joven personal de Facebook está viendo el servidor PHP / Apache inicia sesión en su TERMINAL en tiempo real.

Estoy familiarizado con cómo hacer esto en un entorno RUBY / RoR, pero con un entorno LAMP Apache / PHP estándar, ¿cómo monitorear activamente las acciones de su servidor en tiempo real? Supongo que hay una manera fácil de hacer esto en la Terminal.

Jamison
fuente
No he visto esta película. ¿Alguien tiene una captura de pantalla o un clip que muestre los detalles de lo que el personal de Facebook está haciendo en la película?
Stefan Lasiewski 19/10/10
tail -f en el archivo de registro generalmente lo hace.
Fiasco Labs

Respuestas:

47

tal vez usan tail -fen el registro de acceso?

Dror
fuente
2
¿No sería inmanejable realmente rápido para sitios grandes como Facebook donde hay miles de solicitudes por segundo?
Vilx-
3
tail -f siempre se puede filtrar a través de grep si está buscando solicitudes específicas ... que pueden reducir los volúmenes
Mark Baker
3
tail -fes el no. ¡1 razón para poner al menos un mínimo de Cygwin en una ventana de Windows!
Daniel Earwicker
1
@Daniel Creo que GnuWin32 también tiene un comando de cola
Jader Dias
1
para ese problema de velocidad ... tail -f /log/any.log | while read line; do echo $line; sleep 3; donepero esto ya no sería "en tiempo real"
teísta
16

O incluso algo como logstalgia ;-)

weeheavy
fuente
3
Wow eso es impresionante. Y podría ser más que solo un dulce para los ojos.
Stefan Lasiewski
8

o instalar y usar multitail para especificar filtros y colores :)

onik
fuente
6

Si está buscando un visor y analizador de registro de Apache en tiempo real, definitivamente recomendaría GoAccess.

http://goaccess.prosoftcorp.com/

Simplemente lo ejecuta como (no se necesita conf):

goaccess -f /var/log/apache2/access.log -s -b

fuente
3

Otra cosa que puede probar es el comando "watch", que puede ejecutar repetidamente un comando grep en cualquier archivo de registro que desee. Usando los interruptores de comando de vigilancia apropiados, incluso puede resaltar los cambios en los archivos de registro en tiempo real.

Por ejemplo:

watch -d -n5 tiempo de actividad

mk_gocs
fuente
2

GoAccess 0.6.1 debe ser al menos una de las herramientas en su bolso. Fuente abierta. Rápido y ESTABLE.

Para Rhel / Centos 6.4

yum install glib2 glib2-devel glibc make geoip
yum install ncurses-devel
Download GoAccess - http://goaccess.prosoftcorp.com/download
Untar it and cd into it
./configure
make
make install

Finally: goaccess -f /var/log/httpd/access.log (or wherever your access logs are [maybe even /etc/httpd/logs/access_log]
Chris
fuente
Geoip comete un error en CENTOS 6
Mike
1

Esta es una pregunta básica: en la película "La red social" hay varias escenas en las que el joven personal de Facebook está viendo el servidor PHP / Apache inicia sesión en su TERMINAL en tiempo real.

Para un sistema grande como Facebook, debes preguntarte cuánta licencia artística (también conocida como bullsh * t) se otorgó en la realización de la película. En un entorno con miles de sistemas y miles de clústeres, ver los registros del servidor desplazándose en un terminal no es necesariamente la actividad de monitoreo # 1.

En un entorno como ese (o cualquier entorno de producción con varias docenas de nodos), tendría un NOSC de tipo con indicadores, y solo cuando algo se marca como en un estado de crapping outese iría y miraría activamente los registros ( probablemente filtrado por eventos y mensajes significativos).

luis.espinal
fuente
Para un sitio lo suficientemente pequeño, mirar los registros es divertido y puede darle una idea general de cuán bien se están cumpliendo sus expectativas. En cualquier caso, la pregunta solo usa la película como inspiración, preguntando "¿Cómo puedo hacer algo así?" en lugar de "¿Cómo hicieron eso?"
eswald
Bueno, una cosa es mantener una terminal abierta con la cola -f desplazándose hacia abajo. Sin embargo, podría ser muy costoso en todo el ancho de banda. Puede ser muy costoso en términos de CPU en el cliente si, por ejemplo, está desplazando los registros en un terminal remoto que se muestra a través de VNC o Escritorio remoto. Otras soluciones implican enviar la salida de registro a syslog (y que enviarlo de forma remota a un servidor de syslog), o incluso enviar lotes de líneas de registro (comprimidas y a través de UDP) a un cliente de monitoreo. El último podría implicar la pérdida de algunas líneas ya que es UDP. Sin embargo, puede ser aceptable en algunas condiciones.
luis.espinal 19/10/10
0

Si bien estoy encantado de que la Red Social utilizara jerga y terminología en su mayoría precisas, algunas de las cosas que hicieron solo para mostrar.

No soy un experto en servidores, pero vi que Zuckerberg tenía una terminal abierta con un comando ping ejecutándose y no se me ocurre ninguna razón por la que lo estaría haciendo al azar. (Esto fue después del tiempo en que ya tenían el servidor en funcionamiento).

Sin embargo, encontré la escena de piratería del servidor Python muy divertida.


fuente
0

También puede usar el visor de registro en tiempo real en algo como LogLogic y filtrar lo que no desea ver. De esta forma, podría recopilar más que registros de apache, podría obtener registros de enrutadores, registros de ftp, etc.

BillRoth
fuente
0

puede escribir un script de sondeo con bastante facilidad, solo compare la marca de tiempo o el tamaño del archivo y, si se modifica, haga un tail -n1

caja de mermelada
fuente
0

Apachetail también proporciona una vista / análisis en tiempo real de los registros de Apache conectándose directamente a su servidor Apache desde una aplicación de escritorio de Windows. No es necesario instalar ningún software en el servidor Apache.

Peter Jamsmenson
fuente