Полная документация по ссылкам ниже:
- 📍 Андрей Овсянкин. Вебинар Сверхбыстрый Журнал Регистрации 1C с помощью Yandex Clickhouse
- 📍 Андрей Овсянкин. Репозиторий с исходниками EvilBeaver/CllickHousePlayground
- 📍 Евгений Акпаев. Репозиторий Exporter (Евakpaevj/OneSTools.EventLog)
- 📍 Репозиторий Clickhouse Yandex
- 📍 ODBC драйвер ClickHouse
- 📍 runtime .net 5
Инструкция по установке:
version: "3.3"
services:
clickhouse:
image: yandex/clickhouse-server
ulimits:
nofile:
soft: 262144
hard: 262144
ports:
- "8123:8123"
volumes:
- "clickhouse-data:/var/lib/clickhouse"
click-ui:
image: spoonest/clickhouse-tabix-web-client
environment:
CH_NAME: 1C_Logs
CH_HOST: localhost:8123
depends_on:
- clickhouse
ports:
- "8080:80"
volumes:
clickhouse-data: ( Устанавливаем без использования менеджера, который монтиорит кластер 1С и автоматически добавляет новые базы в Clickhouse. Будем запускать EventLogExporter.exe/dll, обслуживающий ЖР конкретно указанной информационной базы(з), указанных в секции Exporter ppsettings.json).
🔹 2.1 Скачиваем дистрибутив и копируем в каталог сервера 1С (например, в 'c:\EventLog') (akpaevj/OneSTools.EventLog)
(убираем эту секцию из json т.к. менеджера не используем :) )
"Manager": {
"ClstFolders": [
{
"Folder": "C:\\\\Program Files\\1cv8\\srvinfo\\reg_1541",
"Templates": [
{
"Mask": "upp_main",
"Template": "[IBNAME]_el"
}
]
},
]
}где:
| Параметр | Описание |
|---|---|
| ClstFolders | Массив описаний каталогов рабочих серверов (reg_*) |
| Folder | Путь к каталогу рабочего сервера (reg_*) |
| Templates | Шаблоны обрабатываемых наименований информационных баз и правила наименования баз данных логов |
| Mask | Регулярное выражение, применяемое к имени информационной базы |
| Template | Шаблон имени базы данных хранения логов журнала. Обязательно должен содержать в себе переменную [IBNAME] |
"Exporter": {
"StorageType": 1,
"LogFolder": "C:\\Users\\akpaev.e.ENTERPRISE\\Desktop\\1Cv8Log",
"Portion": 10000,
"TimeZone": "Europe/Moscow",
"WritingMaxDegreeOfParallelism": 1,
"CollectedFactor": 2,
"ReadingTimeout": 1,
"LoadArchive": false
}где:
| Параметр | Описание |
|---|---|
| StorageType | тип хранилища журнала регистрации. Может принимать значения: 1 - Clickhouse 2 - ElasticSearch |
| LogFolder | путь к каталогу журнала регистрации 1С. ВАЖНО! путь указывать с двойными \ |
| Portion | Размер порции, записываемый в БД за одну итерацию (10000 по умолчанию) |
| TimeZone | часовой пояс (в формате IANA Time Zone Database), в котором записан журнал регистрации. По умолчанию - часовой пояс системы |
| WritingMaxDegreeOfParallelism | количество потоков записи в СУБД. Т.к. в ClickHouse не поддерживаются одновременные BULK операции, то параметр имеет смысл только для ElasticSearch. По умолчанию - 1 |
| CollectedFactor | коэффициент количества элементов, которые могут быть помещены в очередь записи. Предельное количество элементов равно Portion * CollectedFactor. По умолчанию - 2 |
| ReadingTimeout | таймаут сброса данных при достижении конца файла (в секундах). По умолчанию - 1 сек. |
| LoadArchive | Специальный параметр, предназначенный для первоначальной загрузки архивных данных. При установке параметра в true, отключается "live" режим и не выполняется запрос последнего обработанного файла из БД |
"ConnectionStrings": {
"Default": "Host=localhost;Port=8123;Username=default;password=;Database=database_name;"
}где:
| Параметр | Описание |
|---|---|
| Host | localhost или путь к серверу |
| Port | порт, по умолчанию, 8123 |
| Username | Имя пользователя, по умолчанию, 'default' |
| Database | Имя базы в Clickhouse. Если базы нет, будет создана новая |
Все приложения могут быть запущены в 2 режимах:
- как обычное приложение, либо
- как служба Windows/Linux. Для теста в Вашей среде, достаточно просто выполнить конфигурацию приложения в файле appsettings.json, установить runtime .net 5 (при его отсутствии) и запустить exe/dll. Базы данных в СУБД вручную создавать не нужно, они будут созданы автоматически.
Для запуска приложения как службы необходимо (название службы и путь к исполняемому файлу подставить свои):
Windows:
Поместить файлы приложения в каталог и выполнить в консоли команду:
sc create EventLogExporter binPath= "C:\elexporter\EventLogExporter.exe"
и запустить службу командой:
sc start EventLogExporter
По умолчанию: Username = 'default' и Password = ''
Подключиться к web сервису можно по адресу: http://localhost:8123
- Скачать и установить ODBC драйвер ClickHouse Ничего в драйвере настраивать не нужно.
- Подключить как внешний источник к 1С. ConnectioString:
Driver=ClickHouse ODBC Driver (Unicode);
Host=localhost;
Port=8123;
User=default;
Database=v8logs
| Параметр | Описание |
|---|---|
| Host | Адрес сервера Clickhouse |
| Port | Порт, по умолчанию, 8123 |
| User | По умолчанию, 'default' |
| Database | Имя базы данных, заданное в секции 'ClickHouse' ppsettings.json |
- Использовать анализ журнала регистрации в СКД.