Как в apache мониторить активность в режиме mod_php?
Собственно всё что нужно для мониторинга активности 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.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- 3407 просмотров