Apache: включение server-status

Автор: | 08/27/2012
 

Проверим наличие необходимых модулей:

# cat /usr/local/etc/apache22/httpd.conf | grep info_module
LoadModule info_module libexec/apache22/mod_info.so

# cat /usr/local/etc/apache22/httpd.conf | grep status_module
LoadModule status_module libexec/apache22/mod_status.so

По-умолчанию Apache собирается уже с ними.

В файл конфигурации сервера Apache /usr/local/etc/apache22/httpd.conf добавляем:

ExtendedStatus On

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

Теперь страница будет доступна для просмотра с localhost и с второго указанного IP. Рекомендуется ограничить доступ, т.к. содержит информацию о сервере.

Теперь — можно посмотреть прямо из консоли, например с помощью браузера lynx:

# lynx http://localhost/server-status/

Или в браузере —  http://website.co.ua/server-status

Можно указать автоматически обновлять страницу каждые 5 секунд, тогда в браузере указываем:

http://website.co.ua/server-status/?refresh=5

Для более удобного вывода информации — можно использовать скрипт Visualize Apache Server Status.

Скачать его можно тут>>>.

Для его корректной работы потребуется снять ограничение в httpd.conf. Меняем:

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

На:

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

Что бы все-таки ограничить доступ — можно воспользоваться средствами .htaccess, подробнее тут>>>.

В каталоге нужного виртуалхоста (сайта) сервера создадим каталог status:


# mkdir status

Качаем архив:

# fetch http://www.phpclasses.org/browse/download/targz/package/3613/name/parse_server_status-2006-12-30.tar.gz
fetch: http://www.phpclasses.org/browse/download/targz/package/3613/name/parse_server_status-2006-12-30.tar.gz: size of remote file is not known
parse_server_status-2006-12-30.tar.gz                   12 kB 2381 kBps

Распаковываем его, и получаем пачку файлов:

# ls -la
total 164
drwxr-xr-x  3 website  website    512 Aug 27 11:20 .
drwxr-xr-x  7 root     website   1024 Aug 27 11:35 ..
-rw-r—r—  1 website  website     43 Aug 27 11:20 blank.gif
-rw-r—r—  1 website  website   2679 Aug 27 11:20 class.parse_server_status.php
-rw-r—r—  1 website  website    384 Aug 27 11:31 inc.config.php
drwxr-xr-x  2 website  website    512 Aug 27 11:20 parse_server_status-2006-12-30
-rw-r—r—  1 website  website  84402 Aug 27 11:20 screen1
-rw-r—r—  1 website  website  49046 Aug 27 11:20 screen2
-rw-r—r—  1 website  website   3230 Aug 27 11:20 serverstatus.php
-rw-r—r—  1 website  website   2918 Aug 27 11:20 serverstatus2.php

Файл inc.config.php содержит настройки, в него добавляем наш сервер:

$refreshtime = 2;
$scalefaktor = 1;

// URL of the Apache2 serverstatus-page
$statusurl = «http://website.co.ua/server-status»;
?>

refreshtime — периодичность обновления в секундах, scalefaktor  — масштаб графиков.

Переходим по адресу http://website.co.ua/status/serverstatus.php и получаем такую картинку:

Файл serverstatus2.php выводит ту же информацию, но в другом виде: