У меня есть Apache, настроенный для обслуживания нескольких виртуальных хостов, и я хотел бы посмотреть, какую пропускную способность использует каждый сайт. Я могу видеть, сколько использует весь сервер, но я хотел бы получить более подробные отчеты.
Большинство вещей, которые я обнаружил, предназначены для ограничения пропускной способности для виртуальных хостов, но я не хочу этого делать; Я просто хочу посмотреть, какие сайты используют сколько пропускной способности.
Это не для выставления счетов, просто для информации.
Должен ли я использовать модуль apache? Или есть другой способ сделать это?
источник
Awstats - один из способов сделать это, но, вероятно, не самый лучший
источник
Я предлагаю вам использовать замечательный механизм ведения журнала Apache и его менее известные флаги % I и % O :
Определите формат:
Используйте его в своем основном httpd.conf :
Значения, вероятно, не учитывают всю информацию заголовков, но достаточно точны, чтобы иметь точное представление о трафике VirtualHost.
Сканируйте журналы с помощью сценария perl, чтобы агрегировать данные для каждого виртуального хоста каждые n минут (например, 5) и отправлять их в cacti.
Эти флаги предоставляются mod_logio, который, вероятно, встроен в ваш Apache (как и для моего Apache Debian).
источник
Если вы решите использовать awstats с Apache, из коробки будет показана суммарная пропускная способность для всего вашего сервера.
Чтобы увидеть пропускную способность для каждого виртуального хоста, я рекомендую установить vlogger .
Vlogger фактически собирает информацию журнала доступа Apache для каждого из ваших виртуальных хостов, которые вы настроили для этого, в отдельных каталогах / файлах.
Например, если ваш файл журнала Apache находится в / var / log / apache2, типичная установка vlogger создаст что-то вроде этого для ваших виртуальных хостов (например, vhost1.com vhost2.com):
Vlogger дает вам возможность вращать эти журналы для вас, предоставляет способ изменить шаблон именования файла журнала доступа (например, добавить дату) и утверждает, что обрабатывает большое количество файлов журнала лучше, чем Apache.
Недостатком этого является то, что у вас больше не будет агрегированного представления сервера (вам нужно будет агрегировать журналы отдельно или, возможно, использовать дополнительную настройку apache или, возможно, какой-то другой метод?).
Я бы предостерег от использования Google Analytics (или любого отслеживания на основе javascript) для мониторинга пропускной способности сервера, поскольку вы полагаетесь на то, что клиент будет отправлять отчеты через javascript. GA не сообщает вам людей, у которых отключен JavaScript, а также никаких сканеров / пауков / ботов.
источник
Вот некоторое регулярное выражение для анализа формата журнала, предложенного Xerxes.
\ [([0-9] +) / (\ W +) / ([0-9] {4}) [^ \]] + \] \ S (\ d {1,3}. \ Д {1, 3}. \ д {1,3}. \ д {1,3}) \ с ([^ /] +) [^ \ s] + \ с (\ d +) \ s (\ d +)
Пример журнала:
[12 января 2011: 14: 25: 04 +0000] 157.157.12.206 files.hjaltijakobsson.com / 581 669 [12 / Jan / 2011: 14: 25: 04 +0000] 157.157.12.206 files.hjaltijakobsson.com / 624 747 [12 / Jan / 2011: 14: 25: 04 +0000] 157.157.12.206 files.hjaltijakobsson.com /icons/blank.gif 687 186 [12 / Jan / 2011: 14: 25: 04 +0000] 157.157. 12.206 files.hjaltijakobsson.com /icons/compressed.gif 693 188 [12 / Jan / 2011: 14: 25: 04 +0000] 157.157.12.206 files.hjaltijakobsson.com /favicon.ico 592 512
Матчи:
Подшаблон 1 (день месяца): 12
Подшаблон 2 (сокр. Месяц): янв.
Подшаблон 3 (год): 2011
Подпаттерн 4 (хост-посетитель): 157.157.12.206
Подкаталог 5 (виртуальный хост): files.hjaltijakobsson.com
Подкатегория 6 ( входящие байты): 581
подшаблон 7 (исходящие байты): 669
Приветствия.
источник
Немного измените принятый ответ, предполагая, что на сервере действительно несколько vhosts (и, следовательно, несколько site.com.access_log's). Это будет сортировать и перечислять каждого vhost
и для каталога gzipped журналов
источник
Хм, вы можете получить зло с IPTables и соответствием строки, чтобы зарегистрировать пакеты для более позднего сообщения. Будет работать только для не SSL-соединений.
Или что-то, поддерживающее протокол и сеанс, например Snort, может быть использовано для использования ...
источник
Правильный. Фильтрация журнала - хорошая идея. Я также хочу получить пропускную способность моего сервера Apache при загрузке файлов.
Вычисляет
%b
и%d
вывод, который даст вам пропускную способность тока.источник