Як дивитися журнали в режимі реального часу через термінал?


16

Це основне питання - у фільмі "Соціальна мережа" є кілька сцен, коли молоді співробітники Facebook спостерігають за тим, як сервер PHP / Apache входить у свій термінал у режимі реального часу.

Мені знайоме, як це зробити в середовищі RUBY / RoR - але зі стандартним середовищем LAMP Apache / PHP, як активно контролювати дії вашого сервера в режимі реального часу? Я здогадуюсь, що в Терміналі це легко зробити.


Я цього фільму не бачив. Хтось має скріншот або кліп, на якому видно деталі того, що роблять співробітники Facebook у фільмі?
Стефан Ласєвський

хвіст -f у файлі журналу зазвичай це робить.
Лабораторії Фіаско

Відповіді:


47

можливо вони використовуються tail -fв журналі доступу?


2
Хіба це не стане дійсно некерованим для великих сайтів, таких як Facebook, де тисячі запитів щосекунди?
Vilx–

3
хвіст -f завжди можна відфільтрувати через grep, якщо ви шукаєте конкретні запити ... що може зменшити обсяги
Марк Бейкер,

3
tail -fє ні. 1 причина для того, щоб помістити принаймні мінімальний Cygwin на вікно!
Даніель Ервікер

1
@Daniel Я думаю, що GnuWin32 також має хвостову команду
Jader Dias

1
для цієї проблеми зі швидкістю ... tail -f /log/any.log | while read line; do echo $line; sleep 3; doneале це вже не буде "реальним часом"
теїст



6

Якщо ви шукаєте в режимі реального часу переглядача та аналізатора журналів Apache, я б точно рекомендував GoAccess.

http://goaccess.prosoftcorp.com/

Ви просто запускаєте його як (конфіденційність не потрібна):

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

3

Ще одна річ, яку ви можете спробувати - це команда "watch", яка може повторно виконувати команду grep на будь-який файл журналу, який ви хочете. Використовуючи відповідні перемикачі команд watch, можна навіть виділити зміни в журналах файлів у режимі реального часу.

Наприклад:

дивитися -d -n5 тривалість роботи


2

GoAccess 0.6.1 має бути хоча б одним із інструментів у вашій сумці. Відкрите джерело. Швидкий та стабільний.

Для 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 зробити помилку на CENTOS 6
Майк Кастро Демарія

1

Це основне питання - у фільмі "Соціальна мережа" є кілька сцен, коли молоді співробітники Facebook спостерігають за тим, як сервер PHP / Apache входить у свій термінал у режимі реального часу.

Для такої великої системи, як Facebook, вам потрібно задуматися, скільки художня ліцензія (aka bullsh * t) було надано під час створення фільму. В середовищі з тисячами систем і тисячами кластерів перегляд журналів прокрутки серверів по терміналу не обов'язково є моніторинговою діяльністю №1.

У такому середовищі (або будь-якому виробничому середовищі з декількома десятками вузлів) у вас буде NOSC сортування з індикаторами, і лише тоді, коли щось позначено як таке, що перебуває в такому стані crapping out, ви б переходили і активно дивилися на журнали ( ймовірно, відфільтровано для важливих подій та повідомлень.)


Для досить невеликого веб-сайту перегляд журналів - це задоволення, і це може дати вам загальне враження щодо того, наскільки добре виправдані ваші очікування. У будь-якому випадку, питання просто використовує фільм як натхнення, запитуючи "Як я можу зробити щось подібне?" замість "Як вони це зробили?"
eswald

Ну, одна річ - тримати термінал відкритим з хвостом -f прокручування вниз. Однак це може отримати дуже дорогий пропускну здатність. Якщо клієнт може прокручувати журнали на віддаленому терміналі, який відображається через VNC або віддалений робочий стіл, він може отримати дуже дорогий процесор . Інші рішення включають в себе відправлення журналу виводу в syslog (а також його віддалене надсилання на сервер syslog) або навіть надсилання пакетів ліній журналів (стислих та через UDP) клієнтові моніторингу. Пізніші можуть спричинити втрату деяких рядків, оскільки це UDP. Однак це може бути прийнятним в деяких умовах.
luis.espinal

0

Хоча я в захваті від того, що Соціальна мережа використовувала переважно точний жаргон та термінологію, деякі речі, які вони робили просто для показу.

Я не експерт із сервера, але я побачив, що у Цукерберга відкритий термінал із запущеною командою ping, і я не можу придумати будь-якої причини, що він би це робив випадково. (Це було після закінчення часу, коли сервер вже був запущений і запущений).

Але я знайшов сцену злому сервера Python дуже цікавою.


0

Logtool також зробить красиві кольорові колоди. Apache може записувати свої журнали на центральний сервер NFS або може записувати журнали за допомогою syslog , а syslog може надсилати дані журналу на центральний сервер syslog.

Клацніть на посилання для більш детальних пояснень.

хвост -F /export/syslog/log/apache/access.log | logtool


0

Ви також можете використовувати переглядач журналів у реальному часі у чомусь подібному до LogLogic та відфільтрувати наше те, чого ви не хотіли бачити. Таким чином ви можете зібрати більше, ніж журнали apache, ви можете отримати журнали маршрутизаторів, ftp-журнали тощо.


0

ви можете написати сценарій опитування досить легко, jsut порівняйте часову позначку або розмір файлів, і якщо це зміниться, зробіть це tail -n1


0

Apachetail також забезпечує перегляд / аналіз журналів Apache в режимі реального часу, підключаючись безпосередньо до вашого сервера Apache через додаток для робочого столу Windows. На сервері Apache не потрібно встановлювати програмне забезпечення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.