Skip to content

avito456/clickhouse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Выгрузка журнала регистрации 1С в Yandex Clickhouse

Полная документация по ссылкам ниже:

Инструкция по установке:

🔴 1. Установка andex Clickhouse + WEB интерфейс в Docker

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:      

🔴 2. Установка Exporter

( Устанавливаем без использования менеджера, который монтиорит кластер 1С и автоматически добавляет новые базы в Clickhouse. Будем запускать EventLogExporter.exe/dll, обслуживающий ЖР конкретно указанной информационной базы(з), указанных в секции Exporter ppsettings.json).

🔹 2.1 Скачиваем дистрибутив и копируем в каталог сервера 1С (например, в 'c:\EventLog') (akpaevj/OneSTools.EventLog)

🔹 2.2 Настраиваем файл конфигурации (appsettings.json):

♨️ Секция Manager:

(убираем эту секцию из 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:

"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" режим и не выполняется запрос последнего обработанного файла из БД

♨️ Секция ClickHouse:

"ConnectionStrings": {
    "Default": "Host=localhost;Port=8123;Username=default;password=;Database=database_name;"
  }

где:

Параметр Описание
Host localhost или путь к серверу
Port порт, по умолчанию, 8123
Username Имя пользователя, по умолчанию, 'default'
Database Имя базы в Clickhouse. Если базы нет, будет создана новая

🔴 Запуск экспорта лога в lickhouse (Exporter):

Все приложения могут быть запущены в 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

🔴 3. Подключение к 1С через ODBC

  1. Скачать и установить ODBC драйвер ClickHouse Ничего в драйвере настраивать не нужно.
  2. Подключить как внешний источник к 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
  1. Использовать анализ журнала регистрации в СКД.

см. Преобразование ссылки в UUID и обратно

About

Выгрузка журнала регистрации 1С в Yandex Clickhouse

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors