Лог-журналы

Обзор

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

В ходе работы роли заносят информацию в лог-журналы: /var/log/era/<NODE>/<CATEGORY>/<FILE>.log, где

  • NODE – папка с именем ноды.

  • CATEGORY – папка с именем категории лог-журналов.

  • FILE – конкретный файл порции лог-журнала определенного типа, привязанный ко времени и ограниченный по размеру.

Дополнительно продуктовые микросервисы заносят информацию в лог-журналы: /var/log/era/<MSVC_NODE>/domains/<MICROSERVICE_NAME>/<FILE>.log, где дополнительно

  • MSVC_NODE – папка с именем ноды msvc.

  • MICROSERVICE_NAME – папка с именем продуктового микросервиса.

Лог-журналы пишутся локально на сервере в рабочем каталоге ноды, где исполняется экземпляр роли. Файлы лог-журналов разделяются по категориям, таким образом в папке лог-журналов ноды располагаются папки категорий, внутри которых лежат файлы. Каждый файл представляет собой определенный тип логирования – отражается в префиксе его имени, например trn_2019-10-07.0002.log.

Файлы лог-журналов одного типа делятся по 10 МБ и нумеруются постфиксом.

Файлы лог-журналов автоматически удаляются по истечении 2 суток с момента закрытия. При накоплении в каталоге лог-журналов ноды суммарного объема более 1 ГБ, наиболее старые файлы автоматически удаляются. Пустые каталоги категорий также автоматически удаляются.

При смене даты в локальном часовом поясе сервера текущие файлы автоматически закрываются, и логирование продолжается в файлах, содержащих в имени новую дату.

При закрытии очередного файла он автоматически отправляется в хранилище лог-журналов (роль logstore) текущего сайта. При отсутствии доступа к нему попытки отправить файл будут периодически производиться, пока файл не будет удален.

Логирование приостанавливается, если на диске с рабочим каталогом ноды остается менее 3 ГБ свободного места. Логирование возобновляется после появления свободного места. Операция проверки протекает с периодичностью в 1 минуту.

Работа с лог-журналами сама по себе отражается в лог-журналах категории log.

В каждом лог-журнале фиксируется время и идентификатор процесса, размещающего сообщение. При перезапуске ноды файл последнего лог-журнала будет переоткрыт для записи, и в него будет размещена стартовая совокупность набор данных.

================================================================================
======== Log started at 2024-09-05 11:33:02.487 ================================
======== Cookie='ELIVFDFOXKYQSMLOZZEN'
================================================================================

11:33:02.487    <0.26543.6>     message 1
11:33:02.530    <0.26543.6>     message 2
...

Настройка логирования

