Решение работает вкупе с экспортером ЖР 1С от Евгения Акпаева OneSTools.EventLog
Функции приложения:
- Слежение за появлением новых данных в экземпляре кликхауса.
- При отсутствии онных на протяжении заданного количества времени службе EventLogExporter отправляется команда на перезапуск.
- После определенного количества попыток перезапуска службы и при продолжающемся отсутствии новых данных отправляется сообщение о проблеме в телеграм
- Архивация файлов ЖР предыдущего дня и отправка архива на репу
- Осуществление удаления данных из кликхауса выходящих за заданную глубину хранения
- Удаление данных предыдущего дня из кликхауса по произвольным отборам
Решение работает с библиотекой secure-json, поэтому запуск возможен только с использованием пароля переданным аргументом командной строки, даже если настройки не зашифрованы
{
"cluster_base_name": "ERP_26", -- Имя базы в кластере 1С, нужно для определения
"backup_path": "\\\\10.100.99.99\\BKP-LOG-Rep\\1CLogs\\ERP", -- Путь для сохранения архива ЖР предыдущего дня
"clickhouse": {
"url": "http://path_to_server:8123", -- Сервер clickhouse
"user": "default", -- Пользователь с правом записи
"password": "",
"database_name": "v8logs", -- Имя базы данных clickhouse
"deep_of_history": 20 -- глубина хранения данных в clickhouse
},
"telegram": {
"bot_token": "", -- Токен телеграмм бота
"chat_id": "" -- Чат ИД в который необходимо отправлять алерты
},
"service": {
"name": "EventLogExporter", -- Имя службы экспортера от Евгения Акпаева
"data_waiting_time_sec": 60, -- Время ожидания получения новых данных до перезапуска службы
"count_restart_service": 5 -- Количество перезапусков сервиса по истечении которых необходимо переслать алерт в телеграмм
},
"removal_conditions": [ -- Условия удаления данных, дополняют условие "DateTime > toStartOfDay(now()) - 86400 and DateTime < toStartOfDay(now())"
"Metadata = '' and (Event = 'Транзакция.Начало' or Event = 'Транзакция.Фиксация')"
]
}