Чтобы выяснить, какие страницы наиболее популярны, сначала из журнала извлекаются запрошенные страницы, и из их числа исключаются все файлы изображений
. Далее вызывается команда uniq −c для сортировки и определения числа вхождений каждой уникальной записи. В финале выполняется еще одна сортировка, чтобы страницы с наибольшим количеством вхождений оказались в начале списка. Вся эта процедура выполняется строкой
.
Обратите внимание, как попутно выполняется нормализация: команда sed отсекает завершающие символы слеша, чтобы имена, такие как /subdir/ и /subdir, воспринимались как одно и то же.
Аналогично разделу, извлекающему десяток наиболее популярных страниц, раздел
извлекает информацию о ссылающихся доменах.
Этот блок извлекает из журнала значение поля 11, отфильтровывает записи, относящиеся к текущему хосту, а также содержащие "-" (значение, передаваемое веб-браузерами, в которых включена блокировка передачи ссылочной информации). Полученные результаты передаются той же последовательности команд −sort|uniq −c|sort −rn|head -10, чтобы получить десяток самых активных ссылающихся доменов.
Чтобы запустить этот сценарий, передайте ему единственный аргумент с именем файла журнала Apache (или другого веб-сервера, поддерживающего обобщенный формат журналирования).
Результаты обработки этим сценарием типичного файла журнала содержат много полезной информации, как можно видеть в листинге 10.2.
Листинг 10.2.Результаты обработки журнала access_log веб-сервера Apache с помощью webaccess
$ webaccess /web/logs/intuitive/access_log
Results of analyzing log file access_log
··Start date:··01/May/2016 at 07:04:49
····End date:··04/May/2016 at 01:39:04
········Hits:··7,839 (total accesses)
··Pageviews:·· 2,308 (hits minus graphics)
Transferred:·· 25,928,872,755 bytes
The 10 most popular pages were:
266
118 /CsharpVulnJson.ova
··92 /favicon.ico
··86 /robots.txt
··57 /software
··53 /css/style.css
··29 /2015/07/01/advanced-afl-usage.html
··24 /opendiagnostics/index.php/OpenDiagnostics_Live_CD
··20 /CsharpVulnSoap.ova
··15 /content/opendiagnostics-live-cd
The 10 most common referrer URLs were:
108 "https://www.vulnhub.com/entry/csharp-vulnjson,134/#"
··33 "http://volatileminds.net/2015/07/01/advanced-afl-usage.html"
··32 "http://volatileminds.net/"
··15 "http://www.volatileminds.net/"
··14 "http://volatileminds.net/2015/06/29/basic-afl-usage.html"
··13 "https://www.google.com/"
··10 "http://livecdlist.com/opendiagnostics-live-cd/"
··10 "http://keywords-monitoring.com/try.php?u=http://volatileminds.net"
·· 8 "http://www.volatileminds.net/index.php/OpenDiagnostics_Live_CD"
·· 8 "http://www.volatileminds.net/blog/"
Усовершенствование сценария
Одна из проблем, возникающих при анализе файлов журналов веб-сервера Apache, обусловлена тем, что часто на одну и ту же страницу ссылаются два разных URL; например, /custer/ и /custer/index.html . Блок определения десяти наиболее популярных страниц должен учитывать это. Преобразование, выполняемое командой sed, уже гарантирует, что /custer и /custer/ не будут интерпретироваться как разные URL, но определить имя файла по умолчанию для данного каталога может оказаться сложной задачей (особенно если это имя определяется специальными настройками в конфигурации веб-сервера).
Информацию о десятке самых активных ссылающихся доменов можно сделать еще более полезной, если оставить в ссылающихся адресах URL только базовое имя домена (например, slashdot.org ). Сценарий № 74 идет в этом направлении чуть дальше и анализирует дополнительную информацию, доступную в поле ссылающегося домена. В следующий раз, когда весь десяток самых активных ссылающихся доменов будет заполнен ссылками на slashdot.org , вы не сможете оправдаться незнанием!
№ 74. Трафик поисковых систем
Сценарий № 73 предлагает широкий обзор запросов некоторых поисковых систем к вашему сайту, но дальнейший анализ может показать не только какие из этих систем способствуют увеличению потока посетителей, но также какие ключевые слова они вводили в строке поиска. Полученная информация поможет определить, насколько точно ваш сайт индексируется поисковыми системами. Более того, опираясь на полученные данные, вы сможете повысить ранг и релевантность вашего сайта в поисковых системах. Однако, как упоминалось выше, эта дополнительная информация постепенно признается недопустимой разработчиками Apache и веб-браузеров. В листинге 10.3 приводится сценарий командной оболочки, извлекающий ее из журналов Apache.
Читать дальше