Это документация VMmanager 6 для редакций Hosting и Infrastructure. Документация VMmanager для редакции ФСТЭК находится в разделе VMmanager 6 ФСТЭК.
VMmanager сохраняет информацию о работе сервисов в логи (лог-файлы, журнальные файлы, журналы). Данные из логов могут быть использованы для диагностики работы платформы. Сервисы используют разные способы хранения логов:
- файлы внутри контейнера Docker;
- stdout контейнера Docker;
- журналы системной службы journald.
Перечень логов
Основные логи
Большинство логов основного контейнера vm_back сохраняются в journald.
Часть логов хранятся в контейнере vm_back в директории /var/log/. Обычно имя лог-файла совпадает с названием сервиса. Например, лог-файл сервиса vmwatch называется vmwatch.log.
Установка платформы
Лог установки платформы сохраняется в файл /opt/ispsystem/vm/install.log на сервере с платформой.
Сервисы с сохранением в journald
В journald сохраняются логи контейнеров:
- alert;
- auth_back4;
- back_v4;
- batch;
- customizer;
- dr;
- ipmgr;
- license;
- metric_collector;
- msgsender;
- nodewarden;
- notifier_v4;
- plugin_v4;
- san;
- taskmgr;
- updater;
- vault;
- vm_back;
- vmr.
Идентификатор логов совпадает с именем контейнера. Подробнее о назначении контейнеров см. Структура VMmanager.
Различные сервисы
Лог-файлы на узле кластера
Работа с логами в контейнерах
Скопировать лог-файл из контейнера
Чтобы скопировать лог-файл из контейнера в текущую директорию, выполните команду:
docker cp <container_name>:<path_to_log> ./docker cp auth:/var/log/licupdate.log ./Просмотр лог-файлов в контейнере
-
Перейдите в нужный контейнер:
docker exec -it <container_name> shПояснения к командеПример командыdocker exec -it vm_back sh -
Просмотрите лог-файл стандартными утилитами Linux. Например, cat, tail, less и т.д.
Пример командыless /var/log/host.logЧтобы просмотреть логи конкретной задачи:
- В интерфейсе платформы перейдите в Задачи → выберите задачу → скопируйте значение request_id.
-
Выполните команду:
grep <request_id> /var/log/*Пояснения к команде
-
Выйдите из контейнера:
exit
Просмотр лог-файлов через stdout
Для некоторых сервисов не создаются отдельные лог-файлы. Логи этих сервисов записываются в stdout. Чтобы просмотреть такие логи, выполните команду:
docker logs <container_name> --tail <lines> --since <period>docker logs vm_back --tail 100 --since 60mРабота с логами в journald
Чтобы вывести логи journald, введите команду:
journalctlВ параметрах команды вы можете указать условия фильтрации:
COMPANY=isp— вывести логи всех контейнеров;CONTAINER_NAME=<имя_контейнера>— вывести логи определённого контейнера;SYSLOG_IDENTIFIER=<идентификатор>— вывести логи определённого сервиса;REQUEST_ID=<id_задачи>— вывести логи по определённой задаче;--since "<дата>" — начало периода. Например,--since "2026-09-30 10:00:00",--since yesterday,--since "1 hour ago";--until "<дата>"— конец периода. Например,--since "2026-09-30 10:00:00",--since yesterday,--since "1 hour ago";-o json— вывести в формате JSON;-o verbose— подробный вывод;-n— количество строк;-p— уровень важности. Возможные варианты:- 0 — система неработоспособна;
- 1 — требуется немедленное вмешательство;
- 2 — критическое состояние;
- 3 — ошибка;
- 4 — предупреждение;
- 5 — уведомление;
- 6 — информация;
- 7 — отладка.
Подробнее о параметрах команды см. в официальной документации.
Примеры команд:
journalctl COMPANY=isp --since yesterdayjournalctl CONTAINER_NAME=vm_back -p 3journalctl SYSLOG_IDENTIFIER=vm_reader -n 100journalctl REQUEST_ID=1234 -o jsonСбор логов платформы
Сбор с помощью встроенного сервиса
Чтобы собрать все лог-файлы в одной директории:
- Подключитесь к серверу с платформой по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места .
-
Выполните одну из команд:
Сбор логов с платформы и всех узловexport SKIP_NODES_LOGS=0 && vm collect-logsСбор логов только с платформыexport SKIP_NODES_LOGS=1 && vm collect-logsОперация сбора логов для инсталляций с большим количеством узлов занимает большой объём RAM. Поэтому, если логи узлов в данный момент не нужны, рекомендуем запустить сбор логов только с платформы.Вы можете собирать логи с определённой даты. Для этого укажите параметр
-s:vm collect-logs -s <date>Пояснения к команде:
<date>— дата начала лога в формате YYYY-MM-DD (например,2025-12-30) или 'YYYY-MM-DD HH:MM:SS' (например,'2025-12-30 23:45:55')
Лог-файлы будут сохранены в директорию /home/logs/, архив с логами — в файл /home/logs_YYYY_MM_DD_HH_MM_SS.tar.gz.
Собранные логи включают:
- содержимое журналов Docker для всех запущенных контейнеров;
- все записи journald с сервера платформы, которые содержат атрибут
COMPANY=isp; - журналы установки платформы /opt/ispsystem/vm/install.log.
Сбор с помощью собственного скрипта
Чтобы собрать все лог-файлы платформы в одной директории:
- Подключитесь к серверу с платформой по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
-
Создайте bash-скрипт logs_collect.sh следующего содержания:
#!/bin/bash rm /home/logs -fr DOCKER_CONTAINER_NAMES=`docker ps --format '{{.Names}}'` SERVICES=($DOCKER_CONTAINER_NAMES) cd /home mkdir -p logs cd logs for service in ${SERVICES[@]} do echo -e "----\033[0;31mCopying logs from $service\033[0m----\n" mkdir -p $service docker cp $service:/var/log/. $service/. docker logs $service > $service/${service}_stdout.log 2>&1 done journalctl COMPANY=isp > journal_isp.log 2>&1 cp -r /opt/ispsystem/*/install.log install.log ARCHIVE_NAME="logs_$(date +'%Y_%m_%d_%H_%M_%S').tar.gz" tar -cvzf /home/$ARCHIVE_NAME -C /home/logs . -
Запустите скрипт:
bash logs_collect.sh
Лог-файлы будут сохранены в директорию /home/logs/, архив с логами — в директорию /home/.