Мне интересно попытаться провести параллельное сравнение использования всех виртуальных хостов, обслуживаемых моим сервером apache.
В простейшем случае я хочу увидеть список (или гистограмму) с каждым виртуальным хостом и количеством запросов / трафика на этом сайте.
Я играл с webalyzer и awstats, но мне не удалось сравнить несколько виртуальных хостов в одной инфографике.
У кого-нибудь есть предложения по инструментам для этого (или как я могу использовать для этого вышеуказанные инструменты)?
Сначала вам нужно изменить формат журнала, чтобы виртуальный хост регистрировался в каждой записи журнала. Что-то вроде следующего даст вам комбинированный / расширенный формат с бонусом% v, который является именем виртуального хоста:
LogFormat "%h %v %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{Cookie}i\"" LogServerName
Затем, когда вы должны указать apache использовать этот формат журнала. Что-то вроде следующего можно добавить глобально или для отдельных виртуальных хостов (проще глобально). Фактически, у меня обычно есть строка выше, а эта в одном файле с именем /etc/httpd/conf.d/access_logging.conf:
CustomLog /var/log/httpd/global_access.log LogServerName
Как только это будет сделано, вы, по крайней мере, сможете отключать различные виртуальные хосты. Тогда вы можете использовать что-то вроде petit или уникальный сделать следующее.
кот /var/log/httpd/global_access.log | awk '{print $ 2}' | petit --hash
Кроме того, вы можете использовать racecar для анализа пропускной способности с чем-то вроде этого. Это может быть немного медленным для больших файлов, но это быстро и грязно.
for i in `cat /var/log/httpd/global_access.log | awk '{print $2}'`; do cat /var/log/httpd/global_access.log | grep $i | racecar; done
Ссылка на сайт: http://crunchtools.com/software/petit/ Ссылка на сайт: http://crunchtools.com/software/racecar/
Обычно при использовании виртуальных хостов у меня есть разные журналы доступа для каждого виртуального хоста. Если это так, и вам просто нужны хиты:
wc -l foo_vhosts.access*
Это подсчитывает строки, которые будут входить в журнал, что в основном показывает, сколько у вас получилось. Но вы должны описать, входите ли вы в разные файлы или нет, и опубликовать пример записи журнала.
Если вы не входите в разные файлы, и ваш формат ведения журнала не включает %v
в его формате вам не повезло, если вы не можете соотнести каждый uri с его виртуальным хостом.
@kyle, cut -f 1 -d '' объединенный журнал | сортировка | uniq -c | sort -nr