Открыть меню
Платформа Эра. Документация
Toggle preferences menu
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

Лог-журналы: различия между версиями

Материал из Платформа Эра. Документации
Нет описания правки
Нет описания правки
 
(не показаны 3 промежуточные версии этого же участника)
Строка 12: Строка 12:
* <code>FILE</code> – конкретный файл порции лог-журнала определенного типа, привязанный ко времени и ограниченный по размеру.
* <code>FILE</code> – конкретный файл порции лог-журнала определенного типа, привязанный ко времени и ограниченный по размеру.


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


* <code>MSVC_NODE</code> – папка с именем ноды msvc.
* <code>MSVC_NODE</code> – папка с именем ноды msvc,
* <code>MICROSERVICE_NAME</code> – папка с именем продуктового микросервиса.
* <code>MICROSERVICE_NAME</code> – папка с именем продуктового микросервиса,
* <code>DOMAIN</code> – папк с именем продуктового домена.


Логи пишутся локально на сервере в рабочем каталоге ноды, где исполняется экземпляр роли. Файлы лог-журналов разделяются по категориям, таким образом в папке лог-журналов ноды располагаются папки категорий, внутри которых лежат файлы. Каждый файл представляет собой определенный тип логирования – отражается в префиксе его имени, например <code>trn_2019-10-07.0002.log</code>.
Логи пишутся локально на сервере в рабочем каталоге ноды, где исполняется экземпляр роли. Файлы лог-журналов разделяются по категориям, таким образом в папке лог-журналов ноды располагаются папки категорий, внутри которых лежат файлы. Каждый файл представляет собой определенный тип логирования – отражается в префиксе его имени, например <code>trn_2019-10-07.0002.log</code>.
Строка 54: Строка 55:
== Настройка логирования продуктового слоя ==
== Настройка логирования продуктового слоя ==
[[Файл:Уровни логирования продуктового слоя.png|мини|Уровни логирования продуктового слоя]]
[[Файл:Уровни логирования продуктового слоя.png|мини|Уровни логирования продуктового слоя]]
Для каждого рабочего домена запустите приложение Администратор Платформы. Меню Параметры - Система. Параметры логирования начинаются на <code>logs.</code> и заканчиваются на <code>.level</code> , например logs.ai.HolderService.level. Установите необходимый уровень логирования. Изменения вступят в силу немедленно без перезапуска микросервиса.   
Для каждого рабочего домена запустите приложение Администратор Платформы. Меню Параметры - Система. Параметры логирования начинаются на <code>logs.</code> и заканчиваются на <code>.level</code> , например <code>logs.ai.HolderService.level</code>. Установите необходимый уровень логирования. Изменения вступят в силу немедленно без перезапуска микросервиса.   


== Слои логирования ==
== Слои логирования ==
Строка 90: Строка 91:
|Лог-журналы сервиса загрузки ноды
|Лог-журналы сервиса загрузки ноды


* <code>cfg</code> – Основной лог конфигурации. В рамках server shell отражает процесс загрузки и запуска ролевых нод. В рамках based role отражает процес загрузки ролевой ноды.
* <code>cfg</code> – Основной лог конфигурации. В рамках server shell отражает процесс загрузки и запуска ролевых нод. В рамках based role отражает процесс загрузки ролевой ноды.
* <code>child_node</code> – Лог ноды для проверки возможности пинга дочерних нод. Отражает процесс загрузки тестовой ноды. Только для server shell.
* <code>child_node</code> – Лог ноды для проверки возможности пинга дочерних нод. Отражает процесс загрузки тестовой ноды. Только для server shell.
* <code>site_pinger</code> – Лог пинга от server shell до роли ic. Только для server shell.
* <code>site_pinger</code> – Лог пинга от server shell до роли ic. Только для server shell.
Строка 288: Строка 289:
* <code>erl</code> – Основной лог роли. Отражает процесс загрузки и перетекания роли, фиксирует некоторые значимые события в процессе работы.
* <code>erl</code> – Основной лог роли. Отражает процесс загрузки и перетекания роли, фиксирует некоторые значимые события в процессе работы.
|}
|}
В рабочем каталоге каждой ноды можно найти некоторую совокупность приведенных выше типов логов в зависимости от того, какие роли в ней действут и в каких процессах участвуют.
В рабочем каталоге каждой ноды можно найти некоторую совокупность приведенных выше типов логов в зависимости от того, какие роли в ней действуют и в каких процессах участвуют.


