Русская версия English version  
Документация - NVStat for NetWare

NVStat 2.1 RC10 (06.05.2005)

Загрузчик функционально состоит из 2-х групп скриптов:
1-я группа: Скрипты написаные на языке Perl - передназначены для обработки лог файлов и занесения информации в базу MySQL
2-я группа: Скрипты написаные на языке PHP - передназначены для просмотра статистики через любой веб-браузер

Системные требования:
Платформа: *nix/Netware 6.x/WinNT/2000/XP/2003
Язык: Perl 5.8 с приложенными модулями PM, PHP >=4.2.4 c поддержкой session, ldap, mysql, gd
СУБД: MySQL не ниже версии 3.x

Инсталляция и эксплуатация:

1. Проверьте чтобы на сервере NetWare стояли самые последние версии следующих пакетов:
а) Самая последняя версия LibC
б) Самая последняя версия Novell Script for NetWare
в) Самая последняя версия Universal Component System
г) Самая последняя версия LDAP Libraries for C
д) Самая последняя версия Perl 5.8 for NetWare
е) Самая последняя версия PHP for NetWare
ж) Самая последняя версия MySQL 4.x for NetWare

2. На сервер, соответствующий системным требованиям, скопировать содержимое архива.
а) Скопируйте папку PERL на том SYS
б) Скопируйте папку NVSTAT в корневую директорию веб-сервера
в) Скопируйте папку SYSTEM на том SYS

3. Проверить в настройках Border Manager (sys:etc/proxy/proxy.cfg) параметр [Log Format]
Он должен иметь значение Delimiter-Character=space

4. Выполнить скрипт для создания необходимых таблиц
SYS:PERL/WEB/NVSTAT/SQL/nvstat.sql - база Border Manager 3.X/WanStat/TSE 0.93f без индексов
SYS:PERL/WEB/NVSTAT/SQL/nvstat_wi.sql - база Border Manager 3.X/WanStat/TSE 0.93f с индексами
SYS:PERL/WEB/NVSTAT/SQL/nvstat_index.sql - создает индексы в уже готовой базе Border Manager 3.X/WanStat/TSE 0.93f
SYS:PERL/WEB/NVSTAT/SQL/ics.sql - база Volera Excelerator без индексов

Ну плюсы и минусы надеюсь понятны индексированой и неиндексированой базы.
Из индексированой выборка быстрее но вставка чуть медленнее.
В неиндексированой вставка быстрая, но выборка медленнее, причем часто гораздо медленнее.

Для манипуляций с базами рекомедую использовать EMS MySQL Manager 2 (http://ems-hitech.com/mymanager/)

5. Отредактировать файл SYS:PERL/WEB/NVSTAT/nvstat.conf в соответствии с настройками вашей системы и вашими требованиями.

Краткое описание параметров настройки файла nvstat.conf:

а) Настройки загрузчика логов BorderManager
# Настройки HTTP статистики

Адрес сервера MySQL
http_sql_host 192.168.70.30

Имя пользователя для доступа к базе данных
http_sql_user NVStat

Пароль
http_sql_pass stat

Имя базы
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:/perl/web/nvstat/http.pos

Минимальный объем файла регистрируемого в таблице закачки "больших файлов" (в Байтах)
http_critical_mass 500000

Необходимо чтобы скрипт автоматически загружал кусок лога за предыдущий день то есть например если вызывать его в 23:10 а потом в 00:10 то лог возьмется только за текущий день а auto_prevday включает проверку что если текущее время меньше 00:15:00 то загружать еще и за предыдущий день
http_auto_prevday yes

Расположение журнала работы загрузчика
http_logfile sys:/perl/web/nvstat/proxy.log

