Как смотреть логи в режиме реального времени через Терминал?

16

Это основной вопрос - в фильме «Социальная сеть» есть несколько сцен, когда молодые сотрудники Facebook наблюдают за тем, как сервер PHP / Apache входит в систему на своем ТЕРМИНАЛЕ в режиме реального времени.

Я знаком с тем, как сделать это в среде RUBY / RoR, но как в стандартной среде LAMP Apache / PHP, как активно отслеживать действия вашего сервера в режиме реального времени? Я предполагаю, что есть простой способ сделать это в Терминале.

Джемисон
источник
Я не видел этот фильм. У кого-нибудь есть скриншот или клип, который показывает детали того, что сотрудники Facebook делают в фильме?
Стефан Ласевский
tail -f в файле журнала обычно делает это.
Fiasco Labs

Ответы:

47

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

Дрор
источник
2
Разве это не станет неуправляемым очень быстро для больших сайтов, таких как Facebook, где каждую секунду появляются тысячи запросов?
Vilx-
3
tail -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но это больше не будет "в реальном времени"
теист
16

Или даже что-то вроде logstalgia ;-)

weeheavy
источник
3
Вау здорово. И это может быть больше, чем просто конфетка.
Стефан Ласевский
6

Если вы ищете средство просмотра и анализа журналов Apache в реальном времени, я бы определенно рекомендовал GoAccess.

http://goaccess.prosoftcorp.com/

Вы просто запускаете это как (не нужно conf):

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

источник
3

Другая вещь, которую вы можете попробовать - это команда «watch», которая может многократно запускать команду grep для любого файла журнала, который вы хотите. Используя переключатели команды approriate watch, вы даже можете выделять изменения в файлах журнала в режиме реального времени.

Например:

смотреть -d -n5 время безотказной работы

mk_gocs
источник
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, вы задаетесь вопросом, сколько художественной лицензии (ака фуфло * т) было дано при создании фильма. В среде с тысячами систем и тысячами кластеров наблюдение за прокруткой журналов сервера на терминале не обязательно является операцией №1 по мониторингу.

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

luis.espinal
источник
Для небольшого сайта просмотр журналов - это весело, и он может дать вам общее представление о том, насколько оправданы ваши ожидания. В любом случае, вопрос просто использует фильм как вдохновение, спрашивая: «Как я могу сделать что-то подобное?» вместо "Как они это сделали?"
Эсвальд 19.10.10
Ну, во-первых, держать терминал открытым с прокруткой tail -f вниз. Это могло бы стать очень дорогим для всей полосы. Это может стоить очень дорого с точки зрения использования процессора клиентом, если, например, вы просматриваете журналы на удаленном терминале, отображаемом через VNC или Remote Desktop. Другие решения включают отправку вывода журнала в системный журнал (и его отправку удаленно на сервер системного журнала) или даже отправку пакетов строк журнала (сжатых и через UDP) клиенту мониторинга. Последнее может повлечь за собой потерю некоторых строк, поскольку это UDP. Это может быть приемлемо в некоторых условиях, хотя.
luis.espinal
0

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

Я не эксперт по серверам, но я видел, как у Цукерберга был открыт терминал с запущенной командой ping, и я не могу придумать причину, по которой он сделал бы это случайно. (Это было после того времени, когда сервер уже был запущен и работает).

Я нашел сцену взлома Python-сервера очень забавной.


источник
0

Logtool также сделает красивые цветные журналы. Apache может записывать свои журналы на центральный сервер NFS или записывать журналы, используя syslog , а syslog может отправлять данные журнала на центральный сервер syslog.

Нажмите на ссылки для более подробных объяснений.

tail -F /export/syslog/log/apache/access.log | LogTool

Стефан Ласевский
источник
0

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

Бильрот
источник
0

Вы можете написать скрипт опроса довольно легко, просто сравните метку времени или размер файла и, если он был изменен, выполните tail -n1

Jambox
источник
0

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

Питер Джамменсон
источник