В этой статье вы узнаете, как отслеживать нагрузку и запросы веб-сервера Apache с использованием модуля mod_status в ваших дистрибутивах Linux, таких как CentOS, RHEL и Fedora.
Что такое mod_status?
mod_status – это модуль Apache, который помогает отслеживать нагрузку на веб-сервер и текущие соединения httpd с помощью интерфейса HTML, к которому можно получить доступ через веб-браузер.
Модуль mod_status Apache показывает простую HTML-страницу, содержащую информацию о текущей статистике веб-сервера, включая:
- Общее количество входящих запросов
- Общее количество байтов и подсчеты сервера
- Использование процессора веб-сервером
- Нагрузка сервера
- Время работы сервера
- Общий трафик
- Общее количество неактивных рабочих
- PIDs с соответствующими клиентами и многое другое.
Проект Apache по умолчанию включил страницу статистики своего сервера для общественности. Чтобы ознакомиться с демонстрацией страницы статуса занятого веб-сайта, посетите.
Тестовая среда
Мы использовали следующую тестовую среду для этой статьи, чтобы узнать больше о mod_status с некоторыми практическими примерами и скриншотами.
- Операционная система – CentOS 8/7
- Приложение – Веб-сервер Apache
- IP-адрес – 5.175.142.66
- Корневая директория – /var/www/html
- Файл конфигурации Apache – /etc/httpd/conf/httpd.conf
- Порт HTTP по умолчанию – 80 TCP
- Проверка настроек конфигурации – httpd -t
Предпосылки для этого учебного пособия заключаются в том, что вы уже знаете, как установить и настроить Базовый веб-сервер Apache. Если вы не знаете, как настроить Apache, прочтите следующую статью, которая может помочь вам настроить свой собственный веб-сервер Apache.
Как включить модуль mod_status в Apache
По умолчанию установка Apache поставляется с включенным модулем mod_status. Если нет, убедитесь, что он включен в файле конфигурации Apache.
[root@tecmint ~]# vi /etc/httpd/conf/httpd.conf
Ищите слово “mod_status” или прокручивайте вниз, пока не найдете строку, содержащую.
#LoadModule status_module modules/mod_status.so
Если вы видите символ ‘#‘ в начале “LoadModule”, это означает, что mod_status отключен. Удалите ‘#‘, чтобы включить mod_status.
LoadModule status_module modules/mod_status.so
Настройка mod_status
Теперь снова ищите слово “Location” или прокручивайте вниз, пока не найдете раздел для mod_status, который должен выглядеть следующим образом.
# Allow server status reports generated by mod_status, # with the URL of http://servername/server-status # Change the ".example.com" to match your domain to enable. # #<Location /server-status> # SetHandler server-status # Order deny,allow # Deny from all # Allow from .example.com #</Location>
В вышеприведенном разделе раскомментируйте строки для директивы Location, SetHandler и ограничения каталога в соответствии с вашими потребностями. Например, я оставляю это простым с Order Allow, deny и это разрешено для всех.
<Location /server-status> SetHandler server-status Order allow,deny Deny from all Allow from all </Location>
Примечание: Вышеприведенная конфигурация является конфигурацией по умолчанию для веб-сайта Apache (один веб-сайт). Если вы создали один или несколько виртуальных хостов Apache, вышеприведенная конфигурация не будет работать.
Таким образом, вам просто необходимо определить ту же конфигурацию для каждого виртуального хоста для любых доменов, которые вы сконфигурировали в Apache. Например, конфигурация виртуального хоста для mod_status будет выглядеть так.
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/html/example.com ServerName example.com ErrorLog logs/example.com-error_log CustomLog logs/example.com-access_log common <Location /server-status> SetHandler server-status Order allow,deny Deny from all Allow from example.com </Location> </VirtualHost>
Enable ExtendedStatus
Настройки “ExtendedStatus” добавляют больше информации на страницу статистики, такую как использование ЦП, запросов в секунду, общий трафик и т. д. Чтобы включить это, отредактируйте тот же файл httpd.conf и найдите слово “Extended”, раскомментируйте строку и установите статус “On” для директивы ExtendedStatus.
# ExtendedStatus controls whether Apache will generate "full" status # information (ExtendedStatus On) or just basic information (ExtendedStatus # Off) when the "server-status" handler is called. The default is Off. # ExtendedStatus On
Перезапустите Apache
Теперь убедитесь, что вы правильно включили и настроили страницу статуса сервера Apache. Вы также можете проверить ошибки в конфигурации httpd.conf с помощью следующей команды.
[root@tecmint ~]# httpd -t Syntax OK
Однажды, получив синтаксис OK, вы сможете перезапустить службу httpd.
[root@tecmint ~]# service httpd restart OR [root@tecmint ~]# systemctl restart httpd Stopping httpd: [ OK ] Starting httpd: [ OK ]
Доступ к странице mod_status
Страница статуса Apache будет доступна по вашему доменному имени с помощью “/server-status” по следующим URL-адресам.
http://serveripaddress/server-status OR http://serev-hostname/server-status
Вы увидите что-то похожее на следующую страницу с включенным ExtendedStatus.

