Download PDF
Download page Лог-файлы платформы.
Лог-файлы платформы
VMmanager сохраняет информацию о работе сервисов в лог-файлы (журнальные файлы, журналы). Данные из лог-файлов могут быть использованы для диагностики работы платформы.
При пересоздании контейнера логи внутри него удаляются.
Перечень лог-файлов
Основные лог-файлы
Основные лог-файлы сервисов VMmanager хранятся в контейнере vm_box в директории /var/log/. Обычно имя лог-файла совпадает с названием сервиса. Например, лог-файл сервиса vmwatch называется vmwatch.log.
| Имя файла | Содержимое |
|---|---|
| Общие сервисы | |
| vm_writer.log |
|
| vm_reader.log | API-запросы, выполненные методом GET |
| monitor.log | сервис мониторинга ВМ и узлов кластера |
| run_script.log | запуск скриптов |
| vmctl.log |
|
| vmwatch.log | события libvirt, синхронизация состояния ВМ |
| vm_mover_*.log | сервис переноса платформы на ВМ |
| Операции с ВМ | |
| check_storage.log | проверка хранилищ ВМ |
| connect_storages.log | подключение хранилищ ВМ |
| disk_resize.log | операции по изменению дисков ВМ |
| gosockify.log | сервис доступа к ВМ по VNC |
| host.log | создание и удаление ВМ |
| host_action.log | запуск, остановка, перезапуск ВМ |
| host_change_password.log | смена root-пароля для ВМ |
| host_firewall.log | настройка файрвола |
| host_image_create.log | создание образов ВМ |
| host_image_delete.log | удаление образов ВМ |
| host_migration.log | миграция ВМ |
| host_redefine.log | изменение параметров ВМ, установка пароля VNC |
host_snapshot.log | операции со снимками ВМ |
| host_source_copy.log | загрузка и копирование образов ВМ и шаблонов ОС |
| image_relocate.log | перемещение образов ВМ |
| iso.log | загрузка и подключение ISO-образов |
| uploader.log | загрузка ISO-образов |
| Операции с LXD-контейнерами | |
| lxdconsole.log | клонирование LXD-контейнеров |
| lxd_init.log | создание LXD-контейнеров |
| Операции с узлами кластера | |
| hawatch.log | микросервис hawatch. Подробнее см. в статье Принцип работы отказоустойчивых кластеров |
| lxd_node_info.log | сбор информации об узлах LXD-кластера |
network_configure.log node_network.log | конфигурация сети на узле кластера |
| node_create/node_{node_id}.log | сбор информации о добавлении узлов кластера и ошибках добавления |
| node_frr_configure.log | установка ПО FRR на узлы кластера IP-fabric |
| node_info.log | сбор информации об узле кластера (данные об ОС, диске и т.д.) |
| Операции с хранилищами | |
| storage_repository.log | состояние разделяемых ресурсов NAS |
Установка платформы
Лог установки платформы сохраняется в файл /opt/ispsystem/vm/install.log.
Различные сервисы
| Функция | Контейнер | Путь к файлу |
|---|---|---|
| Лицензирование | license | stdout контейнера |
| Сервис уведомлений | msgsender | /var/log/msgsender_reader.log /var/log/msgsender_writer.log |
| Почтовые уведомления о создании, переустановке ОС, смене пароля ВМ | msgsender | /var/log/email.log |
| Работа Telegram-бота. Подробнее см. в статье Отправка уведомлений в Telegram | msgsender | /var/log/telegram.log |
| Cбор информации об аптайме узла кластера, версиях QEMU, libvirt | nodewatch | /var/log/nodewatch.log |
| Миграция из VMmanager 5 | importer | /var/log/importer.log |
| Миграция адресного пространства | ipmgr | /var/log/ip_ipmgr5_proxy.log |
| Выполнение последовательностей запросов | batch | stdout контейнера |
| Выдача SSL-сертификатов | input | /var/log/nginxctl.log |
| Балансировщик | balancer | /var/log/balancer.log Подробнее см. в статье Балансировщик |
| Проблемы с подключением LDAP | auth | stdout контейнера |
| Синхронизация с LDAP | vm_box | /var/log/vm_user_syncer.log |
| Управление пользовательскими ролями | vmr | stdout контейнера |
Лог-файлы на узле кластера
| Функция | Путь к файлу |
|---|---|
| Сбор метрик для статистики | /var/log/gomon.log |
| Сервис ha-agent. Подробнее см. в статье Принцип работы отказоустойчивых кластеров | /var/log/ha-agent.log |
| Сервис vm-agent. Подробнее см. в статье Перенос платформы на ВМ | /var/log/vm-agent.log |
Работа с логами
Скопировать лог-файл из контейнера
Чтобы скопировать лог-файл из контейнера в текущую директорию, выполните команду:
docker cp <container_name>:<path_to_log> ./
<container_name> — имя контейнера
<path_to_log> — путь и имя лог-файла
Пример команды
docker cp auth:/var/log/licupdate.log ./
Просмотр лог-файлов в контейнере
Перейдите в нужный контейнер:
docker exec -it <container_name> shBASH<container_name> — имя контейнера
Пример команды
docker exec -it vm_box shBASHПросмотрите лог-файл стандартными утилитами Linux. Например, cat, tail, less и т.д.
Пример команды
less /var/log/host.logBASHЧтобы просмотреть логи конкретной задачи:
- В интерфейсе платформы перейдите в Задачи → выберите задачу → скопируйте значение request_id.
Выполните команду:
grep <request_id> /var/log/*CODE<request_id> — значение request_id
Выйдите из контейнера:
exitBASH
Просмотр лог-файлов через stdout
Для некоторых сервисов не создаются отдельные лог-файлы. Логи этих сервисов записываются в stdout. Чтобы просмотреть такие логи, выполните команду:
docker logs <container_name> --tail <lines> --since <period>
<container_name> — имя контейнера
<lines> — количество строк
<period> — период сбора логов
Пример команды: Посмотреть последние 100 строк лога контейнера vm_box, созданные за последние 60 минут
docker logs vm_box --tail 100 --since 60m
Сбор логов платформы
Чтобы собрать все лог-файлы платформы в одной директории:
- Подключитесь к серверу с платформой по 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 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Запустите скрипт:
bash logs_collect.shBASH
Лог-файлы будут сохранены в директорию /home/logs/, архив с логами — в директорию /home/.
Логирование в journald
По умолчанию в платформе отключено логирование в системной службе journald. Чтобы включить логирование:
- Подключитесь к серверу с платформой по SSH.
Создайте файл патча /opt/ispsystem/vm/journald.yaml с содержимым:
version: "3.5" services: auth_back4: volumes: - /var/run/systemd/journal/:/var/run/systemd/journal/ vm_box: volumes: - /opt/ispsystem/vm/backup:/opt/ispsystem/vm/backup - /opt/ispsystem/license:/opt/ispsystem/license - /opt/ispsystem/vm/socket/:/opt/ispsystem/vm/vmbox/ - /var/run/systemd/journal/:/var/run/systemd/journal/CODEПримените патч:
vm add-patch -p journald -f /opt/ispsystem/vm/journald.yamlBASH
Может быть полезно
Связанные статьи: