Comment regarder les journaux en temps réel via le terminal?


16

Il s'agit d'une question fondamentale - dans le film "The Social Network", il y a plusieurs scènes où le jeune personnel de Facebook regarde le serveur PHP / Apache se connecter sur son TERMINAL en temps réel.

Je sais comment faire cela dans un environnement RUBY / RoR - mais avec un environnement LAMP Apache / PHP standard, comment surveiller activement les actions de votre serveur en temps réel? Je suppose qu'il existe un moyen facile de le faire dans Terminal.


Je n'ai pas vu ce film. Quelqu'un a-t-il une capture d'écran ou un clip qui montre les détails de ce que le personnel de Facebook fait dans le film?
Stefan Lasiewski

tail -f sur le fichier journal le fait généralement.
Fiasco Labs

Réponses:


47

peut-être qu'ils utilisent tail -fsur le journal d'accès?


2
Cela ne serait-il pas ingérable très rapidement pour les grands sites comme Facebook, où il y a des milliers de demandes chaque seconde?
Vilx-

3
tail -f peut toujours être filtré via grep si vous recherchez des demandes spécifiques ... qui peuvent réduire les volumes
Mark Baker

3
tail -fest le non. 1 raison de mettre au moins un minimum de Cygwin sur une boîte Windows!
Daniel Earwicker

1
@Daniel Je pense que GnuWin32 a également une commande de queue
Jader Dias

1
pour ce problème de vitesse ... tail -f /log/any.log | while read line; do echo $line; sleep 3; donemais ce ne serait plus "en temps réel"
theist



6

Si vous recherchez une visionneuse et un analyseur de journaux Apache en temps réel, je recommanderais certainement GoAccess.

http://goaccess.prosoftcorp.com/

Vous venez de l'exécuter comme (pas de conf nécessaire):

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

3

Une autre chose que vous pouvez essayer est la commande "watch" qui peut exécuter de manière répétitive une commande grep sur n'importe quel fichier journal de votre choix. À l'aide des commutateurs de commande de surveillance appropriés, vous pouvez même mettre en évidence les modifications des fichiers journaux en temps réel.

Par exemple:

montre -d -n5 disponibilité


2

GoAccess 0.6.1 devrait être au moins l'un des outils dans votre sac. Open source. Rapide et STABLE.

Pour 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]

geoip fait une erreur sur CENTOS 6
Mike Castro Demaria

1

Il s'agit d'une question fondamentale - dans le film "The Social Network", il y a plusieurs scènes où le jeune personnel de Facebook regarde le serveur PHP / Apache se connecter sur son TERMINAL en temps réel.

Pour un grand système tel que Facebook, vous devez vous demander combien de licence artistique (aka bullsh * t) a été accordée lors de la réalisation du film. Dans un environnement avec des milliers de systèmes et des milliers de clusters, regarder les journaux de serveur défiler sur un terminal n'est pas nécessairement l'activité de surveillance n ° 1.

Dans un environnement comme celui-ci (ou n'importe quel environnement de production avec plusieurs dizaines de nœuds), vous auriez un NOSC de type avec des indicateurs, et seulement lorsque quelque chose est signalé comme étant dans un état de crapping outcelui-ci, il irait et regarderait activement les journaux ( probablement filtré pour les événements et messages importants.)


Pour un site suffisamment petit, regarder les journaux est assez amusant et peut vous donner une idée générale de la façon dont vos attentes sont satisfaites. Dans tous les cas, la question utilise simplement le film comme source d'inspiration, demandant "Comment puis-je faire quelque chose comme ça?" au lieu de "Comment ont-ils fait ça?"
eswald

Eh bien, une chose est de garder un terminal ouvert avec le défilement vers le bas de la queue -f. Cela pourrait cependant coûter très cher dans toute la bande passante. Cela peut coûter très cher au processeur au niveau du client si vous faites, par exemple, défiler les journaux sur un terminal distant affichés via VNC ou Remote Desktop. D'autres solutions impliquent l'envoi de sortie de journal à syslog (et que son envoi à distance à un serveur syslog), ou même l'envoi de lots de lignes de journal (compressées et via UDP) à un client de surveillance. Le dernier pourrait impliquer la perte de certaines lignes car il s'agit d'UDP. Cela pourrait cependant être acceptable dans certaines conditions.
luis.espinal

0

Bien que je suis ravi que le réseau social utilise un jargon et une terminologie principalement précis, certains des trucs qu'ils ont fait juste pour le spectacle.

Je ne suis pas un expert du serveur mais j'ai vu Zuckerberg avoir un terminal ouvert avec une commande ping en cours d'exécution et je ne vois aucune raison pour laquelle il ferait cela au hasard. (C'était après le moment où ils avaient déjà le serveur opérationnel).

J'ai trouvé la scène de piratage du serveur Python très amusante.



0

Vous pouvez également utiliser la visionneuse de journaux en temps réel dans quelque chose comme LogLogic et filtrer ce que vous ne vouliez pas voir. De cette façon, vous pouvez collecter plus que des journaux apache, vous pouvez obtenir des journaux de routeur, des journaux ftp, etc.


0

vous pouvez écrire un script d'interrogation assez facilement, comparer jsut l'horodatage ou la taille du fichier et en cas de changement, faire un tail -n1


0

Apachetail fournit également une vue / analyse en temps réel des journaux Apache en se connectant directement à votre serveur Apache à partir d'une application de bureau Windows. Aucun logiciel ne doit être installé sur le serveur Apache.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.