Существует ли программа для просмотра живых HTTP-запросов под сервером Apache? - PullRequest
27 голосов
/ 17 августа 2011

Я ищу программу или дополнение, которое сможет показывать все входящие запросы в реальном времени на сервер.

Ответы [ 3 ]

27 голосов
/ 28 ноября 2011

в вашем терминале, наберите

tail -f /var/www/log/apache2/other_vhosts.access.log

это будет просматривать запросы в реальном времени.

14 голосов
/ 05 октября 2012

Как отмечает @Maor H., журнал доступа обычно является наиболее удобным местом для получения «входящих» запросов. Эти журналы могут быть настроены так, что они могут идти куда угодно, но обычно их можно найти где-то под /var/log/apache2/ или /var/log/httpd/.

Их расположение определяется директивами CustomLog в httpd.conf или включенным файлом (например, виртуальным хостом). Таким образом, поиск этого в ваших httpd.conf и подобных *.conf файлах, как правило, является хорошим началом, если журналы не могут быть найдены в одной из /var/log/* директорий, упомянутых выше.

Однако, важное различие заключается в том, что журналы apache / httpd не записываются до тех пор, пока запрос не будет выполнен. Это легко заметить, так как записи журнала обычно включают в себя такие вещи, как код состояния окончательного запроса (%>s в директиве LogFormat) и сколько времени занял запрос (%T в LogFormat директива).

Если вы заинтересованы в том, чтобы видеть запросы «по мере их поступления», краткий ответ заключается в том, что не существует «хорошего» способа, который я знаю. Тем не менее, обычно достаточно хороший метод использует Apache mod_status, который обычно настроен (когда он настроен) для доступа через http://127.0.0.1/server-status/ с той же машины, что и сам сервер. С настроенным mod_status вы обычно можете видеть вывод «табло», как он называется, из командной строки, используя команду, аналогичную apachectl fullstatus или (в зависимости от вашего дистрибутива) service httpd fullstatus.

server-status / fullstatus / «табло» покажет сводку активных (и неактивных) соединений, усеченную копию самого запроса и то, что в настоящее время происходит с этим запросом (например: он обрабатывается? Отправляется ли ответ? Он простаивает? Просто ожидает новое соединение?)

Основными недостатками табло являются то, что они плохо поддаются отслеживанию или активному контролю иным образом. Это полезно для определения того, что может вызывать чрезмерную нагрузку на сервер, хотя даже для этого у него есть недостаток: быть доступным только тогда, когда apache способен обслуживать дополнительное соединение (поэтому не стоит выяснять, что блокирует дополнительные соединения) .

Основным преимуществом табло, как упоминалось выше: оно дает вам детали запроса до запроса было завершено. Имея это в виду, он может лучше соответствовать вашему запросу на список «входящих» запросов.

Если вы хотите получить информацию о вещах более низкого уровня и не говорите о рабочем сервере, то, конечно, WireShark может предоставить вам живой список HTTP-запросов по мере их поступления. сами TCP-соединения и слишком ресурсоемки для производственного использования. Если вы пытаетесь выяснить, что на самом деле происходит по телеграмме, то это лучший выбор.

8 голосов
/ 18 апреля 2016

apachetop покажет вам все запросы за последнюю минуту или около того.

sudo apt-get install apachetop

Вот руководства .

Вы можете указать частоту обновления и продолжительность отображения информации на экране.

Например, если вы хотите просмотреть все запросы за последние 30 секунд и обновлять информацию каждые 2 секунды, вы должны выполнить:

apachetop -r 2 -T 30

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...