Получение живого трафика / аналитика посетителей при использовании обратного прокси

Я нахожусь в процессе внедрения Varnish в качестве обратного прокси-сервера для приложения Ruby on Rails и использую Google Analytics (JS/ клиентский скрипт для записи данных о посетителях), но это задерживается на несколько часов, поэтому его бесполезно знать, что происходит сейчас, Мне нужно с первого взгляда живые данные, которые включают в себя ссылающийся трафик и каково текущее требование / сек. Прямо сейчас я использую простое приложение промежуточного программного обеспечения Rack для выполнения оперативной статистики (gist.github.com/235745), но если большая часть трафика попадает в Varnish, Rack никогда не попадет, поэтому это не сработает.

Самое близкое решение, которое я нашел до сих пор, это http://www.reinvigorate.net/ но оно находится в стадии бета-тестирования (также нет подробностей реализации на их главной странице).

Имеются ли у Varnish журналы трафика, которые я могу настраивать в соответствии со своими журналами Apache, чтобы я мог их комбинировать, или мне придется свернуть свою собственную реализацию JS, например GA, которая показывает данные в реальном времени?

3 ответа

Лак не регистрируется по соображениям производительности. Они позволяют вам получить доступ к shm с помощью varnishncsa, однако у вас есть несколько вариантов.

Если большинство ваших серферов поддерживают javascript (именно так Google Analytics выполняет свою работу), вы можете разместить небольшую веб-ошибку на своей странице, которая обновит процесс. В качестве альтернативы, вы можете определить конкретное изображение как pass, а затем проанализировать ваши журналы бэкэнда, так как каждый запрос отправляет этот бэкэнд.

 if (req.url == "^tracker.jpg$") {
    pass
 }

tracker.jpg может легко быть своего рода сценарием для вставки данных в локальный журнал, или вы можете запустить анализ журналов в блогах веб-сервера бэкэнда http. Если вы используете apache:

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" varnishcombined
CustomLog /var/log/apache2/domain.com-access.log varnishcombined

Будет использовать заголовок X-Forwarded-For в столбце, где большинство программ анализа журналов ожидают увидеть IP-адрес клиента.

Посмотри на varnishncsaв частности, опция -c. Это, вероятно, то, что вы хотите.

Если вам нужна информация в реальном времени, вы должны посмотреть на varnishtop а также varnishstat команды. Оба из них обновляются каждую секунду. Если вы можете быть в отставке на несколько минут, вы можете подумать об использовании таких инструментов, как Monit или Cacti.

Смотрите этот пост в блоге для ознакомления с использованием varnishstat.

Другие вопросы по тегам