У меня есть веб-приложение, работающее с nginx, и я хотел бы проанализировать журналы, чтобы получить информацию о том, сколько обращений получает каждый файл, и какие ошибки 404 и другие ошибки мы генерируем (чего не может предоставить Google Analytics).
Обычно я просто сбрасываю awstats на сервере, но с nginx из-за отсутствия cgi-bin это не тривиально. Есть ли еще один тривиальный способ получить эту информацию? Я не против заплатить третьей стороне, которая сделает этот анализ за меня.
Ты можешь использовать доступ для анализа ваших веб-журналов и получения сводки обращений, уникальных IP-адресов, самых популярных статических файлов, самых популярных 404-х адресов, различных кодов состояния и т. д. Он отображает сначала сводку информации верхнего уровня, а затем позволяет вам в интерактивном режиме детализировать каждую основную главу. Вы загружаете его в лог-файл или канал, и это очень быстро.
Я обнаружил его здесь, в SF, и с тех пор он изменил мой взгляд на журналы веб-сервера: я склонен проводить гибкий анализ журналов, ориентированный на проблемы, и был недоволен аналогом, awstats и webalizer.
Если вы хотите запачкать руку, я бы посоветовал вам использовать Logstash + ElasticSearch + Кибана.
Он может делать гораздо больше, чем вы просите, но он может хорошо выполнять то, о чем вы просите, и у вас будет настоящий интерфейс для просмотра ваших журналов, чтобы понять, что происходит - или происходило -.
Это демо Kibana интернет сайт
Это сообщение в блоге, в котором показано, как он был настроен для анализа Apache Tomcat с помощью этой платформы, вы можете просто адаптировать его к своим потребностям: http://spredzy.wordpress.com/2013/03/02/monitor-your-cluster-of-tomcat-applications-with-logstash-and-kibana/
На этой неделе мне пришлось использовать awstats с Nginx, и вам не обязательно использовать cgi-bin. Awstats поставляется со скриптом awstats_buildstaticpages.pl, который генерирует статические html-файлы, которые затем можно использовать с Nginx. С помощью cron я регулярно обновляю файлы html.
/usr/share/doc/awstats/examples/awstats_updateall.pl now -awstatsprog=/usr/lib/cgi-bin/awstats.pl
/usr/share/awstats/tools/awstats_buildstaticpages.pl -update -config=domain.com -dir=/path/to/save/html/files awstatsprog=/usr/lib/cgi-bin/awstats.pl
(В зависимости от вашей ОС пути могут немного отличаться, но вы сможете найти скрипты)
Чтобы предотвратить потерю данных во время ротации журнала, вы можете добавить эту строку в свой файл awstats.domain.com.conf:
LogFile="/usr/share/awstats/tools/logresolvemerge.pl /path/to/log/access.domain.tld.log /path/to/log/access.domain.tld.log.1 |"
Скрипт объединит последние 2 журнала всякий раз, когда вы получите журнал для обновления данных. Или вы можете добавить хук pre-logrotate на Nginx, как здесь: http://www.bytetouch.com/blog/system-administration/how-to-awstats-installation-and-configuration-on-debian/
Зависит от требуемого уровня функциональности, но AFAIK можно заставить AWStats генерировать статические файлы - таким образом, нет необходимости в cgi.
Наоборот - должна быть возможность запустить AWStats как сценарий FastCGI. Я бы сказал, что это не будет даже лишним взломом.