Как связать трафик сервера с доменом, размещенным на этом сервере?
У меня есть три или четыре сервера Linux, на каждом из которых размещено от 5 до 50 доменов. Каждый домен имеет свою собственную папку:
/ WWW / имя_проекта / веб /
Логи идут в:
/ WWW / имя_проекта / журнал
Однако, если есть всплеск трафика (или, как я вижу, с моей стороны, всплеск использования памяти), я не уверен, как определить, какой домен отвечает за трафик, без выполнения tail -f в каждом из проектов. и сделать обоснованное предположение, основанное на том, как быстро все прокручивается.
Должен быть лучший способ! Наверное, есть, но я этого не видел. И в последний раз, когда я проверял, мониторы пропускной способности сообщают только о загрузке всей системы.
Так что, если кто-нибудь знает, как сделать это правильно, пожалуйста, дайте мне знать.
Спасибо!
РЕДАКТИРОВАТЬ: Моя цель для чего-то, что дает мгновенную обратную связь. Я знаю, что могу настроить Apache для регистрации отправленных и полученных байтов, но это не обязательно помогает, если мой сервер забивается, и я пытаюсь выяснить, из какого домена весь трафик.
4 ответа
Вы также можете включить страницу состояния Apache и ограничить ее своим IP-адресом, а затем искать тенденции, по которым запрашиваются страницы.
Пример вывода: http://www.apache.org/server-status
Конфигурация:
<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from <your IP>
</Location>
Вы можете использовать apachetop:
apachetop -f /www/projectname/log/access_log
Это дает вам статистику о BW и для указанного журнала.
Посмотрите на плагин mod_cband. Затем вы можете предоставить уровни трафика в реальном времени для каждого из ваших виртуальных доменов, если вы добавите плагин в файл конфигурации для каждого домена. Просто используйте одно и то же табло для каждого домена. Страница /cband-status предоставит вам статистику текущих уровней трафика для каждого домена.
Когда вы используете виртуальный хостинг (несколько доменов на одном IP-адресе), вы можете измерять трафик только путем анализа лог-файлов Apache. Только Apache знает, для какого хоста был запрос, потому что так работает виртуальный хостинг.
В этом случае вы можете добавить разные строки CustomLog для каждого виртуального хоста, например:
CustomLog $ {APACHE_LOG_DIR} /host.domain.net.log в сочетании
Затем вы можете использовать программное обеспечение для обработки журналов, такое как webalizer, для обработки журнала, суммируя байты для каждого ответа и получая приблизительное количество трафика для этого домена.
Это приблизительное значение, поскольку оно не включает байты в части запроса и не включает служебные данные.
Однако если вы просто пытаетесь увидеть, какой сайт забивается, вам, возможно, следует просто включить доступ к странице / server-status, которая покажет вам, откуда поступают все текущие / последние действия.
Если вам действительно нужно точное количество байтов, единственная возможность - использовать виртуальный хостинг на основе IP и использовать программное обеспечение для подсчета фактических байтов трафика на каждый IP-адрес. В этих ситуациях лучшее программное обеспечение, которое я нашел, - это pmacctd "Учет учета демона случайного режима", который отлично справляется с учетом трафика по IP.
С уважением, Эндрю Макмиллан.