Проблема анализа лог файлов Border Manager стоит уже слишком долго... Было написано несколько программ для анализа логов, но у всех у них есть свои проблемы и недочёты... Следует заметить что большинство программ имеющихся на сегодня работают как приложения Windows что требует их установку, я уже не говорю о методике работы и анализа логов...
В данном топике речь идёт о Загрузчик и просмоторщике лог файлов Border Manager 3.X/WanStat/TSE 0.93f
Автор:
Студент 4 курса ФМФ ЗабГПУ
Жестков Виктор
Руководитель проекта:
Ассистент кафедры информатики,
Зав. Лабораторией сетевых технологий ЦИТ ЗабГПУ
Квашук Сергей
Программа представляет собой скрипт написанный на языке Perl 5.8 (Загрузчик логов) и скрипт на PHP (Просмоторщик логов)
Загрузчик предназначен для загрузки лог файлов в базу данных MySQL.
Просмоторщик предназначен для наглядного отображения статистики в Web-браузере.
Наглядно посмотреть результат работы программы можно здесь
Привожу краткую инструкцию к программе:
(Пока проводятся тесты, принимаются исправления в инструкцию)
Загрузчик лог файлов Border Manager 3.X/WanStat/TSE 0.93f
Автор:
Студент 4 курса ФМФ ЗабГПУ
Жестков Виктор
Постановщик задачи:
Ассистент кафедры информатики
Зав. Лабораторией сетевых технологий ЦИТ ЗабГПУ
Квашук Сергей
Скрипты написаны на языке Perl 5.8 и PHP
Системные требования:
Платформа: *nux/Netware 6.x/WinNT/2000
Язык: Perl 5.8 с приложенными модулями PM, PHP 4.0.8 и выше
СУБД: MySQL не ниже версии 3
Инсталляция и эксплуатация:
1. На сервер соответствующий системным требованиям скопировать содержимое архива.
2. Проверить в настройках BOrder Manager (proxy.cfg) параметр [Log Format]
Он должен иметь значение Delimiter-Character=space
3. Выполнить nvstat.sql для создания необходимых таблиц
(рекомедую http://ems-hitech.com/mymanager/)
4. Отредактировать файл nvstat.conf в соответствии с настройками
вашей системы и вашими требованиями
Краткое описание параметров настройки файла nvstat.conf:
а) Настройки загрузчика логов BorderManager
# http statistic settings
Адрес сервера MySQL
http_sql_host localhost
Имя пользователя для доступа к базе данных
http_sql_user nvstat
Пароль
http_sql_pass nvstat
Имя базы
http_sql_base nvstat
Имя таблицы статистики серфинга
http_sql_proxy_tbl proxy_stat
Имя таблицы статистики закачки больших файлов
http_sql_files_tbl files_stat
Имя таблицы полной статистики (загрузка включается
параметром http_dumpfull)
http_sql_full_tbl full_proxy_stat
Расположение COMMON лога
http_common_log_dir sys:/etc/proxy/log/HTTP/Common/
Расположение EXTENDED лога (ВАЖНО !!! EXTENDED лог
должен присутствовать обязательно !!!!)
http_extended_log_dir sys:/etc/proxy/log/HTTP/Extended/
Маска имени фрйла %год%месяц%день (программа
рассчитана на работу с логом генерируемым BM с указанным
параметром Rollover every 1 days)
http_common_log_mask %y%m%d.LOG
Маска имени фрйла %год%месяц%день (программа
рассчитана на работу с логом генерируемым BM с указанным
параметром Rollover every 1 days)
http_extended_log_mask %y%m%d.LOG
Информация о загрузке: "имя файла" <позиция на которой
закончилось чтение>
http_position_file sys:/nvstat/http.pos
Минимальный объем файла регистрируемого в таблице
закачки "больших файлов"
http_critical_mass 500000
Необходимо чтобы скрипт автоматически загружал кусок
лога за предыдущий день тоесть например если вызывать
его в 23:10 а потом в 00:10 то лог возьмется только за
текущий день а auto_prevday включает проверку что если
текущее время меньше 00:15:00 то загружать еще и за
предыдущий день
http_auto_prevday yes
Расположение журнала работы загрузчика
http_logfile sys:/nvstat/nvstat.log
Удаление начальной точки в имени пользователя
http_dropdot yes
Включение полного лога т.е. отказ от агрегирования
информации с процессе загрузки
(например в промежуток между выполнениями данного
скрипта Вы скачали 2 файла по 10Кб при выключенном
данном параметре в лог запишется одна строка о том что с
данного сайта Вами взято 20Кб а также дата и время
будут соответствовать времени выполнения скрипта)
http_dumpfull no
Параметр указывающий на то строки с каким кодом HTTP
брать для формирования базы (коды указываются через ','
например: 200,403)
http_only_codes 200
Параметр указывающий на то брать строки взятые из кэша
или нет
http_only_noncached yes
Параметр задающий список игнорируемых юзеров тоесть
также через (ОБЯЗАТЕЛЬНО УЧИТЫВАТЬ РЕГИСТР)
запятую например: http_ignore_users - или
http_ignore_users -,victor.ZGPU
http_ignore_users -
Параметр задающий список игнорируемых хостов
например: http_ignore_url zgpu.chita.ru,192.168.1.1
вычленяет только то что в начале урла идет тоесть
http://(zgpu.chita.ru):8100/
играет роль только то что в скобках
http_ignore_url zgpu.chita.ru
б) Настройки загрузчика логов Трафик шейпера
(www.trafficshaper.com)
# shaper statistic settings
Адрес сервера MySQL
shaper_sql_host localhost
Имя пользователя для доступа к базе данных
shaper_sql_user nvstat
Пароль
shaper_sql_pass nvstat
Имя базы
shaper_sql_base nvstat
Имя таблицы статистики трафик шейпера
shaper_sql_table shaper_stat
Расположение лога
shaper_log_dir sys:/
Маска имени файла
shaper_log_mask SHAPER.ADT
Информация о загрузке: "имя файла" <позиция на которой
закончилось чтение>
shaper_position_file sys:/nvstat/shaper.pos
Необходимо чтобы скрипт автоматически загружал кусок
лога за предыдущий день
тоесть например если вызывать его в 23:10 а потом в 00:10
то лог возьмется только за текущий день а auto_prevday
включает проверку что если текущее время меньше
00:15:00 то загружать еще и за предыдущий день
shaper_auto_prevday yes
Расположение журнала работы загрузчика
shaper_logfile sys:/nvstat/nvstat.log
в) Настройки загрузчика логов Wanstat
(www.officenet.hu/utils/wanstat/index.htm)
# wan statistic settings
Адрес сервера MySQL
wan_sql_host localhost
Имя пользователя для доступа к базе данных
wan_sql_user nvstat
Пароль
wan_sql_pass nvstat
Имя базы
wan_sql_base nvstat
Имя таблицы статистики WanStat
wan_sql_table wan_stat
Имя таблицы статистики WanStat
wan_sql_table_last wan_stat_last
Расположение лог файлов
wan_log_dir sys:/etc/Wanstat/
Маска имени файла
wan_log_mask %Y%m%d.TXT
Информация о загрузке: "имя файла" <позиция на которой
закончилось чтение>
wan_position_file sys:/nvstat/wan.pos
Необходимо чтобы скрипт автоматически загружал кусок
лога за предыдущий день тоесть например если вызывать
его в 23:10 а потом в 00:10 то лог возьмется только за
текущий день а auto_prevday включает проверку что если
текущее время меньше 00:15:00 то загружать еще и за
предыдущий день
wan_auto_prevday yes
Расположение журнала работы загрузчика
wan_logfile sys:/nvstat/nvstat.log
5. Выполнить необходимый скрипт
например:
а) perl (путь)\http_rl.pl prev --noscreen (загрузка лога
текущего дня)
б) perl (путь)\http_rl.pl import "2003-02-01" "2003-03-01"
(загрузка лога за указанный промежуток времени)
Если возникли какие то вопросы и пожелания то думаю авторы программы на нах ответят...