У меня три или четыре 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.
С уважением, Эндрю Макмиллан.