Я работаю над реализацией Varnish в качестве обратного прокси для приложения Ruby on Rails, и я использую Google Analytics (JS / клиентский скрипт для записи данных о посетителях), но он задерживается на несколько часов, поэтому его бесполезно знать, что происходит сейчас. Мне нужно с первого взгляда жить данные, которые включают ссылающийся трафик и текущие требования в секунду. Прямо сейчас я использую простое промежуточное программное обеспечение Rack для получения статистики в реальном времени (gist.github.com/235745), но если большая часть трафика попадет в Varnish, Rack никогда не будет задействован, поэтому это не сработает.
Ближайшее решение, которое я нашел до сих пор, - http://www.reinvigorate.net/ но он находится в стадии бета-тестирования (на их главной странице также нет подробностей реализации).
Есть ли у Varnish журналы трафика, которые я могу настроить в соответствии с моими журналами Apache, чтобы я мог их комбинировать, или мне придется использовать собственную реализацию JS, такую как GA, которая показывает данные в реальном времени?
Varnish не регистрируется по соображениям производительности. Они действительно позволяют получить доступ к shm с помощью varnishncsa, однако у вас есть несколько вариантов.
Если большинство ваших пользователей поддерживают javascript (именно так работает Google Analytics), вы можете разместить небольшую веб-ошибку где-нибудь на своей странице, которая обновит процесс. В качестве альтернативы вы можете определить конкретное изображение как проход, а затем проанализировать свои журналы серверной части, поскольку каждый запрос будет отправлять этот запрос в серверную часть.
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-адрес клиента.
Если вы хотите реальное время информация, вы должны посмотреть на varnishtop
и varnishstat
команды. Оба они обновляются каждую секунду. Если вы можете выдержать отставание на несколько минут, вы можете подумать об использовании графического инструмента, такого как Монит или Кактусы.
См. Это сообщение в блоге для введение в использование varnishstat.
Посмотри на varnishncsa
, в частности, параметр -c. Вероятно, это то, что вы хотите.