Я размещаю довольно много виртуальных хостов, используя Apache в базовой LAMP, настроенной с помощью Webmin / Virtualmin. Я ищу топ-инструмент, в котором я могу отслеживать текущие соединения. Часть виртуального хостинга, кажется, доставляет мне неприятности. Вот что я попробовал:
netstat
- Я вижу соединения, но они показывают мне, как будто они все используют мой основной домен, напримерmydomain.com:www
.iftop
- Мне это очень нравится, но похожий недостатокnetstat
: не показывает виртуальный хост.apachetop
- кажется, показывает не информацию для всех моих виртуальных хостов. Я веду журнал для отдельных пользовательских файлов журналов, которые, как я подозреваю, являются причиной, почему это не работает.ntop
,darkstat
,MRTG
,bwm-ng
,IPTraf
- не работает , либо.
Так, в принципе, я ищу что - то подобное токовому выходу netstat
, но включить виртуальный хост запрос для, например: avirtualsite.com:www
.
apache2
websites
virtualhost
webmin
Петр Кула
источник
источник
apachetop
- но он только контролирует файл, который я предоставляю .. черт не все серверы ...Ответы:
Ответ Андреа Корбеллини объясняет, почему он не будет работать с инструментами, которые вы используете, и как работает виртуальный хостинг. Вот самый простой способ, которым я могу придумать, чтобы сделать это в Apache ...
mod_status
поможет вам.Отказ от ответственности: я не могу сказать, как это делается в Webmin - я использую файлы конфигурации для настройки серверов. Вот лишь краткий обзор шагов.
Это
top
похожий инструмент, но представленный в виде веб-страницы. Он отображает текущее состояние, напрямую запрашиваемое у Apache, поэтому он не зависит от анализа файлов журнала, как этоapachetop
делается.Включить
mod_status
:Предоставь себе доступ.
/etc/apache2/mods-enabled/status.conf
и редактировать:ExtendedStatus
вOn
( не обязательно, но более обалденный и немного медленнее)В пределах
<Location /server-status>
, добавьте свой IP-адрес в строку сAllow
директивой. Пример:Перезапустите Apache:
Наслаждайтесь инструментом в вашем браузере, например:
http://1.2.3.4/server-status
Это будет похоже на этот пример скриншота .
Продолжайте нажимать, F5чтобы получать обновления. Или получите отличный плагин для браузера и смотрите, как он обновляется!
Webmin
приложение от ОП для будущих посетителей
В Webmin основные шаги по модулю статуса можно найти здесь:
источник
Все инструменты, которые вы пробуете, никогда не дадут вам правильного ответа. Причина в том, что запрашиваемая вами информация теряется при установлении соединения.
Давайте рассмотрим пример: предположим, что у вашего веб-сервера есть один IP-адрес ( 1.2.3.4 ) и два имени хоста ( a.mydomain.com и b.mydomain.com ), которые соответствуют этому IP-адресу.
Что происходит, когда вы используете свой любимый веб-браузер при посещении сайта a.mydomain.com ?
Так
netstat
и Ко. Знайте только, что есть входящее соединение с 1.2.3.4 . Причина, по которой вы видите имя хоста вместо IP-адреса, состоит в том, что IP-адрес имеет запись rDNS, поэтомуnetstat
предпочитает показывать это вместо IP-адреса , потому что он лучше. Попробуйтеnetstat -n
(или удалите запись rDNS), и вы увидите IP-адрес.Но это еще не все: когда я сказал, что информация об имени хоста, которое использовалось для установления соединения, была потеряна, я был не совсем прав. С точки зрения стека TCP / IP это предложение верно. Но если мы увидим вещи с точки зрения протокола HTTP, все будет иначе. В каждом HTTP-запросе есть
Host:
заголовок, содержащий имя хоста, которое использовалось браузером для выполнения запроса.Итак, вкратце, вы должны посмотреть файлы журналов вашего веб-сервера. Веб-сервер - это служба, которая обрабатывает запросы HTTP, и, следовательно, единственная служба, которая знает об «исходном» имени хоста.
источник
Другой способ заключается в наборе
в вашем терминале
источник
access.log
он не содержит все запросы. Вместо этого я смотрю,/usr/local/apache/domlogs/
чтобы увидеть запросы по виртуальному хосту (разделенные на SSL, не-SSL и даже FTP). Путь может быть другим в Ubuntu cPanel./var/log/httpd/access_log
С помощью этого bash вы можете проверить все ips, подключенные к порту 80
Примечание: если вы хотите увидеть другой порт, измените 80
ВЫХОД:
источник
Вы можете проверить это с:
источник
Если вы хотите pid, user и command:
источник
Вы также можете использовать GoAccess в интерактивном режиме для просмотра ваших текущих посетителей. Для этого он анализирует ваш журнал доступа Apache и показывает статистику вашего сайта.
источник