Для этого, необходимо подключить модуль mod_status. Он отслеживает работу сервера и показывает данные в виде обычной html страницы. С его помощью можно узнать:
1) количество процессов, выполняющих обработку запросов;
2) количество процессов, которые находятся в состоянии ожидания;
3) состояние каждого процесса, число обработанных им запросов и переданных данных;
4) общее количество запросов и переданных данных;
5) время работы сервера (запуск, перезапуск и общее время работы (uptime));
6) общая статистика: среднее число запросов в сек, байт на запрос, байт в сек;
7) использование CPU каждым процессом отдельно и apache’ем в целом в данный момент;
8 ) хосты и их запросы, которые обрабатываются в данный момент.
Настройка.
1) Подключаем модуль.
Для этого в файле httpd.conf
снимаем комментарий со строки
LoadModule status_module modules/mod_status.so
2) И открываем доступ к статистике. Добавляем в httpd.conf следующие строки
-
# включаем расширенную статиститку
-
ExtendedStatus On
-
<Location /server-status>
-
SetHandler server-status
-
Order Deny,Allow
-
Deny from all
-
Allow from 127.0.0.1
-
</Location>
Примечание. Здесь мы разрешили доступ к статистике только для адреса 127.0.0.1 (localhost). Для тестирования удаленного сервера вам нужно будет эту настройку изменить.
3) Перезапускаем apache.
Теперь можно просматривать статистику.
Для этого вводим в браузере URL
http://localhost/server-status
или, если вы хотите, чтобы страница обновлялась автоматически
http://localhost/server-status?refresh=15
(вместо цифры 15 ставите задержку в секундах).
Есть ещё один вариант страницы с этими же данными:
http://localhost/server-status?auto&refresh=3
Обработка статистики.
Скрипт, который будет собирать данные, и показывать их, например, в виде графика.
В качестве примера такого скрипта рассмотрим Visualize Apache Server Status (распространяется под LGPL лицензией).
Скрипт состоит из 3-х частей.
1) Конфигурационный файл (inc.config.php)
. Тут нужно указать адрес страницы со статистикой:
-
$statusurl = «http://localhost/server-status»;
Время обновления данных и масштаб (используется для построения графика).
-
$refreshtime = 2;
-
$scalefaktor = 1;
2) Два скрипта (serverstatus.php
и serverstatus2.php
). Используются для отображения данных. Запускать можно любой из них. Информация одна и та же, только представлена по-разному.
3) Класс, выполняющий анализ страницы со статистикой (class.parse_server_status.php
). Самый интересный компонент . Его можно использовать в собственных скриптах.
При работе вам будут нужны 2 метода этого класса.
1) parse_server_status($url)
– в параметре $url задаем адрес страницы со статистикой.
2) getActiveConnections()
– возвращает массив с информацией об активных соединениях. На данный момент этот массив содержит: идентификатор процесса, режим работы, время работы процесса, использование CPU, имя виртуального хоста и URI запроса.
Таким образом, несложно написать собственный скрипт, который будет сохранять данные о работе сервера.