Назад | Перейти на главную страницу

Как связать трафик сервера с доменом, размещенным на этом сервере?

У меня три или четыре Linux-сервера, на каждом из которых размещается от 5 до 50 доменов. У каждого домена своя папка:

/ www / название проекта / web /

Журналы входят:

/ www / название проекта / журнал

Однако, если есть всплеск трафика (или, как я вижу это со своей стороны, всплеск использования памяти), я не уверен, как определить, какой домен отвечает за трафик, не выполняя tail -f для каждого из проектов. и делать обоснованное предположение, основанное на скорости прокрутки.

Должен быть способ получше! Наверное, есть, но я этого не видел. И в последний раз, когда я проверял, мониторы пропускной способности сообщают только о загрузке всей системы.

Так что, если кто-нибудь знает, как это сделать правильно, дайте мне знать.

Спасибо!

РЕДАКТИРОВАТЬ: Моя цель - сделать что-то, что дает мгновенную обратную связь. Я знаю, что могу настроить Apache на регистрацию отправленных и полученных байтов, но это не обязательно помогает, если мой сервер ломается, и я пытаюсь выяснить, с какого домена идет весь трафик.

Вы также можете включить страницу состояния 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> 

Взгляните на плагин mod_cband. Затем вы можете предоставить уровни трафика в реальном времени для каждого из ваших вирусных доменов, если вы добавите плагин в файл конфигурации для каждого домена. Просто используйте одно и то же табло для каждого домена. Страница / cband-status предоставит вам статистику текущего уровня трафика для каждого домена.

Вы можете использовать apachetop:

apachetop -f /www/projectname/log/access_log 

Он дает вам статистику по входу и выходу BW для указанного журнала.

Когда вы используете виртуальный хостинг (несколько доменов на одном IP-адресе), вы можете измерить трафик только путем анализа файлов журнала Apache. Только apache знает, для какого хоста был сделан запрос, потому что так работает виртуальный хостинг.

В этом случае вы можете добавить отдельную строку CustomLog для каждого виртуального хоста, например:

CustomLog $ {APACHE_LOG_DIR} /host.domain.net.log вместе

Затем вы можете использовать программное обеспечение для обработки журналов, такое как webalizer, для обработки журнала, суммируя байты для каждого ответа и вычисляя приблизительное значение трафика для этого домена.

Это приблизительное значение, поскольку оно не включает байты в запрос часть коммуникации и не включает накладные расходы.

Однако, если вы просто пытаетесь увидеть, какой сайт забивается, вам, возможно, следует просто разрешить доступ к странице / server-status, которая покажет вам, откуда происходят все текущие / недавние действия.

Если вам действительно нужен точный подсчет байтов, единственная возможность - использовать виртуальный хостинг на основе IP и использовать программное обеспечение для подсчета фактических байтов трафика на каждый IP-адрес. В таких ситуациях лучшее программное обеспечение, которое я нашел, - это pmacctd 'Promiscuous Mode Accounting Daemon', который отлично справляется с учётом трафика по IP.

С уважением, Эндрю Макмиллан.