8. Журналирование, аудит, мониторинг
8.1. Логирование в Datamart Platform Studio
Логи Datamart Platform Studio сохраняются в папку ./log в следующих файлах:
.log/production.log - логи работы Datamart Platform Studio в построчном формате;
.log/production_gostech.log - логи работы Datamart Platform Studio в формате, готовом для считывания FluentBit и logstash;
.log/watchtower.log - логи обновления Datamart Platform Studio;
.log/production_resque.log - логи очередей задач Resque.
8.1.1. Настройка ротации логов Datamart Platform Studio
Ротация логов Datamart Platform Studio осуществляется при помощи встроенной системной утилиты ОС Linux: logrotate. При установке Datamart Platform Studio в папку /etc/logrotate.d/ записывается конфигурация, с которой ротируются логи Программы.
/etc/logrotate.d/dms-log.conf
Настройки по умолчанию (при необходимости могут быть изменены системным администратором):
${WORK_DIR}/log/*.log {
rotate $1
daily
dateext
dateformat -%d%m%Y
compress
maxsize $2M
missingok
copytruncate
}
8.1.2. Настройка формата журнала логов Datamart Platform Studio
Настройка типа лог-файл данных мониторинга производится путем указания в переменных окружения (файл .env) значения параметра LOG_FORMAT
По умолчанию, используется построчный формат логов:
LOG_FORMAT=default
Логи пишутся построчно в файл: .log/production.log.
Для сбора данных в формате построчный JSON (требование сервиса Platform V Monitor платформы ГосТех), нужно указать параметр:
LOG_FORMAT=gostech
Логи будут сохранятся в формате построчный JSON в файл: .log/production_gostech.log, готовый для считывания FluentBit и logstash.
Примечание
При указании в переменной окружения LOG_FORMAT значений отличных от вышеперечисленных, Datamart Platform Studio не запустится и выдаст ошибку.
8.2. Настройка сбора логов инсталляций приложений
По умолчанию вывод логов инсталляций производится в консоль Docker (Параметр инсталляции LOGBACK_APPENDER_REF установлен в значения CONSOLE).
При необходимости, пользователь Datamart Platform Studio может настроить сбор логов инсталляций в указанное место.
Для этого в переменной инсталляции LOGBACK_APPENDER_REF необходимо значения CONSOLE изменить на FILE и в переменной LOGS_DIRECTORY указать путь на ВМ с Datamart Platform Studio, куда будут выводиться логи, например:
/opt/logs
а сами логи запишутся по такому шаблону:
/opt/logs/<datamart-id>/<app_name>-<app_id>.log
При помощи настройки глобальных переменных, пользователь может задать директорию, для записи логов глобально для всей Студии, для определенного ДЦ или услуги.
Формат пути сохранения логов указывается в переменной LOGBACK_FILE (Путь до лог-файла). Значение по умолчанию:
{{ logs_directory.value }}/{{ DTMS_DATAMART_ID | default('datamart-000') }}/{{ container_name }}.log
Предупреждение
Настройка LOGBACK_FILE является системной и ее изменение разрешено только после консультации со службой техподдержки Datamart Platform Studio.
8.3. Метрики мониторинга
В процессе работы Datamart Platform Studio происходит сбор следующих бизнес-метрик мониторинга:
метрики использования системных ресурсов (CPU, RAM);
время исполнения входящих запросов;
количество успешных/неуспешных выполнений входящих запросов;
время исполнения исходящих запросов или обращений к СПО (учитываются обращения к Resque);
количество успешных/неуспешных выполнений исходящих запросов.
Метрики собираются по адресу http://<адрес сервера |prod|>:8089/metrics/ в формате Prometheus, готовом для считывания сервисом Platform V Metrix.
Настройка интервала сбора метрик мониторинга задается в параметре PROMETHEUS_DATA_UPDATE_INTERVAL в конфигурационном файле. По умолчанию 2 сек.
8.4. События аудита
В процессе работы Datamart Platform Studio происходит регистрация следующих типов событий аудита для всех компонентов Datamart Platform Studio:
Авторизация (login, logout)
Создание компонента Datamart Platform Studio (create);
Удаление компонента Datamart Platform Studio (destroy);
Изменение настроек компонента Datamart Platform Studio (update);
Запуск задач для компонента Datamart Platform Studio (выполнение Ansible playbook) (task);
Резервное копирование/восстановление Datamart Platform Studio (studio_backuped, studio_restored);
Резервное копирование/восстановление услуг типа Витрина данных (datamart_backuped, datamart_restored);
Прочие события, приводящие к изменениям в БД Datamart Platform Studio.
Событие аудита содержит следующие данные:
Атрибут |
Описание |
|---|---|
request |
Уникальный идентификатор события аудита |
tags |
Идентификатор цепочки события |
createdAt |
Время создания события |
name |
Тип события |
module |
Наименование источника события» |
session |
Идентификатор сессии пользователя |
userLogin |
Логин пользователя |
userName |
Имя пользователя |
userNode |
ip адрес пользователя |
metamodelVersion |
Версия метамодели |
params |
Массив параметров события, таких как тип изменяемого объекта, идентификатор объекта в БД и т. д. |
8.4.1. Список событий аудита
В процессе сбора событий аудита происходит сбор стандартных действий:
Create (C) - создание;
Update (U) - обновление;
Delete (D) - удаление.
Помимо этого происходит сбор специфических действий для объектов Datamart Platform Studio.
Объект |
Стандартные |
Специфические действия |
|---|---|---|
Услуга |
(C),(U),(D) |
Создание тиражируемой услуги (профиля) |
Профиль |
(C),(D) |
Использование профиля для создания услуги; Экспорт; |
Сервер |
(C),(U),(D) |
Загрузка SSH Ключа пользователя; Выполнене действий API гипервизора |
Датацентр |
(C),(U),(D) |
Выполнене действий API гипервизора |
Аккаунт подключения к гипервизору |
(C),(U),(D) |
Выполнене действий API гипервизора |
Маршрут SSH |
(C),(U),(D) |
|
Сеть |
(C),(U),(D) |
|
Инсталляции |
(C),(U),(D) |
|
Интерфейсы |
(C),(U),(D) |
|
Файлы инсталляции |
(C),(U),(D) |
|
Настройки инсталляций |
(C),(U),(D) |
|
Бандл |
(C),(U),(D) |
|
Приложение |
(C),(U),(D) |
|
База данных |
(C),(U),(D) |
|
Репозиторий |
(C),(U),(D) |
|
Хранилище репозиториев |
(C),(U),(D) |
|
SSH Ключи пользователя |
(C),(U),(D) |
8.4.2. Настройка сбора и отправки событий аудита
События аудита Datamart Platform Studio собираются и агрегируются для отправки в систему аудита в Resque очереди audit (см. Рисунок 8.1):
Рисунок 8.1 Очередь событий аудита в Resque
Настройка отправки событий происходит в файле переменных окружения .env, где требуется разрешить отправку и указать адрес, по которому Resque будет отправлять события:
SEND_AUDIT_EVENTS=true
AUDIT_SERVICE_HOST=http://audit.datamart.ru
Для выполнения mTLS подключения, требуется добавить в директорию корневой папки Datamart Platform Studio volumes/audit файл сертификата с именем mtls.pem. Datamart Platform Studio и модули Proxy API будут учитывать наличие сертификата по пути volumes/audit/mtls.pem и при его наличии отправка событий аудита будет осуществляться по mTLS.