Сервер BOOCO Astra (v 2.x) / master-logger
Установка, запуск, остановка микросервиса master-logger
Описание переменных .env для master-logger
◼ Настройка журналирования для нужных микросервисов в файле logger.yml
Журналирование настраивается на двух уровнях:
- для каждого микросервиса можно задать настройки: какие события отображать в консоли самого микросервиса, а какие — отправлять в брокер сообщений;
- на уровне микросервиса master-logger также можно настроить, что отображать в его консоли, а что сохранять в базе данных.
Настройка журналирования для каждого микросервиса
На уровне большинства микросервисов можно настроить:
- какие сообщения отображать в консоли самого микросервиса;
- какие сообщения транслировать в брокер.
Это делается в файле logger.yml
(индивидуального для каждого микросервиса).
Пример с выводом всех сообщений в консоль микросервиса и отправкой в брокер только сообщений с уровнями ERROR
(ошибки), INFO
(информационные сообщения), WARN
(предупреждения):
logger:
console:
level: [ all ]
context: [ all ]
broker:
level: [ ERROR, INFO, WARN ]
context: [ all ]
logger.yml
в контейнер, ее необходимо раскомментировать и перезапустить контейнер.volumes:
- ./logger.yml:/data/logger.yml
Настройка журналирования на уровне микросервиса master-logger
Для микросервиса master-logger есть свой файл logger.yml
, в котором настраиваются действия с логами каждого микросервиса:
db
— сохранять в базе данных;console
— выводить в консоль микросервиса master-logger (чтобы в одном месте смотреть все интересующие логи).
Названия микросервисов (rest-api-v1
, bosql
trigger-factory
и др.) берутся из поля source
, в котором указывается имя микросервиса, который является источником события.
Пример с сохранением в базе данных всех сообщений с уровнем ERROR
независимо от контекста и выводом всех сообщений в консоль микросервиса master-logger:
rest-api-v1:
db:
level: [ error ]
context: [ all ]
console:
level: [ all ]
context: [ all ]
bosql:
db:
level: [ error ]
context: [ all ]
console:
level: [ all ]
context: [ all ]
trigger-factory:
db:
level: [ error ]
context: [ all ]
console:
level: [ all ]
context: [ all ]
Работа с Журналом событий в BOOCO
BOOCO может работать в двух режимах:
- По умолчанию сообщения об ошибках записываются в таблицу
booco/log
через микросервис bosql и читаются из этой же таблицы. - Сообщения об ошибках отправляются в брокер сообщений и читаются из таблицы
booco_log/log
через master-logger.
Включение режима отображения Журнала master-logger в BOOCO
- Настройте режим публикации сообщений Журнала через master-logger. Для этого в файле
booco.yml
нужно отключить логирование черезdb
и включить логирование черезbroker
: - Сделайте так, чтобы Журнал забирался не с bosql, а через master-logger. Для этого настройте URL, по которому будут запрашиваться логи: в файле
.env
добавьте переменнуюLOG_URL
, которая указывает на API сервиса master-logger, например:LOG_URL=http://localhost:3001
. Уведомления об изменениях Журнала работают в обоих случаях одинаково: микросервисы bosql и master-logger публикуют их в брокере в стандартный exchange.
loggers:
console:
enable: true
db:
enable: false # ВАЖНО!
broker:
enable: true
exchange: booco.log
Просмотр Журнала
Если используются дополнительные микросервисы и настроено журналирование на уровне микросервиса master-logger, то в Журнале на сервере BOOCO:
- отображается дополнительная колонка Источник (Source);
- в Фильтре отображаются микросервисы, по которым можно отфильтровать сообщения в Журнале (по умолчанию показывается только
booco
).
Список дополнительных микросервисов берется из файла booco.yml
:
log:
services:
- bosql
- exchange-sync
- ldap-access
- trigger-factory
- rest-api-v1
Получить список микросервисов можно при помощи метода getConfig('log.services')
, который доступен и на бэкенде, и на фронтенде.