Консультация № 181126
06.12.2010, 16:56
52.07 руб.
0 4 0
Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос:
На сайте работает собственная система статистики.
В таблицу заносится информация о сессии: идентификатор сессии, IP-адрес, строка User-Agent, некоторые другие параметры.
Когда заходит на сайт новый пользователь, у которого нет куки с данного сайта, ему ставится кука и записывается информация в таблицу с сессиями.
С этим все в порядке.
Проблема заключается в том, что в таблице очень много записей с IP сервера (!) и пустой строкой User-Agent. Проанализировав записи за последнюю неделю, обнаружил, что независимо от числа посетителей сайта, каждые сутки появляется ровно 96 новых записей с IP адресом сервера.
Ума не приложу, что это за активность. Есть версия, что это cron, но что он делает с сайтов 96 раз в сутки.
Если у кого есть какие идеи, прошу поделиться. Буду благодарен за помощь.

Обсуждение

Неизвестный
06.12.2010, 19:19
общий
Маловато информации.
96=24*4 то есть раз в 15 минут?
Или 4 запроса единовременно в час?
Посмотрите в access.log, какое распределение по времени?
И какие url запрашиваются?
Можно дописать в логгер вызов system("netstat -tnp |grep 'ip_сервера' >>event");
потом посмотреть в event, какие процессы запрашивали.
Можно написать такой скриптик (если это процессы perl или python)
Код:

#! /bin/bash
netstat -tnp |grep ip_сервера |grep -E ' [0-9]*/'|while read a ; do b="${a%/*}" ; ps -ww -p ${b##* } -O cmd; done >>processes

И дергать его через system, лучше через sudo от рута.
Получите процессы с параметрами. Может быть станет понятно, что происходит.
Неизвестный
07.12.2010, 00:31
общий
Проанализировав access.log увидел, что записи вида

IP-сервера - - [06/Dec/2010:17:30:00 +0300] "GET / HTTP/1.1" 200 11884 "-" "-"
IP-сервера - - [06/Dec/2010:18:00:00 +0300] "GET / HTTP/1.1" 200 11884 "-" "-"

Появляются через каждые 15 минут.

Насколько я понял, «виноват» в этом сервис Watchdog. Он автоматически запускается кроном каждые 15 минут. В Интернете пишут, что сервис отвечает за работоспособность сервисов, если лежит FTP или Apache, он будет пытаться поднять их.
Думаю, что проблема будет решена отключением мониторинга для Apache.
Неизвестный
07.12.2010, 00:43
общий
А лучшим решением, по-моему, будет доработка программы. Я просто добавлю в нее условие, чтобы не создавались сессии с IP-сервера.
давно
Старший Модератор
312929
1973
07.12.2010, 16:12
общий
Небольшое замечание не по теме вопроса.

У вас, как я понял, вся статистика идет в одну таблицу базы данных (скорее всего SQL или что-то аналогичное) по принципу "одна новая сессия - одна новая запись". Так, конечно, быстрее и код проще, но таблица получается большой (по несколько сот байт на запись), а ведь многие параметры могут повторяться для одного и того же пользователя (статический IP, User-Agent и др.). Можно писать повторяющиеся параметры в отдельные таблицы (в свою для каждого), добавляя только те, что раньше не встречались, а в таблицу сессий ставить ссылки.
Форма ответа