Я перепробовал несколько систем статистики посещений для сайтов. Когда-то давно пользовался анализаторами логов web-сервера Analog, Webalizer, AwStats. Но их возможности анализа были ограничены, например отслеживать возвращающихся посетителей с динамических IP-адресов было невозможно, отсев краулеров поисковых систем и прочих ботов можно было производить только вручную, да и визуальное оформление отчётов мне не нравилось. Поэтому Webalizer у меня работает до сих пор, но на его статистику я не смотрел уже больше года.
Дальше я использовал всяческие кнопки рейтингов со сбором статистики, но их наличие вступало в притиворечие с моим чувством прекрасного, и я быстро от них избавился. И наконец-то (на самом деле все методы я пробовал параллельно) я остановился на службах , и . Последняя система меня покорила всерьёз и надолго – в отличие от других систем она не только показывает активность посетителей в режиме реального времени (а у того же Google Analytics задержка на сутки), но и имеет красивый desktop-клиент, написанный на Java, что даёт возможность его запускать под Windows, MacOS и Linux.
Описывать Woopra я не буду – посмотреть её функциональность . Покажу свой скриншот закладки Dashboard:
Системой я пользуюсь давно и с удовольствием, но вчера обратил моё внимание на то, что при открытии этого блога в Opera раз в несколько секунд идёт странная сетевая активность, будто бы делается обновление страницы. Конечно же, как только зашла речь об исследовании сетевой активности, я привычно применил Wireshark, установку которого описал в статье “Готовимся анализировать сетевой трафик при помощи Wireshark“.
Открываю сайт http://theapplegeek.ru. Запускаю Terminal.app, затем консольную утилиту tshark:
sudo tshark -i en1 -R 'http.request.method == "GET"' \ -T fields -e frame.time -e http.host -e http.request.uri
- sudo Для захвата трафика требуются права администратора, sudo даёт их, запрашивая пользовательский пароль. Обратите внимание, что пользователь должен иметь права на администрирование компьютера (это выставляется в настройках учётной записи), иначе sudo выдаст сообщение “username is not in the sudoers file. This incident will be reported”.
- -i en1 Указывается интерфейс, который нужно прослушивать. Обычно en0 – ethernet, en1 – AirPort, но можно уточнить, запустив команду ifconfig. К сожалению мета-интерфейс “any”, позволяющий слушать трафик по всем интерфейсам, под MacOS не срабатывает.
- -R … Read (display) filter, определяет, что захватывать нужно только трафик, удовлетворяющий критерию.
- http.request.method == “GET” Критерий отбора – HTTP-запросы GET, стандартные обращения к web-серверам.
- -T fields Выводить поля из пакетов, перечисленные далее в параметрах “-e”.
- -e frame.time Время прихода пакета.
- -e http.host Имя хоста (поле Host: после запроса “GET /uri HTTP/1.1).
- -e http.request.uri URI.
Название полей можно найти в ““, например в описании . Второй вариант – можно захватить трафик в Wireshark, затем выделить интересующее поле, тогда в левой нижней части экрана на статус-баре будет отображено имя поля. Для того, чтобы появилась возможность захвата трафика в Wireshark, самый простой способ – его нужно запустить из Terminal.app командой “sudo wireshark”.
Вернёмся к Woopra. Отсеяв трафик других программ (dropbox, facebook и т.д.), получаем такие такие запросы:
Sep 19, 2009 19:08:19 woopra.com.woopra-ns.com /ping/cookie=DQHSOKCE25U9U37JYSOPC9FXNR3FPOEM&idle=0&ra=1XMYR9XSLF7RF0HND2BDK1QBEH3CZ4LT Sep 19, 2009 19:08:39 woopra.com.woopra-ns.com /ping/cookie=DQHSOKCE25U9U37JYSOPC9FXNR3FPOEM&idle=0&ra=PVXARGWAEXFQ25WAIEF4VJYEMKX65WBW Sep 19, 2009 19:08:41 theapplegeek.ru.woopra-ns.com /ping/cookie=ZO50TUOUOY37S133MNWTOB42QVKN3DE9&ra=IHN8DUX5C8ZAF5S4VV1AOBA4Y8ZDF643 Sep 19, 2009 19:08:50 woopra.com.woopra-ns.com /ping/cookie=DQHSOKCE25U9U37JYSOPC9FXNR3FPOEM&idle=0&ra=C2A88WBRW8S41PZFU9LLYZHTSCGP31C4 Sep 19, 2009 19:08:52 woopra.com.woopra-ns.com /ping/cookie=DQHSOKCE25U9U37JYSOPC9FXNR3FPOEM&idle=0&ra=DF1OD4USZAHPQKWOO65JZTL30LMLDZL4 Sep 19, 2009 19:09:06 theapplegeek.ru.woopra-ns.com /ping/cookie=ZO50TUOUOY37S133MNWTOB42QVKN3DE9&ra=BPE9FX2TKVLEQUZ01ZXTADRI2WSDJVJ0 Sep 19, 2009 19:09:11 woopra.com.woopra-ns.com /ping/cookie=DQHSOKCE25U9U37JYSOPC9FXNR3FPOEM&idle=0&ra=5ENUMAPTVGCFTYTVYE5BUPJ8RDD5V0RV Sep 19, 2009 19:09:23 woopra.com.woopra-ns.com /ping/cookie=DQHSOKCE25U9U37JYSOPC9FXNR3FPOEM&idle=0&ra=93RKHH6CEI6EZ42K7O70DHSOM6R90JJD Sep 19, 2009 19:09:24 woopra.com.woopra-ns.com /ping/cookie=DQHSOKCE25U9U37JYSOPC9FXNR3FPOEM&idle=0&ra=Y16BXDE2TY94LSQD00JY9YOUMBU28FKB Sep 19, 2009 19:09:31 theapplegeek.ru.woopra-ns.com /ping/cookie=ZO50TUOUOY37S133MNWTOB42QVKN3DE9&ra=N08KNNMAQGODTJMP6U2M3LBW5HZZA8QZ Sep 19, 2009 19:09:44 woopra.com.woopra-ns.com /ping/cookie=DQHSOKCE25U9U37JYSOPC9FXNR3FPOEM&idle=0&ra=LDM2WTP08FQAIKXGGAS4OEUQR9I9F9BG Sep 19, 2009 19:09:55 woopra.com.woopra-ns.com /ping/cookie=DQHSOKCE25U9U37JYSOPC9FXNR3FPOEM&idle=24&ra=QB20A1LXW26Q3D65RCC4O7ZDYGE7LA8N Sep 19, 2009 19:09:57 theapplegeek.ru.woopra-ns.com /ping/cookie=ZO50TUOUOY37S133MNWTOB42QVKN3DE9&ra=6YM6J00Q88JJPPYASVS37H7KJSZLDL6L Sep 19, 2009 19:09:57 woopra.com.woopra-ns.com /ping/cookie=DQHSOKCE25U9U37JYSOPC9FXNR3FPOEM&idle=36&ra=3VFUBJWJ9YYJEKZJ9IKLGKX05V6T4FLF Sep 19, 2009 19:10:16 woopra.com.woopra-ns.com /ping/cookie=DQHSOKCE25U9U37JYSOPC9FXNR3FPOEM&idle=37&ra=0U415OZXXXU576SV69RZ05KQNEBO2N85 Sep 19, 2009 19:10:22 theapplegeek.ru.woopra-ns.com /ping/cookie=ZO50TUOUOY37S133MNWTOB42QVKN3DE9&ra=V4O1MR9G6069857YPHMIRVB02SSPVEDZ Sep 19, 2009 19:10:28 woopra.com.woopra-ns.com /ping/cookie=DQHSOKCE25U9U37JYSOPC9FXNR3FPOEM&idle=57&ra=8L8WI1IPX8JKXUF6JSX9906Z13X0WOB2 Sep 19, 2009 19:10:30 woopra.com.woopra-ns.com /ping/cookie=DQHSOKCE25U9U37JYSOPC9FXNR3FPOEM&idle=68&ra=57QDITV9DPDW8SORHAE27OXBW08PU0W7 Sep 19, 2009 19:10:47 theapplegeek.ru.woopra-ns.com /ping/cookie=ZO50TUOUOY37S133MNWTOB42QVKN3DE9&ra=0CDQK2WA823UIX2IQID5SR9WVTBOJI7A Sep 19, 2009 19:10:49 woopra.com.woopra-ns.com /ping/cookie=DQHSOKCE25U9U37JYSOPC9FXNR3FPOEM&idle=0&ra=U03MO0VLYO3TWJJUE9VZKCW0H59A8J48
Т.е. видим, что при открытии сайта с установленной статистикой Woopra из браузера посетителя идут регулярные обращения на сервера статистики Woopra. Размер каждого пакета 256 байт, в минуту имеем порядка 4-8 запросов или же 1-2 KB трафика. Конечно же, это немного, но если посетитель заходит через дорогой GRPS, то подобные системы статистики могут нагнать достаточно много трафика.
Что же это за обращения? Ответ прост – Woopra отслеживает, находится ли посетитель на сайте, или уже ушёл с него путём регулярной отсылки “keepalive ping”. Именно так реализована функция “With Woopra, you get live track of visitors coming and going and moving through your site”.
Однако нужно признать – Woopra система хорошая и отслеживать посетилей “real-time” иначе невозможно. Детали о реализации функции можно прочитать в блоге Woopra в статье ““. Каждый владелец сайта сам принимает решение, использовать такую систему, или нет. Но теперь мы благодаря Wireshark знаем об этой особенности Woopra. И, продолжая анализировать сетевую активность, будем знать и о поведении других программ.