== Особые категории ==
== Особые категории ==
Строка 341: Строка 342:
== Сборка логов ==
== Сборка логов ==
[[Файл:Сборка логов масте-домена Платформы ЭРА.png|мини|Сборка логов масте-домена Платформы ЭРА]]
[[Файл:Сборка логов масте-домена Платформы ЭРА.png|мини|Сборка логов масте-домена Платформы ЭРА]]
Для мастер-домена в Приложении Настройка откройте меню Система - Сборка логов. Выберите необходимый период времени и нажмите Опросить. Выберите необходимые микросервисы и скачайте архив собранных логов. Для удобства, воспользуйтесь Фильтром выбора микросервисов. Например, для анализа звонков необходимо изучить логи микросервисов <code>esg-b2b-sg</code>.  
1. Для мастер-домена в Приложении Настройка откройте меню Система - Сборка логов. Выберите необходимый период времени и нажмите Опросить. Выберите необходимые микросервисы и скачайте архив собранных логов. Для удобства, воспользуйтесь Фильтром выбора микросервисов. Например, для анализа звонков необходимо изучить логи микросервисов <code>esg-b2b-sg</code>.  
Для сбора логов в ручном режиме, воспользуйтесь bash скриптом <syntaxhighlight lang="bash">
2. Для сбора логов в ручном режиме, воспользуйтесь bash-скриптом, который архивирует все существующие логи в папку /tmp. <syntaxhighlight lang="bash">
#!/bin/bash
#!/bin/bash


Строка 360: Строка 361:
# Вывод информации
# Вывод информации
echo "Архив создан: $ARCHIVE_NAME"
echo "Архив создан: $ARCHIVE_NAME"
</syntaxhighlight>  
</syntaxhighlight>3. Для небольших объёмов лог-журналов (не более 50 Мб в архиве), воспользуйтесь bash-скриптом, который собирает лог-журналы микросервисов указанных в параметре и отправляет пользователю в Telegram. Например, <code>bash archive_logs.sh b2b</code><syntaxhighlight lang="bash">
#!/bin/bash
 
# --- НАСТРОЙКИ ---
# Базовая папка с логами
BASE_DIR="/opt/era_01/log"
# Куда сохраняем архив
DEST_DIR="/tmp"
# Telegram Bot API токен
BOT_TOKEN="BotFather_API_Token"
# ID получателя (user_id)
CHAT_ID="User_ID"
 
# --- ПАРАМЕТР ---
PREFIX=${1:-"esg"}  # Если параметр не передан, используем "esg"
 
# --- ЛОГИКА ---
# Формируем имя файла: YYYY-MM-DD_HH-MM-SS.zip
DATE=$(date +"%Y-%m-%d_%H-%M-%S")
ARCHIVE_NAME="era_logs_${PREFIX}_${DATE}.zip"
ARCHIVE_PATH="${DEST_DIR}/${ARCHIVE_NAME}"
 
# Проверяем наличие zip и устанавливаем при необходимости
if ! command -v zip &> /dev/null; then
    echo "Утилита zip не найдена. Устанавливаю..."
    sudo apt-get update -y && sudo apt-get install -y zip
fi
 
# Ищем все папки в BASE_DIR, начинающиеся с заданного префикса
FOLDERS=$(find "$BASE_DIR" -maxdepth 1 -type d -name "${PREFIX}*")
 
if [ -z "$FOLDERS" ]; then
    echo "Папки, начинающиеся с '${PREFIX}', не найдены в $BASE_DIR"
    exit 1
fi
 
# Создание архива
zip -r "$ARCHIVE_PATH" $FOLDERS
 
# Проверяем успешность архивации
if [ $? -ne 0 ]; then
    echo "Ошибка при создании архива!"
    exit 1
fi
 
echo "Архив создан: $ARCHIVE_PATH"
 
# Отправка архива в Telegram
echo "Отправка архива в Telegram..."
curl -s -X POST "https://api.telegram.org/bot${BOT_TOKEN}/sendDocument" \
    -F chat_id="${CHAT_ID}" \
    -F document=@"${ARCHIVE_PATH}" \
    -F caption="Архив логов ERA (${PREFIX}): ${ARCHIVE_NAME}"
 
if [ $? -eq 0 ]; then
    echo "Файл успешно отправлен в Telegram."
else
    echo "Ошибка при отправке файла в Telegram."
fi
</syntaxhighlight>
[[Категория:Кейсы администрирование]]
[[Категория:Кейсы администрирование]]
[[Категория:Администрирование]]
[[Категория:Администрирование]]

Текущая версия от 08:10, 27 сентября 2025

Обзор

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

В ходе работы роли заносят информацию в лог-журналы:

Путь в Docker-контейнере /var/log/era/<NODE>/<CATEGORY>/<FILE>.log,

Путь в хосте /opt/era_01/log/<NODE>/<CATEGORY>/<FILE>.log, где

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

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

  • MSVC_NODE – папка с именем ноды msvc,
  • MICROSERVICE_NAME – папка с именем продуктового микросервиса,
  • DOMAIN – папк с именем продуктового домена.