Удаление начальной точки в имени пользователя (ВАЖНО !!! Обязательно установите значение параметра yes иначе просмотрщик на PHP будет работать некорректно
http_dropdot yes

Включение полного лога т.е. отказ от агрегирования информации с процессе загрузки (например в промежуток между выполнениями данного скрипта Вы скачали 2 файла по 10Кб при выключенном данном параметре в лог запишется одна строка о том что с данного сайта Вами взято 20Кб а также дата и время будут соответствовать времени выполнения скрипта)
http_dumpfull yes

Параметр указывающий на то строки с каким кодом HTTP брать для формирования базы (коды указываются через ',' Например: 200,403)
Здесь приведён список со всеми HTTP кодами
Вы можете исключить некоторые на ваше усмотрение, но будте внимательны т.к. некоторые коды очень важны, например коды 200 и 206
http_only_codes 100,101,200,201,202,203,204,206,300,301,302,303,304,305,307,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,
415,416,417,500,501,502,503,504,505


Параметр указывающий на то брать строки взятые из кэша или нет
Сейчас параметр установлен на то чтобы брать эти строки
http_only_noncached no

Параметр задающий список игнорируемых юзеров то есть также через запятую
(ОБЯЗАТЕЛЬНО УЧИТЫВАТЬ РЕГИСТР)
Например: http_ignore_users - или http_ignore_users -,Admin.CHRT
http_ignore_users -

Параметр задающий список игнорируемых хостов
Например: http_ignore_url novell.chel.ru,192.168.95.2
Вычленяет только то что в начале урла идет тоесть http://(novell.chel.ru):8100/
Играет роль только то что в скобках
http_ignore_url novell.chel.ru

Параметр для настройки списка сопоставления имени неавторизованного пользователя и IP адреса
http_userip_aliases 192.168.1.10:Vasya;192.168.1.11:Lenochka

б) Настройки загрузчика логов Volera Excelerator
# Настройки Volera статистики

Адрес сервера MySQL
ics_sql_host 192.168.70.30

Имя пользователя для доступа к базе данных
ics_sql_user NVStat

Пароль
ics_sql_pass stat

Имя базы
ics_sql_base NVStat

Имя таблицы статистики серфинга
ics_sql_proxy_tbl ics_stat

Имя таблицы статистики закачки больших файлов
ics_sql_files_tbl files_ics_stat

Имя таблицы полной статистики (загрузка включается параметром ics_dumpfull)
ics_sql_full_tbl full_ics_stat

Расположение лога Volera Excelerator
ics_log_dir ../ICS/

Маска имени файла %год%месяц%день
ics_log_mask %y%m%d.LOG

Информация о загрузке: "имя файла" <позиция на которой закончилось чтение>
ics_position_file sys:/perl/web/nvstat/ics.pos

Минимальный объем файла регистрируемого в таблице закачки "больших файлов" (в Байтах)
ics_critical_mass 500000

Необходимо чтобы скрипт автоматически загружал кусок лога за предыдущий день то есть например если вызывать его в 23:10 а потом в 00:10 то лог возьмется только за текущий день а auto_prevday включает проверку что если текущее время меньше 00:15:00 то загружать еще и за предыдущий день
ics_auto_prevday yes

Расположение журнала работы загрузчика
ics_logfile sys:/perl/web/nvstat/ics.log

Удаление начальной точки в имени пользователя (ВАЖНО !!! Обязательно установите значение параметра yes иначе просмотрщик на PHP будет работать некорректно
ics_dropdot yes

Включение полного лога т.е. отказ от агрегирования информации с процессе загрузки (например в промежуток между выполнениями данного скрипта Вы скачали 2 файла по 10Кб при выключенном данном параметре в лог запишется одна строка о том что с данного сайта Вами взято 20Кб а также дата и время будут соответствовать времени выполнения скрипта)
ics_dumpfull yes

Параметр указывающий на то строки с каким кодом HTTP брать для формирования базы (коды указываются через ',' например: 200,403)
Здесь приведён список со всеми HTTP кодами
Вы можете исключить некоторые на ваше усмотрение, но будте внимательны т.к. некоторые коды очень важны, например коды 200 и 206
ics_only_codes 100,101,200,201,202,203,204,206,300,301,302,303,304,305,307,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,
415,416,417,500,501,502,503,504,505


Параметр указывающий на то брать строки взятые из кэша или нет
Сейчас параметр установлен на то чтобы брать эти строки
ics_only_noncached no

Параметр задающий список игнорируемых юзеров то есть также через запятую
(ОБЯЗАТЕЛЬНО УЧИТЫВАТЬ РЕГИСТР)
Например: ics_ignore_users - или ics_ignore_users -,Admin.CHRT
ics_ignore_users -

Параметр задающий список игнорируемых хостов
Например: ics_ignore_url novell.chel.ru,192.168.95.2
Вычленяет только то что в начале урла идет тоесть http://(novell.chel.ru):8100/
Играет роль только то что в скобках
ics_ignore_url novell.chel.ru

Параметр для настройки списка сопоставления имени неавторизованного пользователя и IP адреса
ics_userip_aliases 192.168.1.10:Vasya;192.168.1.11:Lenochka

в) Настройки загрузчика логов Трафик шейпера (www.trafficshaper.com)
# Настройки Shaper статистики

