+  HandyCache форум
|-+  Главная категория» Новые предложения» Удобная статистика
Имя пользователя:
Пароль:
Страниц: 1 [2] 3 4  Все   Вниз
  Отправить эту тему    Печать  
Автор Тема: Удобная статистика  (Прочитано 52048 раз)
0 Пользователей и 1 Гость смотрят эту тему.
cepera_ang
Beta tester
*****

Репутация: +9/-4
Offline Offline

Сообщений: 355


« Ответ #20 : 28 Февраль 2007, 13:33:37 »

cepera_ang, спасибо
есть проблема если кол-во строк больше 65535, макрос  вылетает по ошибке Грустный
можно добавить эту проверку ?

PS ошибка 1004

У меня в объединенном логе за месяц получилось более 115 тысяч строк Улыбка
Вылетает потому что в экселе максимум 65535 строчек (( до версии 2007 - там сделали миллион. Поэтому либо долго кодить проверки, обходные пути, либо вручную ограничивать кол-во логов. Все таки для анализа нужна база данных, а не табличка.
Давненько я не программировал на VB позабыл все. Если будет время сделаю на Access + передача порциями в эксель для анализа. Но это врядли скоро.
Пишите что можно в этой версии поправить по мелочи, добавить и т.д.
Сообщить модератору   Записан
Oneri
Новичок
*

Репутация: +2/-0
Offline Offline

Сообщений: 34


« Ответ #21 : 28 Февраль 2007, 15:34:09 »

если бы разделителем был бы не "пробел" а например "TAB" то можно было бы просто слинковать .cvs файл с таблицей в Access и из него вытаскивать все данные
а так придется еще что то с импортом заморачиватся (прощек всего на мой взгляд будет сделать внешнее что то и запихнуть его в файл.

никто формат  log файла для последней версии не подскажет?
вечерком хочу потестировать пару идей...
Сообщить модератору   Записан
cepera_ang
Beta tester
*****

Репутация: +9/-4
Offline Offline

Сообщений: 355


« Ответ #22 : 28 Февраль 2007, 17:17:20 »

Формат лога, разделитель пробел:
Код:
Дата/Время Пользователь Адрес [Размер] [Получено] [Процент] Состояние "Ответ сервера" [Правило[, правило[, ...]]]

* Статистика НС.rar (10.97 Кб - загружено 56 раз.)
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +217/-4
Offline Offline

Сообщений: 6301


« Ответ #23 : 28 Февраль 2007, 18:03:19 »

Примаются предложения по изменению формата лог-файла. Вероятно, имеет смысл сделать по образцу какого-нибудь популярного прокси, чтобы можно было использовать софт, заточенный под него.
Сообщить модератору   Записан
Oneri
Новичок
*

Репутация: +2/-0
Offline Offline

Сообщений: 34


« Ответ #24 : 28 Февраль 2007, 19:54:44 »

Squid?
думаю надо делать голосование после набора популярных проксей,
желательно с freeware анализаторами логов
Сообщить модератору   Записан
NothingAnother
Beta tester
*****

Репутация: +7/-2
Offline Offline

Сообщений: 434

Spoiler


« Ответ #25 : 28 Февраль 2007, 20:21:34 »

имеет смысл сделать по образцу какого-нибудь популярного прокси, чтобы можно было использовать софт, заточенный под него
Для сквида логвьюеров более, чем много Улыбка
Сообщить модератору   Записан

Мы тоже не всего читали Шнитке!..
© В. Вишневский
cepera_ang
Beta tester
*****

Репутация: +9/-4
Offline Offline

Сообщений: 355


« Ответ #26 : 28 Февраль 2007, 20:23:53 »

Посмотрел формат логов сквида, черезчур помоему, многие поля относятся к работе с кешем, который в сквиде реализован подругому (одним файлом), это и номер файла, и действие над ним...
Мой выбор - Novell Border Manager - в нем пишут логи Apache, WinRoute, WinProxy и тд только с входящим и исходящим трафиком.
Код:
ip - логин [dd/mm/yyyy:hh:mm:ss временная_зона] "метод url протокол" код_завершения трафик трафик_исходящий
Сообщить модератору   Записан
Oneri
Новичок
*

Репутация: +2/-0
Offline Offline

Сообщений: 34


« Ответ #27 : 28 Февраль 2007, 22:13:21 »

cepera_ang
я тут за полчаса набросал прогу котораяс переводит log handycache в формат удобоваримый для access
за текст сильно не пинайте, писалось на одном дыхании
пользоваться так же
сначало батником, потом all-relog.csv  подцепить как linked table в access
там простенький отчет я сделал должно сработать
в принципе осталось сделать выборку по датам

текст проги прилагаю, написана на freepascal с синтаксисом delphi
похоже для удобства придется переписывать кусок  ReResponce

PS на больших объемах думаю будет тормозить но работать

* relog.rar (57.28 Кб - загружено 35 раз.)
Сообщить модератору   Записан
cepera_ang
Beta tester
*****

Репутация: +9/-4
Offline Offline

Сообщений: 355


« Ответ #28 : 28 Февраль 2007, 23:25:19 »

Работает, вроде бы. Хотя анализ excel'a несравним ни с чем. На лог файле 1.5 мегабайта работает мгновенно, хотя это конечно не объем.
Сообщить модератору   Записан
cepera_ang
Beta tester
*****

Репутация: +9/-4
Offline Offline

Сообщений: 355


« Ответ #29 : 28 Февраль 2007, 23:31:42 »

Примаются предложения по изменению формата лог-файла. Вероятно, имеет смысл сделать по образцу какого-нибудь популярного прокси, чтобы можно было использовать софт, заточенный под него.
А может реализовать нечто вроде :
Цитировать
logformat <format>
Format for log record. First symbol in format must be L (local time)
or G (absolute Grinwitch time)
It can be preceeded with -XXX+Y where XXX is list of characters to be
filtered in user input (any non-printable characters are filtered too
in this case) and Y is replacement character. For example, "-,%+ L" in
the beginning of logformat means comma and percent are replaced
with space and all time based elemnts are in local time zone.
You can use:

%y - Year in 2 digit format
%Y - Year in 4 digit format
%m - Month number
%d - Day
%H - Hour
%M - Minute
%S - Second
%t - Timstamp (in seconds since 01-Jan-1970)
%. - milliseconds
%z - timeZone (from Grinvitch)
%D - request duration (in milliseconds)
%b - average send rate per request (in Bytes per second)
this speed is typically below connection speed shown by dlownload
manager.
%B - average receive rate per request (in Bytes per second)
this speed is typically below connection speed shown by dlownload
manager.

%U - Username
%N - service Name
%p - service Port
%E - Error code
%C - Client IP
%c - Client port
%R - Remote IP
%r - Remote port
%n - requested hostname
%I - bytes In
%O - bytes Out
%h - Hops (redirections) count
%T - service specific Text
%N1-N2T - (N1 and N2 are positive numbers) - log only fields from
N1 thorugh N2 of service specific text
и сделать настройку куда пользователь будет забивать строку для выдачи нужного ему лога, и по умолчанию будет лог winroute например?
Сообщить модератору   Записан
Walker
Новичок
*

Репутация: +2/-0
Offline Offline

Сообщений: 14


« Ответ #30 : 01 Март 2007, 06:29:06 »

Формат squid и httpd (NBM, BSB, winroute, apache и тд) имеют один недостаток - отсутствие исходящего трафика. Кроме того, httpd не дает информации о кэшировании. В него пишутся удовлетворенные запросы мимо кэша. Любая модификация стандартного формата не гарантирует правильной работы существующих анализерок.
Форматы с поддержкой исходящего трафика сложны и специфичны для конкретных прокси.
Существующий формат вполне пристоен, ежели добавить в него поле IP адреса и, при необходимости, исходящего трафика.
Жду решения автора НС, для реализации его поддержки в бесплатной анализерке WrSpy. Это можно сделать в течении недели.



Обсуждение WrSpy перенесено в отдельную тему: WrSpy - программа для анализа логов прокси (в т.ч. HandyCache)
« Последнее редактирование: 20 Август 2007, 08:55:45 от DenZzz » Сообщить модератору   Записан
cepera_ang
Beta tester
*****

Репутация: +9/-4
Offline Offline

Сообщений: 355


« Ответ #31 : 01 Март 2007, 21:11:11 »

Предлагаю следующий формат лога, все поля разделены 1 пробелом:


Дата       Время     IP клиента   Пользователь Адрес                Размер Получено Отправлено Код ответа Ответ          НС/Инет Gzip Правило
1          2         3            4            5                    6      7        8          9          10             11      12   13
ДД.ММ.ГГГГ ЧЧ:ММ:СС  IP           ИМЯ          "http://domen/url"   БАЙТ   БАЙТ     БАЙТ       @@@ ЧИСЛО  "СТРОКА"       H|I      +|-  У П Б Ч З Н Т А
25.02.2007 08:55:10  192.168.20.1 Local        "http://www.ya.ru/"  516    516      128        200        "OK"           I        +    1 0 0 0 5 0 0 0
25.02.2007 08:55:10  192.168.1.1  Local        "http://www.ya.ru/"  516    516      0          304        "Not modified" H        +    0 0 0 0 0 8 0 0


Пояснения: первая строка содержит названия полей, вторая номер пункта, третья формат данных, 4-5 пример лога
1.   Дата в формате ДД.ММ.ГГГГ
2.   Время в формате ЧЧ:ММ:СС. Может быть еще миллисекунды? Если они вообще фигурируют в работе программы.
3.   IP-адрес с которого поступил запрос.
4.   Имя пользователя, если имя пользователя определить не удалось записывать «–» или «none»
5.   Запрос (URL) окруженный для верности кавычками.
6.   Размер: если известен размер файла записывать его здесь, или 0 если размер неизвестен.
7.   Получено: писать сколько получено байт или 0 если данные не получены.
8.   Отправлено: писать сколько отправлено байт при запросе. При выдаче из кеша писать 0.
9.   Код ответа: писать числовой код ответа сервера/НС 200, 300 … и т.д. либо 000 при ответе типа Request repeated
10.   Ответ: записывать строку ответа сервера/НС в кавычках либо FAIL в случае ошибок (вообще подумать какие ответы оставить)
11.   Кеш/Инет: записывать 1 символ “Н” если данные взяты из кеша, либо ответ сформирован НС или символ “I” если данные/ответ из интернета.
12.   Gzip: писать + или – в зависимости от наличия/отсутствия gzip
13.   Правила: писать через пробел номера правил в определенном порядке (например У П Б Ч З Н Т А), если правило не сработало – на этом месте писать 0
Также предлагаю удалить поля не несущие смысловой нагрузки: процент и состояние, так как в 99,6% случаев они равняются 100% и 2 соответственно.
Еще хотелось бы какое-нибудь поле для группировки запросов по рефереру (как это сделано в мониторе), но это мелочь.
Сообщить модератору   Записан
Oneri
Новичок
*

Репутация: +2/-0
Offline Offline

Сообщений: 34


« Ответ #32 : 01 Март 2007, 21:30:38 »

Только пробелом не надо, лучше {Табом}, так проще в access загнать, а потом там анализировать
с пробелами возникают проблемы "Not modified" и правилами прошедшими при запросе.

теоретически может сработать несколько правил из одного списка?
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #33 : 01 Март 2007, 21:39:39 »

Если исходить из того, что лог будет просматриваться с помощью программы-анализатора необязательно писать в текстовом виде - в двоичном будет меньше.

Имхо не хватает полей для протокола, записан файл в кэш или нет, внешнего прокси.
Сообщить модератору   Записан
cepera_ang
Beta tester
*****

Репутация: +9/-4
Offline Offline

Сообщений: 355


« Ответ #34 : 01 Март 2007, 21:49:52 »

Только пробелом не надо, лучше {Табом}, так проще в access загнать, а потом там анализировать
с пробелами возникают проблемы "Not modified" и правилами прошедшими при запросе.

теоретически может сработать несколько правил из одного списка?
По пробелу: насколько я знаю это стандарт для логов, хотя по-моему не принципиально. Для того и нужны кавычки, чтобы проблем с пробелами в ответах не возникало. В access загонять однозначно лучше с помощью процедуры на VB, можно и домен выделить и т.д. да и есть такая нужда если будет работать wrspy?
По правилам: afaik нет.
Если исходить из того, что лог будет просматриваться с помощью программы-анализатора необязательно писать в текстовом виде - в двоичном будет меньше.
Зато усложнится написание этого самого анализатора + текст = стандарт. Можно хоть на perl'e писать анализатор (так и сделано например для squid'a)
Имхо не хватает полей для протокола, записан файл в кэш или нет, внешнего прокси.
Условный прокси виден в правилах, запись в кеш тоже видно - если З не ноль - значит запись была. Что значит протокол? У нас же не пускается ничего кроме http(s)|ftp, а это видно из запроса.
2All
Хотелось бы еще предостеречь от включения в лог лишних полей, которые мы все равно не сможем использовать при анализе. Ведь логи растут очень быстро и анализ затрудняется с каждым добавленным полем. Не сомневаюсь что будут люди у которых логи будут измеряться гигабайтами в месяц (и я наверное буду первым), и каждый символ будет увеличивать лог на десятки мегабайт.
« Последнее редактирование: 01 Март 2007, 21:55:32 от cepera_ang » Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #35 : 01 Март 2007, 22:17:22 »

Цитировать
теоретически может сработать несколько правил из одного списка?
afaik нет.

В списках П и А может сработать несколько правил! Это абсолютно точно!
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #36 : 01 Март 2007, 22:27:54 »

Что значит протокол? У нас же не пускается ничего кроме http(s)|ftp, а это видно из запроса.
Надо думать о будущем. Подмигивающий

Цитировать
Не сомневаюсь что будут люди у которых логи будут измеряться гигабайтами в месяц (и я наверное буду первым), и каждый символ будет увеличивать лог на десятки мегабайт.
Дык может все-таки не нужен текстовый вид?  :Улыбка
Сообщить модератору   Записан
cepera_ang
Beta tester
*****

Репутация: +9/-4
Offline Offline

Сообщений: 355


« Ответ #37 : 01 Март 2007, 22:58:51 »

В списках П и А может сработать несколько правил! Это абсолютно точно!
Точно Улыбка Только не представляю как можно использовать знание о сработавших правилах преобразования и переадресации, кроме как для статистики по кол-ву сработавших правил.  :Улыбка Может их совсем не писать в лог?
Надо думать о будущем. Подмигивающий
Дык может все-таки не нужен текстовый вид?  :Улыбка
Хорошо + протокол.
Текстовый вид нужен, потому что
1. Экономия не так велика. Рассмотрим предложенный мною вариант.
a. Экономия от кодирования даты/времени = 19-4=15 байт на строку.
b. Самая объемная информация лога это имя пользователя и URL. На них в бинарном виде сэкономить не удастся. + это поля переменной длины, значит надо будет либо хранить длину (лишние 1+4 байта), либо ограничитель строки (+2 байта). Тоже самое касается ответа сервера.
c. Экономия на поле адрес - 12 байт.
d. Размер, оправлено, получено. Как уже выясняли, средний размер запроса - <100000байт следовательно размер текста <6 байт. В поле отправлено - вообще меньше 4 символов. Длинное целое - 4 байт. Причем в поле получено в 30%-40% случаев будет 0. А в полях размер и отправлено - в 80%. Итого экономия = (6-4)*60%+(1-4)*40%+(6-4)*20%+(1-4)*80%+(4-4)*20%+(1-4)*80%=-4,4 байта на строку.
e. Код ответа - текст 3 символа, число - 4 байта
f. НС/Инет Gzip - текст 2 символа, число - 1.
g. Правила - текст у меня почти всегда 1 символ, число - 4 байта (на случай тысяч правил в списках)
h. разделители - 19 штук.
Итого: экономия = 15-5(2)+12-4,4-1+1-3*8+19=12,6(15,6) байт на строку. Естественно это лишь оценка, и можно найти кучу притянутостей в моих рассуждениях, не стоит этим заниматься, ибо только практика может показать.
2. Опять же легкость анализа различными средствами - хоть excel хоть скрипт на любом языке обработки текста, хоть загрузка в базу данных, хоть сторонние программы специально написанные для этого. Бинарный вид - только последнее.
3. Читабельность человеком. Мало ли захочется найти какую-нибудь штуку, или проверить что-нибудь. Чесслово возникает такая необходимость иногда.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #38 : 01 Март 2007, 23:22:04 »

Цитировать
В списках П и А может сработать несколько правил! Это абсолютно точно!
Точно Улыбка Только не представляю как можно использовать знание о сработавших правилах преобразования и переадресации, кроме как для статистики по кол-ву сработавших правил.  :Улыбка Может их совсем не писать в лог?

А чем они хуже правил из других списков?
Их можно использовать для статистики срабатываний. Можно произвести отбор по интересующему правилу и посмотреть, когда и у кого оно срабатывало и правильно ли отработало. Или просто для того, чтобы легче было узнать, где теперь искать файл в кэше... Подмигивающий
Сообщить модератору   Записан
cepera_ang
Beta tester
*****

Репутация: +9/-4
Offline Offline

Сообщений: 355


« Ответ #39 : 01 Март 2007, 23:31:28 »

А чем они хуже правил из других списков?
Их можно использовать для статистики срабатываний. Можно произвести отбор по интересующему правилу и посмотреть, когда и у кого оно срабатывало и правильно ли отработало. Или просто для того, чтобы легче было узнать, где теперь искать файл в кэше... Подмигивающий
Значит надо писать так: сначала все номера правил, которые могут быть только один раз, потом: П"номер номер номер номер..." А"номер номер номер" или только сработавшие правила, и перед номером ставить код например П11 П123 Ч10. Думаю так как эти поля находятся в конце строки, то если их кто-то (программа) не захочет обрабатывать - можно будет легко проигнорировать и проблем не возникнет.
Сообщить модератору   Записан
Страниц: 1 [2] 3 4  Все   Вверх
  Отправить эту тему    Печать  

 
Перейти в: