Простейшее использование Elasticsearch для работы с журналом регистрации

22.05.20

База данных - Журнал регистрации

Простейшая настройка выгрузки журнала регистрации в Elasticsearch для ускорения поиска.

Бесплатные

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Узнавайте о новых бесплатных решениях в нашей телеграм-группе Инфостарт БЕСПЛАТНО

Наименование Скачано Бесплатно
Простейшее использование Elasticsearch для работы с журналом регистрации:
.zip 13,95Kb
95 Скачать бесплатно

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Работа была сделана для устранения проблем долгого поиска информации "кто виноват" и т.п., в базах РИБ по журналам регистрации. Все наработки находятся в git: https://github.com/smilut/uploadRegJornal2Elastic.git

Разработка и тестирование велись на платформе 8.3.13.1513. Функционал запуска по расписанию тестировался в конфигурации Бухгалтерия предприятия 3.0.70.50.

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

Описание файлов git:

ОбработкаВыгрузкиЖРсЗапускомПоРасписанию.epf - обработка, которая загружается как дополнительная обработка и запускается по расписанию (функционал БСП). В этой обработке указываются параметры подключения к logstash для выгрузки данных и параметры подключения к Elastic для выполнения запросов. Обработка выполнения запросов еще в вяло текущей разработке, т.к. ее наличие не критично для поиска данных. Скорее обработка формирования запросов необходима пользователям, которые не хотят менять привычный интерфейс 1С на что-то другое. Добавляет к данным журнала регистрации реквизит с указанием строки подключения к базе, из которой выгружается журнал регистрации.

export.json - настроенные в нашей системе дашборды и сопутствующие объекты.

oncjornallog_template.json - образец запроса создания шаблона для индекса журнала. В шаблон добавлен анализатор, который разбивает содержимое некоторых полей на лексемы, что позволяет искать данные по не полностью набранному слову. С настройками по-умолчанию такого поведения добиться не удалось.

oneclog.conf - файл конфигурации logstash, при условии что сервис принимает данные только от 1С, если надо завести данные от нескольких систем настройка немного усложняется. В своих настройках мы разделяли обработку данных используя ключ "tag".

 
 oneclog.conf для приема данных с нескольких источников

Обработка выгрузки журнала построена на том же принципе, что и filebeat, с небольшим ограничением или усовершенствованием. При запуске запуске можно указать нижнюю границу загрузки, которая будет смещаться при каждой успешной передаче данных в Elastik. Если дата начала выгрузки не указана, то отступаем на три месяца от текущей даты.

 
 Код работы с периодом выгрузки журнала регистрации

Конечно же существует возможность задвоения переданных данных, например процесс передал порцию данных и упал до обработки ответа (выключение питания, перезагрузка и т.д.). В этом случае граница чтения данных не сдвинется и данные будут переданы повторно, но в данном случае это не критично. Elastic позиционируется, как система быстрого поиска и если в результате поиска будут найдены две абсолютно идентичные записи в логах это не исказит описанного в них события. Filebeat, насколько смог понять документацию, ведет себя также. В своих "недрах" он сохраняет указатель до какого момента вычитан файл лога, что бы в случае сбоя начать с этой позиции. Просто за счет скорости опроса у filebeat  (по-умолчанию, кажется 30ms) порция передаваемых данных, как правило очень маленькая и задвоение маловероятно. Необходимая периодичность выгрузки в 1С зависит от интенсивности работы пользователей, обменов, регламентных заданий и т.п. В тестовых системах устанавливали по 2 минуты.

 
 Код выгрузки данных журнала регистрации в Elastic

Если кому-то лень качать с git прикладываю архив файлов в текущем состоянии разработки.

Буду рад замечаниям, критике указаниям на ошибки и вопросам, даже если не смогу на них ответить ).

Вступайте в нашу телеграмм-группу Инфостарт

Журнал регистрации Elasticsearch ELK

См. также

Журнал регистрации WEB-интеграция Программист 1С 8.3 1С:Библиотека стандартных подсистем Абонемент ($m)

Долго отлаживали интеграции через сообщения, журнал регистрации и чужие прокси. На проде это не взлетело. Собрали простой инструмент внутри платформы — смотришь запрос/ответ, повторяешь, выгружаешь curl.

1 стартмани

07.08.2026    573    2    Viktor_Ermakov    7    

11

Администрирование СУБД Журнал регистрации Системный администратор Программист 1С 8.3 Бесплатно (free)

Журнал регистрации на нагруженной базе перестаёт открываться: файлы растут на гигабайты в день, просмотр виснет, история недоступна. Рассказываю, как мы вынесли журнал трёх продуктивных баз в ClickHouse: 35 млрд событий, поиск всех ошибок за сутки — 0,11 секунды, привычная форма журнала для пользователей и падение числа ошибок в проде в 23 раза за полгода. Архитектура, схема таблицы, грабли интеграции и все цифры с прода.

04.08.2026    1006    nedomolkov.ivan    0    

8

Журнал регистрации Бесплатно (free)

Полнотекстовый поиск в миллионах записей журнала регистрации 1С может занимать минуты или даже часы, а стандартные инструменты не позволяют эффективно выполнять агрегации и анализировать данные на больших объемах. Расскажем о том, как с помощью ClickHouse обеспечить практически мгновенный разбор инцидентов, настроить мониторинг и автоматическую реакцию на события журнала регистрации.

28.02.2026    4861    julia96_07    0    

13

Журнал регистрации Программист Россия Бесплатно (free)

В материале рассматривается сравнение двух инструментов для работы с журналом регистрации 1С: утилиты ibcmd и платформы Vector. Описаны их функциональные возможности, тестирование производительности и практическое применение для преобразования логов в формат JSON.

20.11.2024    8593    user1913000    13    

26

Журнал регистрации Тестирование QA Программист Бесплатно (free)

Поговорим про логирование в приложениях на базе 1С, рассмотрим проблемы, которые возникают при сборе информации из этих систем, и обсудим практический опыт применения внутренних и внешних инструментов для анализа логов.

21.10.2024    9519    leemuar    8    

25

Инструменты администратора БД Журнал регистрации Системный администратор 1С:Предприятие 8 1С:Управление торговлей 11 Абонемент ($m)

Внешняя обработка для регламентного сокращения журнала регистрации для конфигураций на базе БСП и платформы 8.3.20+

1 стартмани

29.12.2023    5679    63    dima_gsv    6    

15

Журнал регистрации Мониторинг Системный администратор Программист Абонемент ($m)

Как легко и быстро с помощью специализированных решений собирать, парсить и передавать логи и метрики.

1 стартмани

19.11.2023    4750    10    AlexSTAL    0    

8

Мониторинг Журнал регистрации Технологический журнал Системный администратор Программист Абонемент ($m)

Как легко и быстро с помощью специализированных решений собирать, парсить и передавать логи и метрики.

1 стартмани

13.11.2023    10154    15    AlexSTAL    0    

48
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. goleaff2006 71 21.06.19 17:50 Сейчас в теме
она выгружает за период? Как определяет что уже выгружала а что нет?
3. milut 64 22.06.19 17:06 Сейчас в теме
(1) Спасибо. Дописал ответ в статью.
2. milut 64 21.06.19 21:57 Сейчас в теме
В настройках сохраняется граница выгруженных данных. С этого момента начинается следующая выгрузка.
4. malikov_pro 1376 08.09.19 10:02 Сейчас в теме
Зачем logstash, если подготовку данных можно сделать на уровне выгрузки?
5. milut 64 09.09.19 09:11 Сейчас в теме
(4) Использовали elastic community, в котором есть ограничения настройки прав доступа. Поэтому прямой доступ не открывали. Никаких особенных причин для использования logstash не было.
6. malikov_pro 1376 09.09.19 14:17 Сейчас в теме
Дату последней записи в El можно получить
{
   "size": 1,
   "sort": { "Дата": "desc"},
   "query": {
      "term": {
      	"ConnectionString": "FILE=\"E:\\1C\\BASE\\DEMOTRD\";"
      }
   }
}
Показать


Для корректного поиска нужен маппинг

"ConnectionString": {
        "type": "keyword",
        "fields": {
          "keyword": {
            "type": "keyword",
            "ignore_above": 256
          }
        }
      },
Показать


И проверку с ЖР сделать

Если СоответствиеДанныеИндекса.Количество() = 0 Тогда
		ЭтоНачалоДанных = Истина;
	ИначеЕсли СоответствиеДанныеИндекса.Получить("Дата") <> Стр_ЖР.Дата Тогда
		ЭтоНачалоДанных = Истина;
	ИначеЕсли 
		СоответствиеДанныеИндекса.Получить("Событие") = Стр_ЖР.Событие 
		И СоответствиеДанныеИндекса.Получить("Сеанс") = Стр_ЖР.Сеанс
		И СоответствиеДанныеИндекса.Получить("ПредставлениеДанных") = Стр_ЖР.ПредставлениеДанных
		Тогда 	
		
		ЭтоНачалоДанных = Истина;
		ТочноеСовпадение = Истина;
	КонецЕсли;
Показать


ELK узлы спокойно прикрываются BasicAuth от NGINX + HTTPS
7. milut 64 09.09.19 22:54 Сейчас в теме
(6) наверняка можно и так. Мы смотрели в сторону nginx, но как ограничить доступ только передачей данных не нашли. Всегда оставался доступ к api. А крайнюю дату определял на стороне 1С только по субъективным причинам, тем способом который показался наиболее подходящим.
8. user1049749 15.01.20 14:24 Сейчас в теме
Добрый день, в версии 7.5 при использовании обработки для отправки POST запросов ошибка

{"error":"Incorrect HTTP method for uri [/localhost] and method [POST], allowed: [GET, PUT, DELETE, HEAD]","status":405}

База и elastic на одной машине. Через браузер и postman запросы проходят.
9. milut 64 15.01.20 20:02 Сейчас в теме
(8) попробуйте не localhost, а 127.0.0.1
10. user1049749 16.01.20 09:13 Сейчас в теме
аналогично, ответ приходит 405.

Сам elastic отвечает и работает, именно затык с получением данных через Вашу обработку и вообще с post запросом в 7.5.

Подскажите где смотреть, пожалуйста.
11. milut 64 16.01.20 10:46 Сейчас в теме
(10) В личку сообщения почему-то не отправляются. Не работает на новой инсталяции или после обновления? Сообщения отправляются в logstash или прямо в Elasticsearch?
Для отправки сообщения требуется регистрация/авторизация