Основное отличие данного модуля, а скорее причины по которым было принято решение о его написании (которые по сути и являются его отличиями) - несоответствие существующих модулей критерию производительность/объем данных. К сожалению, те модули, которые доступны сейчас пользователю либо несправляются с большими объемами данных, либо "переквалифицировались" на специфические дополнения (расширения конфигурации) — как например Elog, либо не позволяют получать информацию в интерактивном режиме (без специальнх манипуляций с хранилищами данных).
Немного о последнем. Все имеющиеся на сегодняшний день модули обработки статистики работают исключительно с текстовым форматами данных, отсюда вытекает большой минус — производительность (скорость формирования отчета) на больших и очень больших объемах данных, а так же за длительные временные интервалы.
MStat использует в качестве хранилища данных — внешние базы данных: MySQL, MSSQL, что позволяет добиваться значительного! повышения производительности, а значит и удобства в использовании.
ВНИМАНИЕ! Бета тестирование!
Данная сборка представляет собой основной движок данного модуля, веб интрефейс для формирования интерактивных отчетов, небольшой набор SQL скриптов для расчета некоторых видов статистики, а так же модули для импорта данных из стандартных текстовых файлов статистики, которые ведут все сервера из комплекта Eserv3/Eproxy
Многие функции (фичи) реализованные на данный момент по определенным соображениям отключены, и будут вводиться "в строй" постепенно.
Так как данная сборка представляет собой БЕТА версию модуля, настоятельно НЕ РЕКОМЕНДУЕТСЯ использовать данный модуль на "боевых" серверах, во избежании различного рода сбоев, которые могут вознитнуть во время данного тестировния.
Что влючено в текущую бету:
- движок БД MySQL (4.1 — 5.1), MSSQL 2000, MSSQL2005
- ведение статистики — статистика работы серверов (трафик, число подключений, продолжительность) — статистика работы прокси-сервера (http-proxy, frp-proxy, pop3proxy, socks)
- веб интерфейс для формирования отчетов
- веб интерфейс для управления плагином
- модуль для импорта логов *stat (стандартная статистика активности серверов) — импорт статистики работы серверов (трафик, число подключений, продолжительность)
Что необходимо для работы модуля:
- пробный регистрационный ключ, который Вы можете получить послав запрос на адрес: support@eserv.ru
- установленный сервер MySQL либо MSSQL (доступный локально через ODBC, либо по сети)
- Eserv3/Eproxy версии не ниже 3.23
Скачать MStat
Некоторая документация по MySQL
По всем вопросам, замечаниям, предложениям просьба обращаться по адресу: asm@eserv.ru
данная бетка не будет. Хотя работа с MSSQL реализована, но управляющих SQL скриптов нет + в движке модуль деления таблиц для MS еще не полностью функционален (в MySQL используются merge таблицы)
P.S. а почему предпочитаете MSSQL?
fixed. Тогда подождите второй беты.
(убрал echo off)
C:\Program Files\Eserv3\CommonPlugins\plugins\mstat\utils\sql\mysql>set stat_logs=..\..\import
C:\Program Files\Eserv3\CommonPlugins\plugins\mstat\utils\sql\mysql>set sql_scripts=.\stat
C:\Program Files\Eserv3\CommonPlugins\plugins\mstat\utils\sql\mysql>set pump=..\..
C:\Program Files\Eserv3\CommonPlugins\plugins\mstat\utils\sql\mysql>set exec=..\..
C:\Program Files\Eserv3\CommonPlugins\plugins\mstat\utils\sql\mysql>set ConnDef=ConnectionDefs.ini
C:\Program Files\Eserv3\CommonPlugins\plugins\mstat\utils\sql\mysql>set temp_table=eserv_stat
C:\Program Files\Eserv3\CommonPlugins\plugins\mstat\utils\sql\mysql>set db=MySQL_Eserv3
C:\Program Files\Eserv3\CommonPlugins\plugins\mstat\utils\sql\mysql>FOR %I IN (..\..\import\*stat.txt) DO call _pump.bat MySQL MySQL_Eserv3 %~nI ..\..\import .\stat
C:\Program Files\Eserv3\CommonPlugins\plugins\mstat\utils\sql\mysql>..\..\adexecutor.exe -d MySQL_Eserv3 -n ConnectionDefs.ini -i -l -p .\stat\update_index_table.sql
ERROR: Object factory for class {3E9B315B-F456-4175-A864-B2573C4A2201} missing.
To register it, you can drop component [TADGUIxWaitCursor] into your project
C:\Program Files\Eserv3\CommonPlugins\plugins\mstat\utils\sql\mysql>PAUSE
„«п Їа®¤®«¦ҐЁп ¦¬ЁвҐ «оЎго Є« ўЁиг . . .
C:\Program Files\Eserv3\CommonPlugins\plugins\mstat\utils\sql\mysql>goto :EOF
C:\Program Files\Eserv3\CommonPlugins\plugins\mstat\utils>rem create database
C:\Program Files\Eserv3\CommonPlugins\plugins\mstat\utils
DROP DATABASE IF EXISTS Eserv3 ... Done [0 ms]
CREATE DATABASE Eserv3
... Done [10 ms]
Script finished (0,01 s).
Done.
USE `Eserv3`
... Done [0 ms]
DROP TABLE IF EXISTS `index`
... Done [0 ms]
CREATE TABLE `index_table`
( ... Done [90 ms]
Script finished (0,09 s).
Done.
USE `Eserv3`
... Done [0 ms]
DROP TABLE IF EXISTS smtp_stat ... Done [0 ms]
DROP TABLE IF EXISTS proxy_sta ... Done [0 ms]
DROP TABLE IF EXISTS web_stat_ ... Done [10 ms]
DROP TABLE IF EXISTS pop3imap_ ... Done [0 ms]
DROP TABLE IF EXISTS ftp_stat_ ... Done [0 ms]
DROP TABLE IF EXISTS index_tab ... Done [0 ms]
CREATE TABLE acsmtp_stat_0 (
... CREATE TABLE acsmtp_stat_ ...
ERROR: [AnyDAC][Phys][MySQL][LIBMYSQL] Invalid default value for 'PORT'
CREATE TABLE acweb_stat_0 (
... CREATE TABLE acweb_stat_0 ...
ERROR: [AnyDAC][Phys][MySQL][LIBMYSQL] Invalid default value for 'PORT'
CREATE TABLE eproxy_stat_0 (
... CREATE TABLE eproxy_stat_ ...
ERROR: [AnyDAC][Phys][MySQL][LIBMYSQL] Invalid default value for 'PORT'
CREATE TABLE acimap_stat_0 (
... CREATE TABLE acimap_stat_ ...
ERROR: [AnyDAC][Phys][MySQL][LIBMYSQL] Invalid default value for 'PORT'
CREATE TABLE acftp_stat_0 (
... CREATE TABLE acftp_stat_0 ...
ERROR: [AnyDAC][Phys][MySQL][LIBMYSQL] Invalid default value for 'PORT'
CREATE TABLE `index_table`
( ... Done [70 ms]
Script finished (0,19 s).
PORT INT(10) NOT NULL default на
PORT INT(10) NOT NULL default 0
все ок.. какие еще скрипты править?
моя ошибка =( по непонятной причине в архив попали старые скрипты
Спасибо.
PORT varchar(5)
хотя в других местах это
PORT INT(10)
так надо теперь еще последняя ошибочка осталась... invalid datetime value:' ' for column 'DATE_END' ..
ищу в каких это скриптах.. хочеться зха сегодня доделать уже ))
написано
REPLACE INTO index_table SELECT 'eproxy', 'eserv', 0, 'stat',IF(LENGTH( MIN(DATE_TIME) )>0, MIN(DATE_TIME), NOW() ) , ' ', 1 FROM eproxy_stat_0;
когда ввидимо надо
REPLACE INTO index_table SELECT 'eproxy', 'eserv', 0, 'stat',IF(LENGTH( MIN(DATE_TIME) )>0, MIN(DATE_TIME), NOW() ) , NULL, 1 FROM eproxy_stat_0;
теперь иду дальше по мануалу..
делаю...перегружаю AcIMAP .. не стартует..
ничего не создаеться .. 45 рабьочих минут.. видимо не успею .. ((
2) А какая версия MySQL у Вас? (NULL для interger в 4.1.14 считается как 0)... или это регулируется настройками мюскла...
3) Версия Есерв?
а вот где версию есерва посмотреть нашел версию хелпа(1.8) и версию лицензии(1.5) ))
наверно версия была в install.txt , но онзаменился на install.txt mstat-a при заливке
Если успели создать таблицы, то лучше drop-нуть всю созданую базу и создать поновой из новой сборки (в новом формате таблиц добавлено одно поле)
P.S. а на 5-ке плагин не тестировал...
а где взять обновленную версию
не могли бы Вы скинуть мне эту бету на email?
В файле instal.txt странная кодировка, не смог подобрать.
Помогите!
instal.txt:
Огромное СПАСИБО!
ERROR: Object factory for class {3E9B315B-F456-4175-A864-B2573C4A2201} missing.
To register it, you can drop component [TADGUIxWaitCursor] into your project
еще раз проверил, на ftp://ftp.mirkrasok.com лежит рабочий дистрибутив. Попробуйте скачать по новой, но не браузером ! а любым ftp клиентом
Все, развернул, установил.
В логах пишет, что не может найти libmysql.dll, хотя путь к ней в PATH есть.
По поводу MySQL vendor dll. А у Вас случаем не 5-ая версия мускла и она случаем не установлена в Programm Files ?! Если да, то known problem и будет исправлено во второй бете.
Workaound: положить нужную dll в папки к сервисам, изпользующим MStat (например если пишутся логи eproxy, то положить в eserv3\eproxy\ и т.д)
Понимаю, что не очень элегантно, но это, к сожалению, единственное, что можно сейчас сделать Вторая бета близка в завершению.
О, заработало!
Устанавливал все по install.txt, переименованному в install.rtf, единственное, чего не сделал — это не импортировал данные за прошлые месяцы (забыл). Но в таблицы все пишется — проверил mysqldump'ом. По адресу http://my-proxy-ip/main/CommonPlugins/plugins/mstat/web/ захожу AdminUser'ом с теми же credentials, что и у User_Name, описанного в ConnectionDefs.ini.
Когда все заработает (не заработает ) о результатах и впечатлениях отпишитесь, если не затруднит
Version: 1.0.2.20 (Beta #2)
! Изменен формат логов статистики трафика (старый формат более не поддерживается, базу нужно будет пересоздать и импортировать данные из *stat.txt логов)
! Изменены скрипты генерации таблиц для совместимости с MySQL 4.0.x и MySQL 5.0.x
! Изменен алгоритм формирования имен таблиц.
! Таблицы теперь хранятся помесячно, для сохранения единообразия и более структурированного вида базы
! Bugfix в утилите импорта логов
! Bugfix в обработчике скриптов
! Изменен web-интерфейс
! Плагин корректно обрабатывает ситуацию, когда на запрос плагин возвращает вместо адреса 0 (nil) — может возвращаться при ошибках
! Все преобразования IP адресов в числовой формат для записи в базу, теперь производятся плагином, а не движком базы
! Более информативные сообщения при ошибках (выводятся в лог *_debug и как результат запроса, если ошибка возникла при его формировании)
! Dll: устранена незначительная утечка памяти
! Dll: Bugfix в функции пере подключения к базе если на этапе инициализации ни одного соединения не установлено.
! Dll: Bugfix в функции определения активной таблицы
! Dll: Bugfix в функции обработки запроса для случаев когда движок не был полностью инициализирован.
! Dll: Изменен модуль формирования исходного множества таблиц из которых будет формироваться результат (объединение таблиц)
+ Добавлено поле INTERFACE в таблицы трафика.
+ Активизирован модуль обработки индексной таблицы для определение активной таблицы для текущего сервиса
+ Добавлена поддержка логов HTTP-PROXY, SOCKS-PROXY, FTP-PROXY
+ Добавлена обработка полей: Локальный интерфейс, обрабатываемый IP, игнорируемы IP
Поддерживаются два варианта определения: одиночная запись IP адреса в формате: xxx.xxx.xxx.xxx
и обработка последовательности адресов: xxx.xxx.xxx.xxx-yyy.yyy.yyy.yyy
Поддерживаемые разделители: ";" "," и переход на новую строку
Логика работы полей проверки IP клиента: поле "игнорировать IP" имеет приоритет, по умолчанию обрабатываются все адреса
В конечный запрос попадают только корректно обработанные адреса из данных полей, все "битые" адреса игнорируются.
+ Добавлены скрипты создания таблиц, форматирования отчетов и ведения логов для MSSQL
+ Dll: Добавлена поддержка ODBC
+ Dll: Добавлена поддержка MSSQL server
+ Dll: Динамическое обновление списков таблиц
Это версия не мюскла не подошла или еще чего?
In MySQL 4.1, you can also use LIKE to create an empty table based on the definition of another table, including any column attributes and indexes the original table has: CREATE TABLE new_tbl LIKE orig_tbl;
Будет иправлено (или не будет... поддержка 4.0 не планировалась ) в Mstat Beta#3
Workaround создать таблицы
По шаблону *_stat:
Сделать это можно например так: create table eproxy_log_200601 select * from eproxy_log; create table eproxy_log_200602 select * from eproxy_log; только индексы придется потом вручную "навесить" по описанию из CommonPlugins\plugins\mstat\utils\sql\mysql\stat\clear_tables.sql)
Тоже самое и для *_stat-ов
Version: 1.0.3.20 (Beta #3)
Возможные варианты отчетов:
Прокси сервер Eproxy
P.S. Огромная просьба для тех, кто доберется до стадии просмотра отчетов и сможет что-то пронаблюдать — отписАться с данном топике с Вашими впечатлениями Заранее благодарен!
Сделал неофициальный аддон. В архиве краткое описание "по скрещиванию". К сожалению, возможности проверить нет, так что, если где-то не срастется — пишите, починим
ага, а там глядишь и полная поддержка почтового и ftp серверов подойдет, чтоб все за один присест
это относится к пункту 2.d документации:
идея в том, что в стандартном конфиге все управляющие файлы лежать в service\conf\ а в pigmail/pigproxy в service\myconf\
Version: 2.0.1.45 (RC1, MySQL edition)
Version: 2.0.1.48 (RC1+, MySQL edition)
Внимание!
Данная версия плагина НЕ поддерживает расширения Pig*. Полная поддержка MStat появится в официальном релизи PigMail/PigProxy 1.28. До выхода этой версии, обновление плагина производить нерекомендуется!
Новый сервис: MStat On-Line DEMO (для доступа, необходимо авторизоваться)
Login: mstat
Pass: mstat
Дополнительная информация:
Примеры отчетов...
Более подробное описание плагина
История изменений
При выводе статискики выходит следующее:
Что делать? mysql 5.0.24a
Eserv 328
2) Если конфиг стандартный, не лишним будет добавить следующую строку в файл eserv3\acweb\conf\http\andminonrequest2.rules.txt
IE6, и демо статискика работала.
MStat On-Line DEMO
(для доступа, необходимо авторизоваться)
Login: mstat
Pass: mstat
Если не будет получено достаточное количество негативных отзывов , то предложенный вериант будет включен по-умолчанию.
Заранее благодарен, за отзывы и предложения
Поправил.
25.03.2007
Version: 2.0.5.4 (RC4, MySQL edition)
Обновление предыдущих версий:
Для обновления уже установленной версии MStat необходимо выполнить следующие действия:
27.03.2007
Version: 2.0.5.5 (RC5, MySQL edition)
Обновление предыдущих версий:
Для обновления уже установленной версии MStat необходимо выполнить следующие действия:
06.05.2007
Version: 2.0.5.6 (RC6, MySQL edition)
Обновление предыдущих версий:
Для обновления уже установленной версии MStat необходимо выполнить следующие действия:
08.07.2007
Version: 2.0 (RC7)
Обновление предыдущих версий:
Для обновления уже установленной версии MStat необходимо выполнить следующие действия:
04.08.2007
Version: 2.0 (RC8)
Обновление предыдущих версий:
Для обновления уже установленной версии MStat необходимо выполнить следующие действия:
Download:
ftp.eserv.ru
Была похожая проблема у одного из клиентов. Помогло только обновление до IE 7 (FireFox он из религиозных убеждений ставить не хотел)
Firefox 2.0.0.8 имеет смысл ставить?
данный файл расположен в каталоге "C:\Program Files\MySQL\MySQL Server 5.0\bin". Что с ним следует сделать?
1) положить библиотеку в каталог eserv3\common plugins\plugins\mstat\lib\
2) добавить "C:\Program Files\MySQL\MySQL Server 5.0\bin" в системную переменную окружения PATH
2007-11-27 5:09:22 PM;Thread [id 3976] ERROR: [ErrorCode=1045, ErrCnt=0 from 1] — Access denied for user 'admin'@'localhost' (using password: YES)
Ошибка из лога МСтата говорит о том, что в mysql-е пользователя admin нет (или у него нет прав для доступа к базе mstat)
Возникла такая же проблема... Уточните, пожалуйста, а обновлять браузер стоит со стороны компьютера клиента (откуда идет управление) или на компьютере-сервере, там где eproxy работает?
При этом такие же действия на тестовом сервере, предложенном Вами проходят нормально...
На сервере обновить до ie 7 не могу (установлен win server 2000)
Для эксперимента попробуйте поставить FF на клиенте или подключиться клиентом на котором стоит IE7 и создать отчет
Все заработало, спасибо. Установил ff
Вот интересно, а почему на демонстрационном сервере mstat http://81.3.183.10/mstat/ все работает с 6 ie, а на недомонстрационном нет?
Для желающих принять участие в тестировании и отладке предлагаю скачать MStat 2.1 beta 4
Основные нововведения:
Обновление предыдущих версий:
Для обновления уже установленной версии MStat необходимо выполнить следующие действия:
Download:
ftp.eserv.ru
Просто стал переставлять сервак, и столкнулся со странной штукой — не даёт открыть интерфейс настройки mstat-а. Вместо того, чтобы открыть setup.html, предлагает сохранить его как файл.
Вот, пытаюсь переустановить его — но не могу скачать никакого, ни 2,0 ни 2,1.
Конфигурация сервера: Windows Server 2003 X64. Mstat 2.0, Eserv/Proxy 3.35, MySQL 5.0.67
извините за задержку с ответом, был в командировке для начала попробуйте обновить веб-интерфейс до текущего состояния, возможно проблема уйдет сама собой
С этим вэб-интерфейсом, вообще пропало все меню Mstat )))
ERROR: [AnyDAC][Phys][MySQL]-314. Cannot load vendor library [libmysqld.dll or libmysql.dll].
Не найден указанный модуль.
Check it is located in one of the PATH directories or in the application EXE directory
Может что я не так делаю?
Библиотека имеет место быть?
Running script [tmp_create_user.sql] ...
GRANT ALL PRIVILEGES ON Eserv3.* TO 'mstat' IDENTI ...
Ok [00:00:00.016].
Script [tmp_create_user.sql] finished without errors [00:00:00.016].
Done.
Пойдем дальше!
Спасибо!
По порядку: создаётся БД с именем Eserv3... хорошо. База уже была, ругнулся, но сути дела не меняет.
Затем начинается интересное...
Видно, что обращается к базе eserv3, что для линуксового Мускуля совсем не то-же самое, что и Eserv3.
Потом вроде-бы создаются таблицы, все имена — в нижнем регистре:
А вот во время работы в логи mstat-а валится следующее (acsmtp_debug.log):
То есть, обращения к таблицам идут с именами, написанными с разными регистрами.
Конечно, вроде бы можно подправить Мускуля на серваке, чтобы ему было пофиг на регистры, но это а) костыль б) может повлечь за собой глюки с остальными базами, коих немало.
В общем, господа разработчики, примите пожалуйста меры!