Поиск по сайту:

Как отслеживать загрузку веб-сервера Apache и статистику страниц


В этой статье вы узнаете, как отслеживать загрузку и запросы веб-сервера Apache с помощью модуля mod_status в ваших дистрибутивах Linux, таких как CentOS, RHEL и Fedora.

Что такое mod_status?

mod_status — это модуль Apache, который помогает отслеживать загрузку веб-сервера и текущие соединения httpd с помощью интерфейса HTML, доступ к которому можно получить через веб-браузер.

mod_status Apache показывает простую HTML-страницу, содержащую информацию о текущей статистике веб-сервера, в том числе.

  • Общее количество входящих запросов
  • Общее количество байтов и счетчиков сервера
  • Использование ЦП веб-сервера
  • Нагрузка сервера
  • Время работы сервера
  • Общий трафик
  • Общее количество простаивающих работников
  • PID с соответствующими клиентами и многое другое.

Проект Apache по умолчанию сделал страницу статистики своего сервера общедоступной. Чтобы просмотреть демо-версию страницы состояния загруженного веб-сайта, посетите.

  • https://status.apache.org/
Тестовая среда

В этой статье мы использовали следующую Среду тестирования, чтобы больше узнать о mod_status с помощью некоторых практических примеров и снимков экрана.

  1. Операционная система – CentOS 8/7.
  2. Приложение – веб-сервер Apache
  3. IP-адрес – 5.175.142.66
  4. DocumentRoot – /var/www/html
  5. Файл конфигурации Apache – /etc/httpd/conf/httpd.conf
  6. Порт HTTP по умолчанию – 80 TCP
  7. Настройки конфигурации теста – httpd -t

Предварительными условиями для работы с этим руководством является то, что вы уже знаете, как установить и настроить Базовый сервер Apache. Если вы не знаете, как настроить Apache, прочитайте следующую статью, которая может помочь вам настроить собственный веб-сервер Apache.

  1. Создайте свой собственный веб-сервер и разместите сайт в Linux

Как включить 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

Теперь снова найдите слово «Местоположение» или прокрутите вниз, пока не найдете раздел 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 и ограничения каталога в соответствии с вашими потребностями. Например, я упрощаю это с помощью Разрешить заказ, запретить, и это разрешено для всех.

<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 
    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>

Включить расширенный статус

Настройки «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

Как только синтаксис будет ОК, вы сможете перезапустить службу 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 интерфейс отображает всю информацию о время работы сервера, идентификаторе процесса с его соответствующим client — страница, к которой они пытаются получить доступ.

Он также показывает значение и использование всех сокращений, используемых для отображения статуса, что помогает нам лучше понять ситуацию.

Вы также можете обновлять страницу каждые несколько секунд (скажем, 5 секунд), чтобы видеть обновленную статистику. Чтобы настроить автоматическое обновление, добавьте «?refresh=N» в конце URL. Где N можно заменить на количество секунд, в течение которых вы хотите, чтобы ваша страница обновлялась.

http://serveripaddress/server-status/?refresh=5

Просмотр страницы состояния из командной строки

Вы также можете просмотреть страницу состояния Apache из интерфейса командной строки, используя специальные браузеры командной строки, называемые ссылками или 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 — это очень удобный инструмент мониторинга производительности активности веб-сервера, который может сам выявлять проблемы. Для получения дополнительной информации прочтите страницу статуса, которая поможет вам стать более успешным администратором веб-сервера.

  1. Домашняя страница Apache mod_status

На данный момент это все, что касается mod_status. В будущих руководствах мы предоставим еще несколько приемов и советов по Apache. А до тех пор оставайтесь интересными, следите за обновлениями на linux-console.net и не забудьте добавить свои ценные комментарии.