Как то спрашивал на форумах, нет ли какой готовой штуковины, чтобы смотреть кто выжирает ресурсы сервера посайтово и поурлово. Оказалось, что вроде бы ничего готового нету, по крайней мере ничего толкового мне не посоветовали, поэтому пришлось придумать своё.
Первым делом, надо было подумать, по какой информации можно судить о том, что именно запросы к данному домену грузят сервер? В наборе LAMP точно количественно определить это кажется нельзя, по крайней мере я не нашёл, поэтому надо определиться с косвенными признаками. В качестве косвенных признаков для оценки нагрузки я решил взять количество запросов на данный конкретный домен и время исполнения оных запросов. Всё это можно вытянуть из логов апача, но их сначала надо слегка модифицировать, чтобы отдавалось нужное. К строке LogFormat куда-то дописать %T – это время исполнения запроса и %h – это хост к которому обращается запрос, ещё где-то не помню где надо указать, чтобы логировались все запросы, пут и гет. Дальше дело техники – пишем скриптик, который построчно выкусывает из лога хосты, хиты и время исполнения и складывает в ассоциативные массивы, а дальше скармливает цифирь для системы отображения статистики, например для Munin. Последнюю обработанную строку надо куда-то сохранять, чтобы при последующем запуске скрипта начинать обрататывать лог со следующей строки. Получается примерно такая картинка с разбивкой по доменам:

time-by-host-munin-plugin

Специально не даю конкретный код плагина,  потому что там нет ничего особенно интересного, только пути к логам и пути к файлику с последней обработанной строчкой.

ЗЫ: Наброс по поводу праздничка:

Похожие посты