По способу настройки вывода в лог-журналы информация делится на:

  • Постоянную – размещается в лог журналах без возможности выключения.

  • Отладочную – в продакшене выключена.

    • В мастер домене в приложении "Настройки" в разделе "Система. Ноды" каждой ноде можно установить уровень логирования. По умолчанию 'INFO'. Уровень сбрасывается автоматически при перезапуске.

    • В целях отладки может быть включена разработчиками и предоставлена в виде архива с патчем.

  • Настраиваемую

    • В конфигурации (в опциях соответствующих ролей, например log_trn, log_media у роли b2b, log_level у роли mg);

    • В свойствах сущностей (в опциях соответствующих сущностей, например уровень логирования сценариев.

Слои логирования

По способу привязки к процессам и сущностям в лог-журналах информация делится на:

  • инфраструктурную;

  • процессную;

  • внутри-доменную

    • общую;

    • по процессам связанным с сущностями;

    • микросервисы продуктового слоя.

Следует отметить, что

  • ряд сообщений по доменам относится к инфраструктурному слою. Например, процесс синхронизации данных домена между сайтами.

  • ряд процессов несмотря на свою связь с доменами, относится к процессному слою. Например, обработка звонка и логирование SIP-трафика.

Содержание категорий

Table 1. Категории лог-журналов
Категория Типы и описания

boot

Лог-журналы приложения boot – загрузчик ролей внутри ноды.

  • erl – Основной лог приложения boot. Отражает процесс загрузки ролей в ноду.

callstore

Лог-журналы роли callstore.

  • erl – Основной лог роли. Отражает процесс загрузки и перетекания роли, фиксирует некоторые значимые события в процессе работы.

configurator

Лог-журналы сервиса загрузки ноды

  • cfg – Основной лог конфигурации. В рамках server shell отражает процесс загрузки и запуска ролевых нод. В рамках based role отражает процес загрузки ролевой ноды.

  • child_node – Лог ноды для проверки возможности пинга дочерних нод. Отражает процесс загрузки тестовой ноды. Только для server shell.

  • site_pinger – Лог пинга от server shell до роли ic. Только для server shell.

  • site_start_stats – Статистика о процессе epmd, записывается при запуске server shell. Только для server shell.

domaincenter

Лог-журналы ролей mdc и sdc.

  • erl – Основной лог роли. Отражает процесс загрузки и перетекания роли, фиксирует некоторые значимые события в процессе работы.

  • sync – Отражает процесс синхронизации доменных данных между рабочим сайтом и мастер-сайтом на стороне рабочего сайта.

domains

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

Для роли msvc - содержит лог-журналы микросервисов продуктового слоя. Глубина логирования настраивается в приложении администрирования продуктового слоя конкретного домена.

domstore

Лог-журналы ролей domstore.

  • erl – Основной лог роли. Отражает процесс загрузки и перетекания роли, фиксирует некоторые значимые события в процессе работы.

env

  • db_structure – Отражает процесс обновления БД на серверах PostgreSQL.

  • dbaccess – Отражает процесс подключения к БД PostgreSQL.

  • env – Фиксирует ошибки общих функций и сервисов нижнего уровня.

  • mns – Отражает процесс системного взаимодействия с объектной БД mnesia.

  • msgqwtc – Фиксирует сообщения сервиса слежения за очередями сообщений процессов виртуальной машины erlang.

  • wtc – Фиксирует сообщения сервиса производительности и слежения за соединениями между нодами. Раз в минуту фиксирует ALIVE состояние ноды.

error_logger

Лог-журналы сервиса обработчика сообщений от виртуальной машины erlang: ошибки, предупреждения, информационные сообщения.

  • info – Фиксирует информационные сообщения от виртуальной машины erlang.

  • warn – Фиксирует предупреждения от виртуальной машины erlang.

  • err – Фиксирует сообщения об ошибках от виртуальной машины erlang.

  • other – Фиксирует прочие сообщения от виртуальной машины erlang.

huntq

Лог-журналы роли huntq.

  • erl – Основной лог роли. Отражает процесс загрузки и перетекания роли, фиксирует некоторые значимые события в процессе работы.

  • trace_obj – Сокращенный лог действий fsm объектов в рамках роли. Отражает действия над размещенными в очередь объектами.

  • trace_rsrc – Сокращенный лог действий fsm ресурсов в рамках роли. Отражает действия над используемыми ресурсами в очереди.

  • dbg_obj – Расширенный лог действий fsm объектов в рамках роли. Отражает действия над размещенными в очередь объектами.

  • dbg_rsrc – Расширенный лог действий fsm ресурсов в рамках роли. Отражает действия над используемыми ресурсами в очереди.

ic

Лог-журналы роли ic.

  • erl – Основной лог роли. Отражает процесс загрузки и перетекания роли, фиксирует некоторые значимые события в процессе работы.

  • srv_pinger – Лог пингов от server shell и других ролей ic, а так же пингов к роли mc. Содержит неудачные попытки пингов.

log

Лог-журналы сервиса логирования.

  • log – Отражает взаимодействие системы с лог-журналами: открытие файлов, закрытие файлов, смену дат, очистку, перенос в хранилище.

logstore

Лог-журналы роли logstore.

  • erl – Основной лог роли. Отражает процесс загрузки и перетекания роли, отражает работу с файлами архива лог-журналов: добавление, удаление.

mc

Лог-журналы роли mc.

  • erl – Основной лог роли. Отражает процесс загрузки и перетекания роли, фиксирует некоторые значимые события в процессе работы.

  • update – Лог действий fsm системы обновления в рамках роли.

  • update_node – Лог действий в рамках ноды обновления. Отражает взаимодействия с серверами более старых версий.

  • pinger – Лог поступающих пингов от ролей ic со всех сайтов.

  • trace – Лог действий fsm мастера конфигураций. Отражает действия над конфигурацией в рамках роли.

  • cfg_error – Лог ошибок при проверке конфигураций в рамках fsm мастера конфигураций.

  • cfg_applying – Лог применения конфигурации в рамках fsm мастера конфигураций.

mgc

Лог-журналы роли mgc.

  • erl – Основной лог роли. Отражает процесс загрузки и перетекания роли, фиксирует некоторые значимые события в процессе работы роли и производит регулярную фиксацию текущего состояния.

mg

Лог-журналы ролей mg и bgmg и приложения rtx_mg3.

  • erl – Основной лог роли. Отражает процесс запуска и мониторинга приложения rtx_mg3.

  • mg3 – Отражает общий процесс работы медиа-шлюза.

  • mg_module – Отражает общий процесс работы медиа-шлюза в части обслуживания медиа-контекстов.

  • mg_rtp_stat – Фиксирует статистику полученных и отправленных RTP пакетов по завершении работы терминейшенов медиа-контекстов.

  • proto – Фиксирует содержание всех поступивших и отправленных пакетов протокола MEGACO (на стороне медиа-шлюза rtx_mg3).

  • stat – Фиксирует периодический срез по количеству объектов в оперативной памяти приложения rtx_mg3.

middleware

Лог-журналы роли mware.

  • erl – Основной лог роли. Отражает состояние сервисов, поддерживаемых ролью mware.

  • accdr – Фиксирует события класса alertcallevents.

mixer

Лог-журналы роли mix и приложения rtx_mixer.

  • erl – Основной лог роли. Отражает процесс запуска и мониторинга приложения rtx_mixer.

  • subscr – Отражает процесс подписки роли mix на внутренние очереди сообщений брокера.

  • mix_error – Лог ошибок при микшировании или перемещении готовых файлов.

  • dwnld_files – Лог скачивания файлов, сгенерированных rtx_mg3, для микширования.

registrar

Лог-журналы роли sr.

  • erl – Основной лог роли. Отражает процесс загрузки и перетекания роли, фиксирует некоторые значимые события в процессе работы.

reserver

Лог-журналы роли rsv.

  • erl – Основной лог роли. Отражает процесс загрузки и перетекания роли, фиксирует некоторые значимые события в процессе работы.

rpc

  • rpci – Лог роли rpci. Отражает процесс работы роли, фиксирует некоторые значимые события в процессе работы.

  • rpco – Лог роли rpco. Отражает процесс работы роли, фиксирует некоторые значимые события в процессе работы.

sc

  • update – Лог действий fsm системы обновления в рамках роли.

  • update_node – Лог действий в рамках ноды обновления. Отражает взаимодействия с серверами более старых версий.

script

Лог-журналы приложения обработки сценариев script и роли svc.

  • cdr – Фиксирует события класса scriptevents.

  • erl – Основной лог роли scr и сервиса обработчиков сценариев. Отражает процесс загрузки и перетекания сервиса служебных задач, фиксирует некоторые значимые события в процессе работы, фиксирует передачу управления компонентам служебных сценариев.

  • <SCRIPTTYPE>@<DOMAIN> – Фиксирует информацию о работе сценариев и их компонентов, привязывая ее к типу сценариев и к домену. Содержит информационные сообщения, предупреждения, ошибки выполнения.

  • svcscr – Лог сервиса запуска служебных сценариев. Отражает процесс загрузки, фиксирует некоторые события в процессе работы.

selector

Лог-журналы роли sel.

  • cdr – Фиксирует события класса selectorevents.

  • erl – Основной лог роли sel. Отражает процесс загрузки и перетекания роли, фиксирует некоторые значимые события в процессе работы.

sip

Лог-журналы ролей обработчиков SIP-протокола.

  • callid – Фиксирует все обрабатываемые ролью CallId.

  • cdr – Фиксирует события CDR классов callevents, confevents, providerevents.

  • media – Отражает процесс обмена сообщениями на внутреннем интерфейсе между компонентами обслуживания SIP-диалогов и медиа-контекста.

  • mgct – Отражает процесс обмена сообщениями на управляющем интерфейсе между ролями SIP и mgc (media-gate-controller) со стороны SIP.

  • sip – Фиксирует события и действия на интерфейсе между SIP-стеком и бизнес-логикой, а также отражает внутренний процессинг FSM диалога.

  • trn – Фиксирует содержание всех поступивших и отправленных пакетов SIP.

broker

Лог-журналы роли broker.

  • erl – Основной лог роли. Отражает процесс загрузки и перетекания роли, фиксирует некоторые значимые события в процессе работы.

srvc

  • update – Лог действий fsm системы обновления в рамках server shell.

statestore

Лог-журналы роли sts.

  • cdr – Фиксирует события CDR классов callevents, confevents.

  • erl – Основной лог роли. Отражает процесс загрузки и перетекания роли, фиксирует некоторые значимые события в процессе работы.

store

Лог-журналы роли st.

  • erl – Основной лог роли. Отражает процесс загрузки и перетекания роли, фиксирует некоторые значимые события в процессе работы.

trace

Лог-журналы внутреннего сервиса трассировки процессов.

  • trace_multi.txt – Лог трассировки кода системы. Фиксирует вызовы функций.

  • trace_multi2.txttodo

  • trace_multi3.txt – Лог трассировки кода системы. Фиксирует вызовы функций, входные параметры и выходные значения.

update

  • stdout – Лог действий fsm системы обновления по умолчанию. Применяется если не определен способ логирования системы обновления в рамках роли.

usercenter

Лог-журналы роли usr.

  • erl – Основной лог роли. Отражает процесс загрузки и перетекания роли, фиксирует некоторые значимые события в процессе работы.

vmail

Лог-журналы роли vmail.

  • erl – Основной лог роли. Отражает процесс загрузки и перетекания роли, фиксирует некоторые значимые события в процессе работы.

ws

Лог-журналы роли ws.

  • erl – Основной лог роли. Фиксирует ошибки веб-сервера, а также процесс обмена сообщениями на websocket-интерфейсе.

wssubscr

Лог-журналы роли wssubscr.

  • erl – Основной лог роли. Отражает процесс загрузки и перетекания роли, фиксирует некоторые значимые события в процессе работы.

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

Особые категории

Существует несколько лог-журналов, не попадающих под описанную структуру хранения и фиксации событий.

Table 2. Отдельные файлы
Файл Описание

erlang.log

erlang.log.<PART>

Фиксирует консольный вывод рабочих нод виртуальной машины.

Размещается непосредственно в рабочем каталоге ноды.

<PART> циклически замыкается от 0 до 9. Последний файл следует определять по времени последней записи.

erl_crash.dump

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

Размещается непосредственно в рабочем каталоге ноды.

error.log,

error.log.<PART>

Регистрирует ошибки возникшие в ноде. Создается только нодами, исполняющими приложение lager. Такими являются ws и все роли SIP.

Размещается в корне каталога логирования.

<PART> циклически замыкается от 0 до 9. Последний файл следует определять по времени последней записи.

crash.log

crash.log.<PART>

Регистрирует падения внутренних виртуальных процессов внутри ноды. Создается только нодами, исполняющими приложение lager. Такими являются ws и все роли SIP.

Размещается в корне каталога логирования.

<PART> циклически замыкается от 0 до 9. Последний файл следует определять по времени последней записи.

console.log

console.log.<PART>

Регистрирует некоторые ключевые внутренние точки в базовых процессах. Создается только нодами, исполняющими приложение lager. Такими являются ws и все роли SIP.

Размещается в корне каталога логирования.

<PART> циклически замыкается от 0 до 9. Последний файл следует определять по времени последней записи.