Адрес сервера MySQL
shaper_sql_host 192.168.70.30

Имя пользователя для доступа к базе данных
shaper_sql_user NVStat

Пароль
shaper_sql_pass stat

Имя базы
shaper_sql_base NVStat

Имя таблицы статистики трафик шейпера
shaper_sql_table shaper_stat

Расположение лога
shaper_log_dir sys:/

Маска имени файла
shaper_log_mask SHAPER.ADT

Информация о загрузке: "имя файла" позиция на которой закончилось чтение
shaper_position_file sys:/perl/web/nvstat/shaper.pos

Необходимо чтобы скрипт автоматически загружал кусок лога за предыдущий день тоесть например если вызывать его в 23:10 а потом в 00:10 то лог возьмется только за текущий день а auto_prevday включает проверку что если текущее время меньше 00:15:00 то загружать еще и за предыдущий день
shaper_auto_prevday yes

Расположение журнала работы загрузчика
shaper_logfile sys:/perl/web/nvstat/shaper.log

г) Настройки загрузчика логов Wanstat (www.officenet.hu/utils/wanstat/index.htm)
# Настройки Wan статистики

Адрес сервера MySQL
wan_sql_host 192.168.70.30

Имя пользователя для доступа к базе данных
wan_sql_user NVStat

Пароль
wan_sql_pass stat

Имя базы
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:/perl/web/nvstat/wan.pos

Необходимо чтобы скрипт автоматически загружал кусок лога за предыдущий день тоесть например если вызывать его в 23:10 а потом в 00:10 то лог возьмется только за текущий день а auto_prevday включает проверку что если текущее время меньше 00:15:00 то загружать еще и за предыдущий день
wan_auto_prevday yes

Расположение журнала работы загрузчика
wan_logfile sys:/perl/web/nvstat/wan.log

Имя WAN сервера (Удобно использовать если в сети существует несколько серверов NetWare)
wan_NAS CHRT

6. Выполнить необходимый скрипт:

Например:

а) perl sys:/perl/web/nvstat/http_rl.pl prev --noscreen
(загрузка лога текущего дня)

б) perl sys:/perl/web/nvstat/http_rl.pl import "2003-03-15" "2003-07-16"
(загрузка лога за указанный промежуток времени)

Для автоматизации процесса сбора статистики можно воспользоваться стандартным планировщиком CRON, для этого добавьте в файл SYS:ETC/crontab строчку:

10,20,30,40,50,0 * * * 0,1,2,3,4,5,6 bmlogday.ncf

По данной строке через каждые 10 минут будет выполнятся файл SYS:SYSTEM/bmlogday.ncf следующего содержания:

perl sys:perl/web/nvstat/http_rl.pl prev --noscreen

Не забудте добавить CRON.nlm в SYS:SYSTEM/autoexec.ncf для автоматического запуска планировщика при загрузке сервера.

7. Настройка просмотрщика

а) Создайте в eDirectory подразделение NVStat (ou=NVStat)
Создайте в подразделение NVStat 3 группы: NVStat-Admin-Allow, NVStat-User-Deny и NVStat-Buh-Allow
О их назначении будет рассказано чуть ниже при описании параметра $M_Login
Внимание !!! Соблюдайте регистр букв !!!

В новой версии NVStat введена новая функция - Квоты
Назначение этой функции - это групповой контроль использования Интернет
Для того чтобы использовать эту функцию необходимо в подразделении NVStat создать несколько групп

Формат именования групп:
Quote-XXX, где XXX - квота в мегабайтах и только

Например:
Quote-10 - Квота 10 Mb
Quote-50 - Квота 50 Mb
Quote-500 - Квота 500 Mb

В свойствах объекта группа допускается вводить описание этой группы, атрибут - Другое имя

Например:


Пример структуры NDS:


Примечание к пунктам б) в) г):
Вы можете воспользоваться готовым файлом php.ini из комплекта NVStat тогда вы можете не выполнять пункты б) в) г)
Директория PHP, скопируйте его в SYS:/PHP/ и перезапустите Apache

б) Если вы используете PHP на платформе NetWare то отредактируйте файл SYS:PHP/php.ini
Найдите параметр error_reporting и измените его значение на E_ALL & ~E_NOTICE & ~E_WARNING
(error_reporting= E_ALL & ~E_NOTICE & ~E_WARNING)

