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

Инструменты анализа журнала apache для нескольких виртуальных хостов?

Мне интересно попытаться провести параллельное сравнение использования всех виртуальных хостов, обслуживаемых моим сервером 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