Подсистема для выгрузки, быстрого поиска и анализа журнала регистрации 1С в Elasticsearch













Elasticsearch — это opensource решение для очень быстрого поиска данных в больших массивах информации.
Использование этого решения позволит решить проблемы с поиском и анализом больших объемов информации журнала регистрации.
Протестировано на платформах начиная с 8.3.10.2580.

Позволяет загрузить в единое хранилище данных разнородную информацию в JSON-формате, а затем производить выборки детальной и агрегированной информации.

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

Для выгрузки журнала регистрации потребуется сервер с установленным ElasticSearch для загрузки в него данных и Kibana, которая служит для визуализации данных, поиска информации и построения готовых дашбордов и виджетов.

Описание и инструкции по установке ElasticSearch, вопросы безопасности/разграничения доступа к ElasticSearch/Kibana, настройка сертификатов, кластеризация и масштабирование ElasticSearch не рассматриваются т.к. это не входило в изначальную задачу.

Для внедрения подсистемы в свою конфигурацию необходимо запустить сравнение объединение с конфигураций в файле и выбрать в подменю "Действия" — "Отметить по подсистемам файла". После объединения необходимо зайти в режим 1С Предприятия и заполнить константы для ElasticSearch (пример есть на изображениях).

Быстрый старт:

 1)     Подключиться к инструменту – Kibana по ссылке «адрес сервера:5601»

 

 2)     Перейти на вкладку Discover и выбрать индекс индекс необходимой базы

 

 3)     В правом верхнем углу выбрать предлагаемый период:

Либо выбрать конкретный промежуток времени:

              

4)     На графике можно увидеть динамику количества записей в данный период времени:

 

 5)     Для поиска конкретной информации можно воспользоваться фильтрами по полям:

 6)     Пример поиска по событий по документам:

 

12 Comments

  1. pbabincev

    Очень круто!

    Reply
  2. GreenDragon

    С какой версией elastic общается подсистема?

    Reply
  3. metmetmet

    В статье не описано, но обычно интересует следующее:

    Как реализована выгрузка: один раз выгружаются данные и анализируются, или периодически выгружаются только новые данные или ещё как-то?

    Есть зависимость от формата ЖР?

    Reply
  4. Nikolo17

    (2) Должна работать начиная с 6 версии, на текущий момент обновлялись до версии 6.7.

    Reply
  5. Nikolo17

    (3) Выгружаются данные за промежуток времени один раз, далее подгружаются актуальные данные с настаиваемой периодичностью. От формата жр зависимости нет.

    Reply
  6. GreenDragon

    (4) Ковыряюсь с 7. Много различий с 6?

    Предыдущая версия подобной подсистемы работала с 5 и отличий был вагон

    Reply
  7. Nikolo17

    (6) Да API 6 версии сильно отличается от 5, тоже сначала с 5 работали. На 7 версию в планах переходить, по описанию существенных изменений в API не увидел.

    Reply
  8. GreenDragon

    (7) Спасибо за информацию. В таком случае после сегодняшнего хакатона будем качать и пробовать.

    Reply
  9. user612295_death4321

    Не анализировали случайно сколько места будет потреблять 1 день журнала регистрации? Например если сравнить занимаемый объем за день ldf / ldg файла и залитый этот же день в Elasticsearch ?

    Ищу какое нибудь решение которое позволит загружать большие журналы регистрации (цифры идут около 25 ГБ в сутки). Когда то рассматривал варианты Elasticsearch или ClickHouse от яндекса, но дальше рассматривания дело не дошло)

    Или может кто-то может порекдомендовать решение кто и как складирует монструозные объемы логов ?

    Reply
  10. Nikolo17

    (9) У нас выбор был между InfluxDB и Elastic. Остановились на втором варианте, поскольку был какой то опыт работы с ним. Размеры прогнозировать сложно, все зависит от количества записей в журнале, и размеров строк в записях. Если отталкиваться от размеров журнала в месяц то в Elastic он занимает в 2-3 раза больше места. Но опять же есть настройки самого Elastic которые могут сокращать или увеличивать этот размер, зависит от того что важнее нагрузка на железо или занимаемое место.

    Reply
  11. Semyonat

    Подскажите, а как вы решаете вопрос с идентификацией объектов. Для примера какой пользователь проводил тот или иной документ? Может у вас есть отдельные таблички с идентификаторами, и вы их соединяете или как некоторые выгружаю в индекс сразу с понятным названием?

    Reply
  12. Nikolo17

    (11) По умолчанию выгружается представление объектов (для документа по умолчанию дата и номер) и вполне можно по нему найти все операции. Имя пользователя и его идентификатор так же выгружаются по умолчанию, если необходимо то есть возможность добавлять поля на стороне 1с при выгрузке в elastic (программно), например поля конкретных объектов. При загрузке elastic автоматически добавляет необходимые поля в структуру, так же есть возможность самому редактировать структуру полей через rest api, но это в данной подсистеме не реализовано.

    Reply

Leave a Comment

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