в) Если вы используете PHP на платформе NetWare то отредактируйте файл SYS:PHP/php.ini
Найдите параметр default_charset и измените его значение на windows-1251
(default_charset = "windows-1251")

г) Если вы используете PHP на платформе NetWare то закоментируйте в файле SYS:PHP/php.ini директиву open_basedir

д) Если вы используете PHP на платформе NetWare/Windows/*nix то отредактируйте файл php.ini
Найдите параметр register_globals и измените его значение на On
(register_globals = On)

е) Отредактировать файл /NVSTAT/config.php в соответствии с настройками вашей системы и вашими требованиями

Краткое описание параметров настройки файла config.php:

IP Адрес сервера MySQL
$SQL_Host = "192.168.70.30";

Имя пользователя базы
$SQL_User = "NVStat";

Пароль пользователя базы
$SQL_Passwd = "stat";

Имя базы
$SQL_Base = "NVStat";

Имя таблицы Proxy-статистики
$SQL_Proxy_Stat_Tbl = "proxy_stat";

Имя таблицы Files-статистики
$SQL_Files_Stat_Tbl = "files_stat";

Имя таблицы Shaper-статистики
$SQL_Shaper_Stat_Tbl = "shaper_stat";

Имя таблицы Wan-статистики
$SQL_Wan_Stat_Tbl = "wan_stat";

Показывать статистику в: 0-Байты, 1-КБайты, 2-МБайты, 3-ГБайты
Примечание: Данная опция распространяется только на вкладку Proxy -> Личная
$ReSize = "2";

Скрыть показ файловой статистики ( 1 - Скрыть, 0 - Показывать )
Примечание: Данная опция распространяется только на вкладку Proxy -> Личная
$HideFiles = "0";

Скрыть показ строк "Интернет" и "Кэш" ( 1 - Скрыть, 0 - Показывать )
Примечание: Данная опция распространяется только на вкладку Proxy -> Личная
$HideINet = "0";

Скрыть показ TOP20 ( 1 - Скрыть, 0 - Показывать )
Примечание: Данная опция распространяется только на вкладку Proxy -> Личная
$HideTop20 = "0";

Метод авторизации ( 0 - LDAP, 1 - OCX )
ВНИМАНИЕ !!! Мы настоятельно рекомендуем использовать авторизацию через LDAP, так как OCX или Прозрачная Авторизация имеет ряд ограничений, а именно:
- Обязательно требуется Novell Client32
- Пока не реализованы функции разграничения доступа к статистике (Будут реализованы в будущих версиях NVStat)
То есть используя OCX пока просмотр статистики вожможен либо с правами User или Admin для всех пользователей (см. параметр $OCX_Status)
Но есть и значительный плюс в использовании OCX авторизации, это не требуется ввод имени и пароля. То есть при входе на страницу просмотра статистики будет автоматически определено Имя пользователя и его Контекст.
ВНИМАНИЕ !!! Для того чтобы авторизация через LDAP работала корректно необходимо выполнить ряд действий:
а) Проверте чтобы [Public] был опекуном объекта Организация где установлен LDAP сервер и имел Права на объект - Просмотр, Наследование и
Права на свойства - Сравнение, Чтение, Наследование.Если данные права не установлены то вы не сможете авторизироватся на LDAP
сервере.
б) Если у вас стоит Novell eGuide то наверняка вы создавали специального прокси-пользователя (Например: Anonymous) и в настройках LDAP Group -> Authentication Options -> Proxy user у вас стоит именно Anonymous. Тогда проверте чтобы данный пользователь был опекуном объекта Организация где установлен LDAP сервер и имел вышеперечисленные права. Для просмотра настроек LDAP сервера используйте ConsoleOne или iManager.
Следует отметить что означают права User, Buh и Admin:
Право User - им обладают абсолютно все пользователи дерева, это право даёт пользователям просмотр своей статистики доступа в Интернет и ни чей более, статистику можно смотреть как за текущий месяц так и за произвольный. Если вы не желаете чтобы какой то пользователь получил доступ к статистике то достаточно добавить его в группу NVStat-User-Deny.
Право Buh - это назначаемое право, для того чтобы его получить нужно внести пользователя в группу NVStat-Buh-Allow. Пользователь с данным правом может просматривать как свою личную статистику так и статистику всех пользователей. Как правило данная привилегия применяется к пользователям бухгалтерии для того чтобы дать возможность бухгалтерам составлять отёты об использовании Интернет в вашей организации.
Право Admin - это назначаемое право, для того чтобы его получить нужно внести пользователя в группу NVStat-Admin-Allow. Пользователь с данным правом может просматривать как свою статистику так и статистику любого пользователя, а так же имеет право просматривать Shaper-статистику, Wan-статистику и менять настройки NVStat. То есть пользователь с правом Admin обладает неограниченными привелегиями.
Так же следует отметить что право запрета выше чем все остальные права, то есть если вы имеете статус Admin и находитесь в группе NVStat-User-Deny, то вы не сможете авторизоваться в NVStat/
$M_Login = "0";

Уровень доступа при OCX авторизации (User или Admin)
ВНИМАНИЕ !!! Данный уровень доступа назначается абсолютно всем пользователям в дереве
$OCX_Status = "User";

IP адрес сервера LDAP
$LDAP_Host = "192.168.70.30";

LDAP BaseDN
$LDAP_BDN = "o=CHRT";

Контекст в котором расположено подразделение NVStat c группами квот
$LDAP_BDN_Quote = "o=CHRT";

Прокси-пользователь для подключения к LDAP
Необходим если запрещено анонимное подключение к LDAP
Если анонимное подключение разрешено, то параметр должен быть пустым
$LDAP_BDN_User = "cn=Proxy,o=CHRT";

Пароль прокси-пользователя
Если анонимное подключение разрешено, то параметр должен быть пустым
$LDAP_BDN_User_Passwd = "PASSWORD";

Разрешить пользователям менять свои пароли (0 - Запретить, 1 - Разрешить)
Внимание !!! Данная функция работает только на платформе NetWare
Внимание !!! Мы рекомендуем отключит данную возможность, т.к. функция смены пароля дописана не до конца
$Allow_Password_Function = "0";

Группа пользователей которой разрешён вход для администрирования
$LDAP_Admin_Allow = array('cn=NVStat-Admin-Allow,o=CHRT');

Группа которой разрешён вход для просмотра отчётов (Например: Бухгалтерия)
$LDAP_Buh_Allow = array('cn=NVStat-Buh-Allow,o=CHRT');

Группа пользователей которой запрещён вход для просмотра
$LDAP_User_Deny = array('cn=NVStat-User-Deny,o=CHRT');

Контекст пользователя-менеджера паролей
$User_Password_Manager_Context = "NVStat.CHRT.CHRT_TREE";

Иня пользователя-менеджера паролей
$User_Password_Manager = "Password-Manager";

Пароль пользователя-менеджера паролей
$User_Password_Manager_Passwd = "PASSWORD";

Цвета оформления таблиц
$Proxy_HeadTbl_Color = "#999999";
$Proxy_TreeTbl_Color = "#D0D0EA";
$Proxy_StatHeadTbl_Color = "#C0C0C0";
$Proxy_StatBodyTbl_Color = "#808080";
$Proxy_StatTreeTbl_Color = "#F0F0F0";
$Proxy_StatBackground_Color = "#E0E0E0";


Режим авто-выбора языка системы (1 - Вкл., 0 - Выкл.)
$NVAutoLanguage = "1";

Язык просмотрщика по умолчанию (russian или english)
$NVLanguage = "russian";

По каким HTTP кодам вести подчёт статистики (можно указать либо только один конкретный код, либо если оставить параметр пустым то подсчет будет вестись по всем кодам которые были указаны в файле nvstat.conf параметр http_only_codes)
$NV_Code = "";

Режим мульти-квот (1 - Вкл., 0 - Выкл.)
Указывает будет ли учитываться участие пользователя в нескольких группах квот.
Если режим выключен, то на вкладке "Квоты" будет показываться лишь максимальная квота и её состояние.
$NV_MultiQuote = "0";

Из каких подсетей разрешен вход для просмотра статистики
$Allow_Subnet = array('All');

С каких IP адресов разрешен вход для просмотра статистики
$Allow_IPAddress = array('All');

8. Настройка возможности рисования графиков в NVStat

Для того чтобы рисовались графики необходимо подключить к PHP библиотеку GD.
GD входит в состав "Модулей расширения для PHP 4.2.4"



Поздравляем !!!
Инсталяция и настройка NVStat закончена.

Для просомотра статистики используйте любой веб-браузер.
Зайдите на страницу http://server/NVStat/ и вы сможете просмотреть статистику.

Удачной работы :)

NVStat Team © 2001 - 2016 Григорьев Михаил