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

  1. По умолчанию, используется построчный формат логов:

LOG_FORMAT=default

Логи пишутся построчно в файл: .log/production.log.

  1. Для сбора данных в формате построчный 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.

Событие аудита содержит следующие данные:

Таблица 8.1 Атрибуты событий аудита для объектов 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.

Таблица 8.2 Список регистрируемых событий аудита для объектов 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):

Очередь событий аудита в Resque

Рисунок 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.