Как в apache мониторить активность в режиме mod_php?

Аватар пользователя admin

Собственно всё что нужно для мониторинга активности apache предоставляет он сам. Необходимо лишь включить штатные возможности, правда для CentOS 5,6 и для CentOS 7 способы включения несколько отличаются. Поэтому далее отдельно по каждому случаю...

В CentOS 5 и CentOS 6 (потому что в нём Apache 2.2):

1. В httpd.conf найти и раскомментировать строку:

LoadModule status_module modules/mod_status.so

2. В httpd.conf найти и раскомментировать строку:

ExtendedStatus On

3. В httpd.conf найти и раскомментировать блок:

<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
</Location>

4. Добавить или исправить в данном блоке права доступа. По умолчанию (в примере выше) доступ к URL /server-status разрешён только с IP-адреса 127.0.0.1. Понятное дело, что так далеко не всегда удобно. Вы можете ниже добавить свои директивы:

Allow from xxx.xxx.xxx.xxx

где xxx.xxx.xxx.xxx это IP-адрес или маска подсети или имя домена/машины с которой вы хотите получить доступ к /server-status.

В CentOS 7 (потому что в нём Apache версии 2.4):

1. Убедится, что строка

LoadModule status_module modules/mod_status.so

в файле /etc/httpd/conf.modules.d/00-base.conf присутствует и не закомментирована.

2. Создать файл /etc/httpd/conf.d/status.conf со следующим содержимым:

<Ifmodule mod_status.c>
ExtendedStatus On
<Location /server-status>
    SetHandler server-status
    Require ip 127.0.0.1
</Location>
</Ifmodule>

Где после "Require ip 127.0.0.1" вы можете добавить аналогичные строки с теми IP адресами (или подсетями) с которых вы хотите разрешить доступ.

Теперь по идее вы можете открыть браузер и набрать в адресной строке http://youserver.ru/server-status (где youserver.ru заменяете на имя или даже IP-адрес своего сервера), чтобы увидеть статистику, которую предоставляет вам apache в плане мониторинга активности.

По идее, вы должны увидеть статистику, но есть одно важное обстоятельство. Если вместо статистики вы видите ошибку вашего сайта, о том, что страница не найдена, то скорее всего вам понадобится донастроить правила mod_rewrite в .haccess в корне сайта. Многие CMS, например Bitrix используют конструкции вида:

        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-l
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
        RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]

из которых становится понятно, что необходимо добавить к строка RewriteCond ещё одну строку, для исключения из обработки URL: /server-status, т.е.

        RewriteCond %{REQUEST_FILENAME} !/server-status

Вот после добавления этой строки должно всё заработать.

Всё бы хорошо, но такая статистика не очень-то удобна для восприятия - какие-либо возможности по сортировке отсутствуют. Поэтому есть очень классная утилита, написанная Карлесом Амиго (Carles Amig?) на Python. Брать здесь: http://www.fr3nd.net/stuff/projects/apache-top/apache-top.py.

0
Ваш рейтинг: Нет