На приведенном выше снимке вы можете увидеть интерфейс HTML, который показывает всю информацию о времени работы сервера, идентификаторе процесса с его соответствующим клиентом, страницей, к которой они пытаются получить доступ.
Также показывается значение и использование всех сокращений, используемых для отображения статуса, что помогает нам лучше понять ситуацию.
Вы также можете обновлять страницу каждые несколько секунд (скажем, 5 секунд), чтобы увидеть обновленную статистику. Чтобы установить автоматическое обновление, добавьте “?refresh=N” в конце URL. Где N можно заменить на количество секунд, через которое вы хотите обновить страницу.
http://serveripaddress/server-status/?refresh=5

Просмотр страницы статуса из командной строки
Вы также можете просматривать страницу статуса Apache из интерфейса командной строки, используя специальные браузеры командной строки под названием links или lynx. Вы можете установить их, используя утилиту управления пакетами по умолчанию под названием yum, как показано ниже.
# yum install links OR # yum install lynx
После установки вы можете получить те же статистические данные в вашем терминале, используя следующую команду.
[root@tecmint ~]# links http://serveripaddress/server-status OR [root@tecmint ~]# lynx http://serveripaddress/server-status OR [root@tecmint ~]# /etc/init.d/httpd fullstatus
Apache Server Status for localhost Server Version: Apache/2.2.15 (Unix) DAV/2 PHP/5.3.3 Server Built: Aug 13 2013 17:29:28 -------------------------------------------------------------------------- Current Time: Tuesday, 14-Jan-2014 04:34:13 EST Restart Time: Tuesday, 14-Jan-2014 00:33:05 EST Parent Server Generation: 0 Server uptime: 4 hours 1 minute 7 seconds Total accesses: 2748 - Total Traffic: 9.6 MB CPU Usage: u.9 s1.06 cu0 cs0 - .0135% CPU load .19 requests/sec - 695 B/second - 3658 B/request 1 requests currently being processed, 4 idle workers .__.__W... Scoreboard Key: "_" Waiting for Connection, "S" Starting up, "R" Reading Request, "W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup, "C" Closing connection, "L" Logging, "G" Gracefully finishing, "I" Idle cleanup of a worker, "." Open slot with no current process Srv PID Acc M CPU SS Req Conn Child Slot Client VHost Request 0-0 - 0/0/428 . 0.30 5572 0 0.0 0.00 1.34 127.0.0.1 5.175.142.66 OPTIONS * HTTP/1.0 GET 1-0 5606 0/639/639 _ 0.46 4 0 0.0 2.18 2.18 115.113.134.14 5.175.142.66 /server-status?refresh=5 HTTP/1.1 GET 2-0 5607 0/603/603 _ 0.43 0 0 0.0 2.09 2.09 115.113.134.14 5.175.142.66 /server-status?refresh=5 HTTP/1.1 3-0 - 0/0/337 . 0.23 5573 0 0.0 0.00 1.09 127.0.0.1 5.175.142.66 OPTIONS * HTTP/1.0 GET 4-0 5701 0/317/317 _ 0.23 9 0 0.0 1.21 1.21 115.113.134.14 5.175.142.66 /server-status?refresh=5 HTTP/1.1 GET 5-0 5708 0/212/213 _ 0.15 6 0 0.0 0.85 0.85 115.113.134.14 5.175.142.66 /server-status?refresh=5 HTTP/1.1 6-0 5709 0/210/210 W 0.16 0 0 0.0 0.84 0.84 127.0.0.1 5.175.142.66 GET /server-status HTTP/1.1 7-0 - 0/0/1 . 0.00 5574 0 0.0 0.00 0.00 127.0.0.1 5.175.142.66 OPTIONS * HTTP/1.0 -------------------------------------------------------------------------- Srv Child Server number - generation PID OS process ID Acc Number of accesses this connection / this child / this slot M Mode of operation CPU CPU usage, number of seconds SS Seconds since the beginning of the most recent request Req Milliseconds required to process most recent request Conn Kilobytes transferred this connection Child Megabytes transferred this child Slot Total megabytes transferred this slot -------------------------------------------------------------------------- Apache/2.2.15 (CentOS) Server at localhost Port 80
Заключение
Модуль mod_status веб-сервера Apache является очень удобным инструментом мониторинга для отслеживания производительности деятельности веб-сервера и способен выявлять проблемы самостоятельно. Для получения дополнительной информации прочтите страницу статуса, которая поможет вам стать более успешным администратором веб-сервера.
Это все, что у нас есть о mod_status на данный момент, мы предложим еще несколько хитростей и советов по Apache в будущих учебниках. До тех пор оставайтесь гиками и следите за Tecmint.com, и не забудьте добавить свои ценные комментарии.
Source:
https://www.tecmint.com/monitor-apache-web-server-load-and-page-statistics/