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

Анализатор логов для nginx

У меня есть веб-приложение, работающее с 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. Я бы сказал, что это не будет даже лишним взломом.