Загрузка лога kerio в MSSQL










Парсинг и загрузка лога kerio 7.4.2 в MSSQL 2008.
Построение отчетов на СКД к внешним источникам данных

Столкнулся с проблемой анализа наиболее посещаемых сайтов в компании. Топ 10 сайтов за прошлый месяц. 

А также с задачей составить отчет по деятельности пользователя, чтобы все хранилось в одном месте.

В результате придумал такую вещь. Все грузим в таблицу MSSQl, далее в 1С подключаем эту таблицу как внешний источник данных и строим различные отчеты

1. Разбираем файл лога Kerio

 Формат файла следующий:

[11/Nov/2014 14:17:28] 192.168.31.9 — «Яндекс» http://ya.ru/

Дата

IP адрес компьютера

Заголовок браузера

Интернет ссылка

Файл довольно объемный у меня весит около 300 метров. Для чтения из 1С использую объект «ЧтениеТекста». Перебираю строки и парсю их на составляющие. Иногда попадаются недопустимые символы. С помощью функции 1С «НайтиНедопустимыеСимволыXML» избавляюсь от них.

2. Создаем хранимую процедуру на MSSQL

 Хранимая процедура

INSERT INTO KerioLog.dbo.Log

    ([id] ,[IP],[Text],[DateEvent],[Ost])

    VALUES (@id, @IP,@text,@DataEvent,@Ost)

3. Создаем внешний источник данных в 1С

Подключаюсь к MSSQL через стандартный драйвер.

Строка подключения:

DRIVER={SQL Server};SERVER=server1C;UID=sa;PWD=password;DATABASE=KerioLog

 Добавляю таблицу и функцию.

Внешняя таблица

Внешняя таблица

На закладке дополнительно указываю права отдельно на таблицу и отдельно на функцию.

Более подробно подключение к внешним источникам описано здесь: //infostart.ru/public/90666/

 При первом запуске в режиме Предприятия будет выводиться оконо с запросом аутентификации к MSSQL серверу.

Пароль для подключения

4. Запускаем обработку загрузки данных в таблицу

ВнешниеИсточникиДанных.LogKerio.dbo_insert_log(ТекИтерация,ИП, СтрокаURL,ДатаСоб,Остаток);

В поле «Остаток» я записывал домен из СтрокиURL. Далее в отчете я компоновал по этому полю и получал количество посещений одного сайта.

5. Строим отчет по таблице через компоновку данных

 ВЫБРАТЬ
dbo_Log.IP КАК IP,
dbo_Log.Text КАК URL,
dbo_Log.DateEvent КАК ДатаСобытия,
dbo_Log.Ost КАК Домен,
dbo_Log.Text КАК КоличествоUrl,
НАЧАЛОПЕРИОДА(dbo_Log.DateEvent, ДЕНЬ) КАК НачалоДня
ИЗ
ВнешнийИсточникДанных.LogKerio.Таблица.dbo_Log КАК dbo_Log
ГДЕ
dbo_Log.DateEvent МЕЖДУ &НачалоПериода И &КонецПериода
УПОРЯДОЧИТЬ ПО
ДатаСобытия

 В настройках отчета создал 2 варианта:

Самые посещаемые сайты 

Посещаемые сайты по дням

Самые посещаемые сайты

Оформил все в виде отдельной конфигурации. 

Обработка загрузки данных из Kerio и отчет к внешней таблице.

Конфигурация будет полезна для быстрого понимания, как работать с внешними источниками данных.

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *