mod_status — это модуль, который генерирует специальную страницу с подробной информацией про веб-сервер, системные ресурсы, текущие запросы и скорость их обработки.
Если скрипты на ваших сайтах обрабатываются модулями вроде mod_php или mod_perl, то команды top и ps выведут только процессы httpd. В этом случае, проследить стандартными средствами системы, какой именно из скриптов потребляет системные ресурсы, уже невозможно. Этой информацией располагает только Apache, а администратор может её получить с помощью модуля mod_status.
mod_status предоставляет следующие сведения:
- количество процессов, обрабатывающих запросы;
- количество процессов в состоянии ожидания;
- статус каждого процесса, число обработанных запросов и переданных байт;
- общее число запросов и переданных байт;
- время, когда сервер был запущен/перезапущен и сколько он уже работает (uptime);
- среднее число запросов/сек, байт/сек и байт/запрос;
- текущее использование CPU каждым процессом отдельно и Apache в целом (в процентах);
- текущие посетители и их запросы.
Выведем эту эту информацию по определенному адресу, обозначив для Location обработчик server-status. Чтобы скрыть страницу от посторонних, используем простое ограничение доступа по паролю:
Откроем для редактирования конфигурационный файл апача и добавим в конец:
ExtendedStatus On <Location /server-status> SetHandler server-status AuthType basic AuthName "server-status" AuthUserFile /var/www/.htpasswd require valid-user </Location>
Необходимо, чтобы модуль был подгружен:
LoadModule status_module libexec/apache22/mod_status.so
Если вы хотите собирать эту информацию для статистики или построить график, существует специальная версия страницы для использования в скриптах. Она доступна по адресу вида: http://example.com/server-status?auto.