Логи пишутся локально на сервере в рабочем каталоге ноды, где исполняется экземпляр роли. Файлы лог-журналов разделяются по категориям, таким образом в папке лог-журналов ноды располагаются папки категорий, внутри которых лежат файлы. Каждый файл представляет собой определенный тип логирования – отражается в префиксе его имени, например 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);
    • В свойствах сущностей (в опциях соответствующих сущностей, например уровень логирования сценариев.

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

Уровни логирования продуктового слоя

Для каждого рабочего домена запустите приложение Администратор Платформы. Меню Параметры - Система. Параметры логирования начинаются на logs. и заканчиваются на .level , например logs.ai.HolderService.level. Установите необходимый уровень логирования. Изменения вступят в силу немедленно без перезапуска микросервиса.

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

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

  • инфраструктурную;
  • процессную;
  • внутри-доменную
    • общую;
    • по процессам связанным с сущностями;
    • микросервисы продуктового слоя.

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

  • ряд сообщений по доменам относится к инфраструктурному слою. Например, процесс синхронизации данных домена между сайтами.
  • ряд процессов несмотря на свою связь с доменами, относится к процессному слою. Например, обработка звонка и логирование 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. Последний файл следует определять по времени последней записи.

Сборка логов

Сборка логов масте-домена Платформы ЭРА

1. Для мастер-домена в Приложении Настройка откройте меню Система - Сборка логов. Выберите необходимый период времени и нажмите Опросить. Выберите необходимые микросервисы и скачайте архив собранных логов. Для удобства, воспользуйтесь Фильтром выбора микросервисов. Например, для анализа звонков необходимо изучить логи микросервисов esg-b2b-sg.

2. Для сбора логов в ручном режиме, воспользуйтесь bash-скриптом, который архивирует все существующие логи в папку /tmp.

#!/bin/bash

# Папка с логами
SOURCE_DIR="/opt/era_01/log"

# Куда сохраняем архив
DEST_DIR="/tmp"

# Формируем имя файла: YYYY-MM-DD_HH-MM-SS.zip
DATE=$(date +"%Y-%m-%d_%H-%M-%S")
ARCHIVE_NAME="${DEST_DIR}/logs_${DATE}.zip"

# Создание архива
zip -r "$ARCHIVE_NAME" "$SOURCE_DIR"

# Вывод информации
echo "Архив создан: $ARCHIVE_NAME"

3. Для небольших объёмов лог-журналов (не более 50 Мб в архиве), воспользуйтесь bash-скриптом, который собирает лог-журналы микросервисов указанных в параметре и отправляет пользователю в Telegram. Например, bash archive_logs.sh b2b

#!/bin/bash

# --- НАСТРОЙКИ ---
# Базовая папка с логами
BASE_DIR="/opt/era_01/log"
# Куда сохраняем архив
DEST_DIR="/tmp"
# Telegram Bot API токен
BOT_TOKEN="BotFather_API_Token"
# ID получателя (user_id)
CHAT_ID="User_ID"

# --- ПАРАМЕТР ---
PREFIX=${1:-"esg"}   # Если параметр не передан, используем "esg"

# --- ЛОГИКА ---
# Формируем имя файла: YYYY-MM-DD_HH-MM-SS.zip
DATE=$(date +"%Y-%m-%d_%H-%M-%S")
ARCHIVE_NAME="era_logs_${PREFIX}_${DATE}.zip"
ARCHIVE_PATH="${DEST_DIR}/${ARCHIVE_NAME}"

# Проверяем наличие zip и устанавливаем при необходимости
if ! command -v zip &> /dev/null; then
    echo "Утилита zip не найдена. Устанавливаю..."
    sudo apt-get update -y && sudo apt-get install -y zip
fi

# Ищем все папки в BASE_DIR, начинающиеся с заданного префикса
FOLDERS=$(find "$BASE_DIR" -maxdepth 1 -type d -name "${PREFIX}*")

if [ -z "$FOLDERS" ]; then
    echo "Папки, начинающиеся с '${PREFIX}', не найдены в $BASE_DIR"
    exit 1
fi

# Создание архива
zip -r "$ARCHIVE_PATH" $FOLDERS

# Проверяем успешность архивации
if [ $? -ne 0 ]; then
    echo "Ошибка при создании архива!"
    exit 1
fi

echo "Архив создан: $ARCHIVE_PATH"

# Отправка архива в Telegram
echo "Отправка архива в Telegram..."
curl -s -X POST "https://api.telegram.org/bot${BOT_TOKEN}/sendDocument" \
    -F chat_id="${CHAT_ID}" \
    -F document=@"${ARCHIVE_PATH}" \
    -F caption="Архив логов ERA (${PREFIX}): ${ARCHIVE_NAME}"

if [ $? -eq 0 ]; then
    echo "Файл успешно отправлен в Telegram."
else
    echo "Ошибка при отправке файла в Telegram."
fi